§
    iÝ[f÷   ã                   ó*  — d dl Z d dlmZ d dlZd dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ dd	lmZmZ d
dlmZmZmZmZ g d¢Z G d„ dee¦  «        Z G d„ dee¦  «        Z G d„ deej        ¦  «        Z G d„ deej        ¦  «        ZdS )é    N)Úasynccontextmanager)ÚAuthÚRequestÚResponseÚUSE_CLIENT_DEFAULT)ÚLock)Ú
url_decode)ÚOAuth2Client)Ú
ClientAuthÚ	TokenAuthé   )ÚHTTPX_CLIENT_KWARGSÚbuild_requesté   )Ú
OAuthErrorÚInvalidTokenErrorÚMissingTokenErrorÚUnsupportedTokenTypeError)Ú
OAuth2AuthÚOAuth2ClientAuthÚAsyncOAuth2Clientr
   c                   óB   — e Zd ZdZdZdedej        eedf         fd„Z	dS )r   zFSign requests for OAuth 2.0, currently only bearer token is supported.TÚrequestÚreturnNc              #   óJ  K  — 	 |                       t          |j        ¦  «        |j        |j        ¦  «        \  }}}t          t          |¦  «        ¦  «        |d<   t          ||||¬¦  «        V — d S # t          $ r'}dt          |¦  «        › �}t          |¬¦  «        ‚d }~ww xY w)NúContent-Length©ÚurlÚheadersÚbodyÚinitial_requestzUnsupported token_type: )Údescription)	ÚprepareÚstrr   r   ÚcontentÚlenr   ÚKeyErrorr   )Úselfr   r   r   r    Úerrorr"   s          úc/var/www/piapp/venv/lib/python3.11/site-packages/authlib/integrations/httpx_client/oauth2_client.pyÚ	auth_flowzOAuth2Auth.auth_flow   s¿   è è € ð	EØ!%§¢Ý�G”KÑ Ô  '¤/°7´?ñ"Dô "DÑˆC�˜$å(+­C°©I¬I©¬ˆGÐ$Ñ%Ý C°¸tÐU\Ð]Ñ]Ô]Ð]Ð]Ð]Ð]Ð]øÝð 	Eð 	Eð 	EØAµS¸±Z´ZÐAÐAˆKÝ+¸ÐDÑDÔDÐDøøøøð	Eøøøs   „A+A1 Á1
B"Á;"BÂB")
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úrequires_request_bodyr   ÚtypingÚ	Generatorr   r+   © ó    r*   r   r      sZ   € € € € € ØPÐPØ ÐðE ð E¨VÔ-=¸gÀxÐQUÐ>UÔ-Vð Eð Eð Eð Eð Eð Er4   r   c                   ó>   — e Zd ZdZdedej        eedf         fd„ZdS )r   Tr   r   Nc              #   óì   K  — |                       |j        t          |j        ¦  «        |j        |j        ¦  «        \  }}}t          t          |¦  «        ¦  «        |d<   t          ||||¬¦  «        V — d S )Nr   r   )r#   Úmethodr$   r   r   r%   r&   r   )r(   r   r   r   r    s        r*   r+   zOAuth2ClientAuth.auth_flow*   sv   è è € Ø!Ÿ\š\ØŒN�C ¤Ñ,Ô,¨g¬o¸w¼ñPô PÑˆˆW�då$'­¨D©	¬	¡N¤NˆÐ Ñ!Ý ¨W¸4ÐQXÐYÑYÔYÐYÐYÐYÐYÐYr4   )	r,   r-   r.   r0   r   r1   r2   r   r+   r3   r4   r*   r   r   '   sT   € € € € € Ø ÐðZ ð Z¨VÔ-=¸gÀxÐQUÐ>UÔ-Vð Zð Zð Zð Zð Zð Zr4   r   c                   óœ   ‡ — e Zd ZeZeZeZe	Z
	 	 	 	 	 	 dd„Zdefˆ fd„	Zedefˆ fd„	¦   «         Zd„ Zdded	fd
„Zdddefd„Zdedfd„Zˆ xZS )r   NÚheaderc
                 ó¾   — |                       |
¦  «        }t          j        j        | fi |¤Ž t	          ¦   «         | _        t          j        | fd |||||||||	dœ
|
¤Ž d S ©N)
ÚsessionÚ	client_idÚclient_secretÚtoken_endpoint_auth_methodÚrevocation_endpoint_auth_methodÚscopeÚredirect_uriÚtokenÚtoken_placementÚupdate_token)Ú_extract_session_request_paramsÚhttpxÚAsyncClientÚ__init__r   Ú_token_refresh_lockÚ_OAuth2Client©r(   r=   r>   r?   r@   rA   rB   rC   rD   rE   ÚkwargsÚclient_kwargss               r*   rI   zAsyncOAuth2Client.__init__8   s’   € ð ×<Ò<¸VÑDÔDˆÝÔÔ" 4Ð9Ð9¨=Ð9Ð9Ð9õ $(¡6¤6ˆÔ åÔØð	
ØØ¨}Ø'AØ,KØ lØ¨Ø%ð	
ð 	
ð *0ð	
ð 	
ð 	
ð 	
ð 	
r4   Fc              ‹   óÜ   •K  — |sE|t           u r<| j        st          ¦   «         ‚|                      | j        ¦  «        ƒ d {V —† | j        } t          ¦   «         j        ||fd|i|¤Žƒ d {V —†S ©NÚauth)r   rC   r   Úensure_active_tokenÚ
token_authÚsuperr   ©r(   r7   r   Úwithhold_tokenrQ   rM   Ú	__class__s         €r*   r   zAsyncOAuth2Client.requestQ   s±   øè è € Øð 	# $Õ*<Ð"<Ð"<Ø”:ð *Ý'Ñ)Ô)Ð)à×*Ò*¨4¬:Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6à”?ˆDà$•U‘W”W”_Ø�Cð.ð .Ø"ð.Ø&,ð.ð .ð .ð .ð .ð .ð .ð .ð 	.r4   c                ó6  •K  — |sE|t           u r<| j        st          ¦   «         ‚|                      | j        ¦  «        ƒ d {V —† | j        } t          ¦   «         j        ||fd|i|¤Ž4 ƒd {V —†	 }|W V — d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S rP   )r   rC   r   rR   rS   rT   Ústream)r(   r7   r   rV   rQ   rM   ÚresprW   s          €r*   rY   zAsyncOAuth2Client.stream]   s]  øè è € àð 	# $Õ*<Ð"<Ð"<Ø”:ð *Ý'Ñ)Ô)Ð)à×*Ò*¨4¬:Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6à”?ˆDà!•5‘7”7”>Ø�Cð.ð .Ø"ð.Ø&,ð.ð .ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Ø15ØˆJˆJˆJˆJð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á/BÂ
BÂBc              ƒ   ó0  K  — | j         4 ƒd {V —† | j                             ¦   «         rÇ|                     d¦  «        }| j                             d¦  «        }|r |r|                      ||¬¦  «        ƒ d {V —† nv| j                             d¦  «        dk    rJ|d         }|                      |d¬¦  «        ƒ d {V —†}| j        r|                      ||¬¦  «        ƒ d {V —† nt          ¦   «         ‚	 d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )	NÚrefresh_tokenÚtoken_endpoint©r\   Ú
grant_typeÚclient_credentialsÚaccess_token)r_   )ra   )	rJ   rC   Ú
is_expiredÚgetÚmetadatar\   Úfetch_tokenrE   r   )r(   rC   r\   r   ra   Ú	new_tokens         r*   rR   z%AsyncOAuth2Client.ensure_active_tokenk   sß  è è € ØÔ+ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ØŒz×$Ò$Ñ&Ô&ð .Ø %§	¢	¨/Ñ :Ô :�Ø”m×'Ò'Ð(8Ñ9Ô9�Ø ð . Sð .Ø×,Ò,¨SÀÐ,ÑNÔNÐNÐNÐNÐNÐNÐNÐNÐNØ”]×&Ò& |Ñ4Ô4Ð8LÒLÐLØ#(¨Ô#8�LØ&*×&6Ò&6°sÐG[Ð&6Ñ&\Ô&\Ð \Ð \Ð \Ð \Ð \Ð \�IØÔ(ð VØ"×/Ò/°	ÈÐ/ÑUÔUÐUÐUÐUÐUÐUÐUÐUøå+Ñ-Ô-Ð-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s   �C!DÄ
DÄDÚ ÚPOSTc              ‹   ó�  K  — |                      ¦   «         dk    r3 | j        |ft          t          |¦  «        ¦  «        ||dœ|¤Žƒ d {V —†}nJd|v rd                     ||g¦  «        }nd                     ||g¦  «        } | j        |f||dœ|¤Žƒ d {V —†}| j        d         D ]} ||¦  «        }Œ|                      |¦  «        S )Nrh   ©Údatar   rQ   ú?ú&)r   rQ   Úaccess_token_response)ÚupperÚpostÚdictr	   Újoinrc   Úcompliance_hookÚparse_response_token)	r(   r   r    r   rQ   r7   rM   rZ   Úhooks	            r*   Ú_fetch_tokenzAsyncOAuth2Client._fetch_tokenz   s  è è € à�<Š<‰>Œ>˜VÒ#Ð#Ø"˜œØð%Ý�z¨$Ñ/Ô/Ñ0Ô0¸'Øð%ð %à#ð%ð %ð %ð %ð %ð %ð %ð %ˆDˆDð �cˆzˆzØ—h’h  T˜{Ñ+Ô+��à—h’h  T˜{Ñ+Ô+�Ø!˜œ #ÐL¨w¸TÐLÐLÀVÐLÐLÐLÐLÐLÐLÐLÐLˆDàÔ(Ð)@ÔAð 	ð 	ˆDØ�4˜‘:”:ˆDˆDà×(Ò(¨Ñ.Ô.Ð.r4   c              ‹   óF  K  —  | j         |ft          t          |¦  «        ¦  «        ||dœ|¤Žƒ d {V —†}| j        d         D ]} ||¦  «        }Œ|                      |¦  «        }	d|	vr
|| j        d<   | j        r"|                      | j        |¬¦  «        ƒ d {V —† | j        S )Nrj   Úrefresh_token_responser\   r^   )rp   rq   r	   rs   rt   rC   rE   )
r(   r   r\   r    r   rQ   rM   rZ   ru   rC   s
             r*   Ú_refresh_tokenz AsyncOAuth2Client._refresh_tokenŒ   sø   è è € à�T”YØð!Ý�: dÑ+Ô+Ñ,Ô,°gØð!ð !àð!ð !ð !ð !ð !ð !ð !ð !ˆð Ô(Ð)AÔBð 	ð 	ˆDØ�4˜‘:”:ˆDˆDà×)Ò)¨$Ñ/Ô/ˆØ %Ð'Ð'Ø*7ˆDŒJ�Ñ'àÔð 	MØ×#Ò# D¤J¸mÐ#ÑLÔLÐLÐLÐLÐLÐLÐLÐLàŒzÐr4   c                 óZ   —  | j         |ft          t          |¦  «        ¦  «        ||dœ|¤ŽS )Nrj   )rp   rq   r	   )r(   r   r    rQ   r   rM   s         r*   Ú
_http_postzAsyncOAuth2Client._http_postž   sE   € ØˆtŒyØð2Ý�: dÑ+Ô+Ñ,Ô,Ø $ð2ð 2à*0ð2ð 2ð 	2r4   ©	NNNNNNNr9   N)r,   r-   r.   r   ÚSESSION_REQUEST_PARAMSr   Úclient_auth_classr   Útoken_auth_classr   Úoauth_error_classrI   r   r   r   rY   rR   rv   ry   r{   Ú__classcell__©rW   s   @r*   r   r   1   s#  ø€ € € € € Ø0Ðà(ÐØ!ÐØ"Ðà59Ø,0Ø15Ø*.Ø-5Ø"ð
ð 
ð 
ð 
ð2 9>ÐDVð 
.ð 
.ð 
.ð 
.ð 
.ð 
.ð Ø7<ÐCUð ð ð ð ð ñ Ôðð.ð .ð .ð ,.°tÐBTØ"(ð/ð /ð /ð /ð$ 7;ÀØ%)Ð0Bðð ð ð ð$ $(Ð.@È$ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2r4   r   c                   ón   ‡ — e Zd ZeZeZeZe	Z
	 	 	 	 	 	 dd„Zed„ ¦   «         Zdefˆ fd„	Zdefˆ fd„	Zˆ xZS )	r
   Nr9   c
                 ó˜   — |                       |
¦  «        }t          j        j        | fi |¤Ž t	          j        | f| |||||||||	dœ
|
¤Ž d S r;   )rF   rG   ÚClientrI   rK   rL   s               r*   rI   zOAuth2Client.__init__«   sƒ   € ð ×<Ò<¸VÑDÔDˆÝŒÔ˜dÐ4Ð4 mÐ4Ð4Ð4åÔØð	
ØØ¨}Ø'AØ,KØ lØ¨Ø%ð	
ð 	
ð *0ð	
ð 	
ð 	
ð 	
ð 	
r4   c                 ó"   — t          | |¦  «        ‚)N)r   )Ú
error_typeÚerror_descriptions     r*   Úhandle_errorzOAuth2Client.handle_errorÀ   s   € å˜Ð%6Ñ7Ô7Ð7r4   Fc                 óÜ   •— |sM|t           u rD| j        st          ¦   «         ‚|                      | j        ¦  «        st	          ¦   «         ‚| j        } t          ¦   «         j        ||fd|i|¤ŽS rP   )r   rC   r   rR   r   rS   rT   r   rU   s         €r*   r   zOAuth2Client.requestÄ   s‹   ø€ Øð 	# $Õ*<Ð"<Ð"<Ø”:ð *Ý'Ñ)Ô)Ð)à×+Ò+¨D¬JÑ7Ô7ð *Ý'Ñ)Ô)Ð)à”?ˆDà�u‰wŒwŒØ�Cð.ð .Ø"ð.Ø&,ð.ð .ð 	.r4   c                 óÜ   •— |sM|t           u rD| j        st          ¦   «         ‚|                      | j        ¦  «        st	          ¦   «         ‚| j        } t          ¦   «         j        ||fd|i|¤ŽS rP   )r   rC   r   rR   r   rS   rT   rY   rU   s         €r*   rY   zOAuth2Client.streamÑ   s‹   ø€ Øð 	# $Õ*<Ð"<Ð"<Ø”:ð *Ý'Ñ)Ô)Ð)à×+Ò+¨D¬JÑ7Ô7ð *Ý'Ñ)Ô)Ð)à”?ˆDà�u‰wŒwŒ~Ø�Cð.ð .Ø"ð.Ø&,ð.ð .ð 	.r4   r|   )r,   r-   r.   r   r}   r   r~   r   r   r   r€   rI   Ústaticmethodr‰   r   r   rY   r�   r‚   s   @r*   r
   r
   ¤   sÄ   ø€ € € € € Ø0Ðà(ÐØ!ÐØ"Ðà59Ø,0Ø15Ø*.Ø-5Ø"ð
ð 
ð 
ð 
ð* ð8ð 8ñ „\ð8ð 38Ð>Pð .ð .ð .ð .ð .ð .ð 27Ð=Oð .ð .ð .ð .ð .ð .ð .ð .ð .ð .r4   r
   ) r1   Ú
contextlibr   rG   r   r   r   r   Úanyior   Úauthlib.common.urlsr	   Úauthlib.oauth2.clientr
   rK   Úauthlib.oauth2.authr   r   Úutilsr   r   Úbase_clientr   r   r   r   Ú__all__r   r   rH   r   r…   r3   r4   r*   ú<module>r•      sØ  ðØ €€€Ø *Ð *Ð *Ð *Ð *Ð *à €€€Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ðð ð €ðEð Eð Eð Eð E��yñ Eô Eð EðZð Zð Zð Zð Z�t˜Zñ Zô Zð Zðp2ð p2ð p2ð p2ð p2˜ uÔ'8ñ p2ô p2ð p2ðf8.ð 8.ð 8.ð 8.ð 8.�= %¤,ñ 8.ô 8.ð 8.ð 8.ð 8.r4   