Ë
    ”Âi0  ã                   ó0   — d dl mZ d dlmZ  G d„ d«      Zy)é    )Ú	to_native)ÚOAuth2Errorc                   ó€   — e Zd ZdZdZi ZdZeZ	 	 	 	 	 	 d
d„Z	e
d„ «       Zej                  d„ «       Zd„ Zd„ Zd„ Zd	„ Zy)ÚAssertionClientz”Constructs a new Assertion Framework for OAuth 2.0 Authorization Grants
    per RFC7521_.

    .. _RFC7521: https://tools.ietf.org/html/rfc7521
    Nc                 óü   — || _         |€|}|| _        |€| j                  }|| _        || _        || _        || _        || _        |	| _        | j                  �| j                  d || «      | _
        || _        |
| _        y ©N)ÚsessionÚtoken_endpointÚDEFAULT_GRANT_TYPEÚ
grant_typeÚissuerÚsubjectÚaudienceÚclaimsÚscopeÚtoken_auth_classÚ
token_authÚ_kwargsÚleeway)Úselfr	   r
   r   r   r   r   r   Útoken_placementr   r   Úkwargss               úU/var/www/timesheet/venv/lib/python3.12/site-packages/authlib/oauth2/rfc7521/client.pyÚ__init__zAssertionClient.__init__   s‹   € ð ˆŒàÐØ%ˆHà,ˆÔàÐØ×0Ñ0ˆJà$ˆŒð ˆŒØˆŒØ ˆŒØˆŒØˆŒ
Ø× Ñ Ð,Ø"×3Ñ3°D¸/È4ÓPˆDŒOØˆŒØˆ�ó    c                 ó.   — | j                   j                  S r   )r   Útoken©r   s    r   r   zAssertionClient.token6   s   € à�‰×$Ñ$Ð$r   c                 ó:   — | j                   j                  |«       y r   )r   Ú	set_token)r   r   s     r   r   zAssertionClient.token:   s   € à�‰×!Ñ! %Õ(r   c                 ó:  — | j                   | j                     } |d| j                  | j                  | j                  | j
                  dœ| j                  ¤Ž}t        |«      | j                  dœ}| j                  r| j                  |d<   | j                  |«      S )z¶Using Assertions as Authorization Grants to refresh token as
        described in `Section 4.1`_.

        .. _`Section 4.1`: https://tools.ietf.org/html/rfc7521#section-4.1
        )r   r   r   r   )Ú	assertionr   r   © )
ÚASSERTION_METHODSr   r   r   r   r   r   r   r   Ú_refresh_token)r   Úgenerate_assertionr"   Údatas       r   Úrefresh_tokenzAssertionClient.refresh_token>   s‘   € ð "×3Ñ3°D·O±OÑDÐÙ&ð 
Ø—;‘;Ø—L‘LØ—]‘]Ø—;‘;ñ	
ð
 �l‰lñ
ˆ	ô # 9Ó-ØŸ/™/ñ
ˆð �:Š:Ø ŸJ™JˆD�‰Mà×"Ñ" 4Ó(Ð(r   c                 óØ   — |j                   dk\  r|j                  «        |j                  «       }d|v r%| j                  |d   |j	                  d«      ¬«      ‚|| _        | j
                  S )Niô  ÚerrorÚerror_description)r*   Údescription)Ústatus_codeÚraise_for_statusÚjsonÚoauth_error_classÚgetr   )r   Úrespr   s      r   Úparse_response_tokenz$AssertionClient.parse_response_tokenU   sm   € Ø×Ñ˜sÒ"Ø×!Ñ!Ô#à—	‘	“ˆØ�eÑØ×(Ñ(Ø˜G‘n°%·)±)Ð<OÓ2Pð )ó ð ð ˆŒ
Ø�z‰zÐr   c                 óv   — | j                   j                  d| j                  |d¬«      }| j                  |«      S )NÚPOSTT)r'   Úwithhold_token)r	   Úrequestr
   r3   )r   r'   r2   s      r   r%   zAssertionClient._refresh_tokenb   s=   € Ø�|‰|×#Ñ#Ø�D×'Ñ'¨dÀ4ð $ó 
ˆð ×(Ñ(¨Ó.Ð.r   c                 ó"   — | j                   r| ` y y r   )r	   r   s    r   Ú__del__zAssertionClient.__del__i   s   € Ø�<Š<Ø‘ð r   )NNNÚheaderNé<   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r$   r   r   r0   r   Úpropertyr   Úsetterr(   r3   r%   r9   r#   r   r   r   r      s{   „ ñð ÐØÐØÐØ#Ðð ØØØ ØØó#ðJ ñ%ó ð%ð ‡\�\ñ)ó ð)ò)ò.ò/ór   r   N)Úauthlib.common.encodingr   Úauthlib.oauth2.baser   r   r#   r   r   ú<module>rD      s   ðÝ -Ý +÷fò fr   