Ë
    ”Âi  ã                   óŽ   — d dl Z 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 ddl	m
Z
 d	„ Zd
„ Zd„ Z G d„ d«      Z G d„ d«      Zy)é    N)Úto_bytes)Ú	to_native)Úadd_params_to_qs)Úadd_params_to_urié   )ÚOAuth2Token)Úadd_bearer_tokenc                 ó¢   — | j                   › d| j                  › �}t        t        j                  t        |d«      «      «      }d|› �|d<   |||fS )Nú:Úlatin1zBasic ÚAuthorization)Ú	client_idÚclient_secretr   Úbase64Ú	b64encoder   )ÚclientÚmethodÚuriÚheadersÚbodyÚtextÚauths          úK/var/www/timesheet/venv/lib/python3.12/site-packages/authlib/oauth2/auth.pyÚencode_client_secret_basicr      sY   € Ø×ÑÐ˜q ×!5Ñ!5Ð 6Ð7€DÜ”V×%Ñ%¤h¨t°XÓ&>Ó?Ó@€DØ!'¨ v˜€GˆOÑØ�˜ÐÐó    c                 óž   — t        |xs dd| j                  fd| j                  xs dfg«      }d|v rt        t	        |«      «      |d<   |||fS )NÚ r   r   úContent-Length)r   r   r   ÚstrÚlen©r   r   r   r   r   s        r   Úencode_client_secret_postr"      sc   € ÜØŠ
�à˜&×*Ñ*Ð+Ø˜f×2Ñ2Ò8°bÐ9ð	
ó€Dð ˜7Ñ"Ü$'¬¨D«	£NˆÐ Ñ!Ø�˜ÐÐr   c                 óº   — |dk(  rt        |d| j                  fg«      }|||fS t        |d| j                  fg«      }d|v rt        t	        |«      «      |d<   |||fS )NÚGETr   r   )r   r   r   r   r    r!   s        r   Úencode_noner%       sr   € Ø�‚Ü  {°F×4DÑ4DÐ&EÐ%FÓGˆØ�G˜TÐ!Ð!Ü˜D K°×1AÑ1AÐ#BÐ"CÓD€DØ˜7Ñ"Ü$'¬¨D«	£NˆÐ Ñ!Ø�˜ÐÐr   c                   ó*   — e Zd ZdZeeedœZdd„Zd„ Z	y)Ú
ClientAutha‡  Attaches OAuth Client Information to HTTP requests.

    :param client_id: Client ID, which you get from client registration.
    :param client_secret: Client Secret, which you get from registration.
    :param auth_method: Client auth method for token endpoint. The supported
        methods for now:

        * client_secret_basic (default)
        * client_secret_post
        * none
    )Úclient_secret_basicÚclient_secret_postÚnoneNc                 óp   — |€d}|| _         || _        || j                  v r| j                  |   }|| _        y )Nr(   )r   r   ÚDEFAULT_AUTH_METHODSÚauth_method)Úselfr   r   r-   s       r   Ú__init__zClientAuth.__init__=   sB   € ØÐØ/ˆKà"ˆŒØ*ˆÔà˜$×3Ñ3Ñ3Ø×3Ñ3°KÑ@ˆKà&ˆÕr   c                 ó,   — | j                  | ||||«      S ©N)r-   )r.   r   r   r   r   s        r   ÚpreparezClientAuth.prepareI   s   € Ø×Ñ  f¨c°7¸DÓAÐAr   r1   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r"   r%   r,   r/   r2   © r   r   r'   r'   *   s%   „ ñ
ð  :Ø7ØñÐó
'óBr   r'   c                   ó6   — e Zd ZdZdZdeiZdd„Zd„ Zd„ Z	d„ Z
y)	Ú	TokenAutha  Attach token information to HTTP requests.

    :param token: A dict or OAuth2Token instance of an OAuth 2.0 token
    :param token_placement: The placement of the token, default is ``header``,
        available choices:

        * header (default)
        * body
        * uri
    ÚbearerNc                 ór   — t        j                  |«      | _        || _        || _        t        «       | _        y r1   )r   Ú	from_dictÚtokenÚtoken_placementr   ÚsetÚhooks)r.   r=   r>   r   s       r   r/   zTokenAuth.__init__\   s,   € Ü ×*Ñ*¨5Ó1ˆŒ
Ø.ˆÔØˆŒÜ“Uˆ�
r   c                 ó8   — t        j                  |«      | _        y r1   )r   r<   r=   )r.   r=   s     r   Ú	set_tokenzTokenAuth.set_tokenb   s   € Ü ×*Ñ*¨5Ó1ˆ�
r   c                 ó  — | j                   j                  d| j                  «      }| j                  |j	                  «          } || j                   d   |||| j
                  «      \  }}}| j                  D ]  } ||||«      \  }}}Œ |||fS )NÚ
token_typeÚaccess_token)r=   ÚgetÚDEFAULT_TOKEN_TYPEÚSIGN_METHODSÚlowerr>   r@   )r.   r   r   r   rD   ÚsignÚhooks          r   r2   zTokenAuth.preparee   s™   € Ø—Z‘Z—^‘^ L°$×2IÑ2IÓJˆ
Ø× Ñ  ×!1Ñ!1Ó!3Ñ4ˆÙ!Ø�J‰J�~Ñ&¨¨W°d¸D×<PÑ<Pó
ÑˆˆW�dð —J‘Jò 	:ˆDÙ!% c¨7°DÓ!9ÑˆC�™$ð	:ð �G˜TÐ!Ð!r   c                 ó   — | ` | `y r1   )r   r@   )r.   s    r   Ú__del__zTokenAuth.__del__q   s   € ØˆKØ‰Jr   )ÚheaderN)r3   r4   r5   r6   rG   r	   rH   r/   rB   r2   rM   r7   r   r   r9   r9   M   s.   „ ñ	ð "ÐØÐ.Ð/€Lóò2ò
"ór   r9   )r   Úauthlib.common.encodingr   r   Úauthlib.common.urlsr   r   Úrfc6749r   Úrfc6750r	   r   r"   r%   r'   r9   r7   r   r   ú<module>rS      s@   ðÛ å ,Ý -Ý 0Ý 1å  Ý %òò
ò÷ Bñ  B÷F&ò &r   