Ë
    ”Âi  ã                   ón   — d dl mZ d dlmZ d dlmZ ddlmZ ddlm	Z	  G d„ de«      Z
 G d	„ d
ee«      Zy)é    )ÚSession)ÚAssertionClient)ÚJWTBearerGranté   )Ú
OAuth2Auth)Úupdate_session_configurec                   ó   — e Zd Zd„ Zy)ÚAssertionAuthc                 óÈ   — | j                   rV| j                  r/| j                  j                  | j                   j                  «      r| j                   j	                  «       S y y )N)ÚclientÚtokenÚ
is_expiredÚleewayÚrefresh_token)Úselfs    ún/var/www/timesheet/venv/lib/python3.12/site-packages/authlib/integrations/requests_client/assertion_session.pyÚensure_active_tokenz!AssertionAuth.ensure_active_token   sI   € Ø�;Š;Ø—
’
˜dŸj™j×3Ñ3°D·K±K×4FÑ4FÔGà—;‘;×,Ñ,Ó.Ð.ð Hð ó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r
   r
   
   s   „ ó/r   r
   c                   óv   ‡ — e Zd ZdZeZej                  Zeej                  iZ
eZ	 	 	 	 	 	 	 dd„Zdˆ fd„	Zˆ xZS )ÚAssertionSessionz”Constructs a new Assertion Framework for OAuth 2.0 Authorization Grants
    per RFC7521_.

    .. _RFC7521: https://tools.ietf.org/html/rfc7521
    c                 ó–   — t        j                  | «       |	| _        t        | |«       t	        j                  | f| |||||||||
dœ
|¤Ž y )N)
ÚsessionÚtoken_endpointÚissuerÚsubjectÚaudienceÚ
grant_typeÚclaimsÚtoken_placementÚscoper   )r   Ú__init__Údefault_timeoutr   r   )r   r   r   r   r    r!   r"   r#   r$   r&   r   Úkwargss               r   r%   zAssertionSession.__init__    sb   € ô 	×Ñ˜ÔØ.ˆÔÜ   vÔ.Ü× Ñ Øð	
àØ)ØØØØ!ØØ+ØØñ	
ð ó	
r   c                 óš   •— | j                   r|j                  d| j                   «       |s|€| j                  }t        ‰| �  ||fd|i|¤ŽS )z-Send request with auto refresh token feature.ÚtimeoutÚauth)r&   Ú
setdefaultÚ
token_authÚsuperÚrequest)r   ÚmethodÚurlÚwithhold_tokenr*   r'   Ú	__class__s         €r   r.   zAssertionSession.request@   sM   ø€ à×ÒØ×Ñ˜i¨×)=Ñ)=Ô>Ù $ ,Ø—?‘?ˆDÜ‰w‰˜v sÑ@°Ð@¸Ñ@Ð@r   )NNNÚheaderNNé<   )FN)r   r   r   Ú__doc__r
   Útoken_auth_classr   Ú
GRANT_TYPEÚJWT_BEARER_GRANT_TYPEÚsignÚASSERTION_METHODSÚDEFAULT_GRANT_TYPEr%   r.   Ú__classcell__)r2   s   @r   r   r      s`   ø„ ñð %ÐØ*×5Ñ5Ðà˜~×2Ñ2ðÐð /Ðð ØØØ ØØØó
÷@Añ Ar   r   N)Úrequestsr   Úauthlib.oauth2.rfc7521r   Úauthlib.oauth2.rfc7523r   Úoauth2_sessionr   Úutilsr   r
   r   r   r   r   ú<module>rB      s0   ðÝ å 2Ý 1å &Ý +ô/�Jô /ô4A�¨õ 4Ar   