Ë
    †Kà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 dl	m
Z
 d d	l	mZ d d
l	mZ  G d„ de
«      Zy)é    N)ÚColumn)ÚInteger)ÚString)ÚText)Ú
json_dumps)Ú
json_loads)ÚClientMixin)Úlist_to_scope)Úscope_to_listc                   óÜ  — e Zd Z e ed«      d¬«      Z e ed«      «      Z eedd¬«      Z eedd¬«      Z	 ede
«      Zed	„ «       Zed
„ «       Zd„ Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zd„ Z d„ Z!d„ Z"d„ Z#d „ Z$d!„ Z%d"„ Z&d#„ Z'y$)%ÚOAuth2ClientMixiné0   T)Úindexéx   Fr   )ÚnullableÚdefaultÚclient_metadatac                 óp   — t        | j                  | j                  | j                  | j                  ¬«      S )zÇImplementation for Client Info in OAuth 2.0 Dynamic Client
        Registration Protocol via `Section 3.2.1`_.

        .. _`Section 3.2.1`: https://tools.ietf.org/html/rfc7591#section-3.2.1
        )Ú	client_idÚclient_secretÚclient_id_issued_atÚclient_secret_expires_at)Údictr   r   r   r   ©Úselfs    úy/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/authlib/integrations/sqla_oauth2/client_mixin.pyÚclient_infozOAuth2ClientMixin.client_info   s3   € ô Ø—n‘nØ×,Ñ,Ø $× 8Ñ 8Ø%)×%BÑ%Bô	
ð 	
ó    c                 ó¤   — d| j                   v r| j                   d   S | j                  r&t        | j                  «      }|| j                   d<   |S i S ©Nr   )Ú__dict__Ú_client_metadatar   )r   Údatas     r   r   z!OAuth2ClientMixin.client_metadata$   sP   € à §¡Ñ-Ø—=‘=Ð!2Ñ3Ð3Ø× Ò Ü˜d×3Ñ3Ó4ˆDØ/3ˆDM‰MÐ+Ñ,ØˆKØˆ	r   c                 ó\   — t        |«      | _        d| j                  v r| j                  d= y y r    )r   r"   r!   )r   Úvalues     r   Úset_client_metadataz%OAuth2ClientMixin.set_client_metadata.   s-   € Ü *¨5Ó 1ˆÔØ §¡Ñ-Ø—‘Ð/Ñ0ð .r   c                 ó:   — | j                   j                  dg «      S )NÚredirect_uris©r   Úgetr   s    r   r(   zOAuth2ClientMixin.redirect_uris3   s   € à×#Ñ#×'Ñ'¨¸Ó<Ð<r   c                 ó:   — | j                   j                  dd«      S )NÚtoken_endpoint_auth_methodÚclient_secret_basicr)   r   s    r   r,   z,OAuth2ClientMixin.token_endpoint_auth_method7   s!   € à×#Ñ#×'Ñ'Ø(Ð*?ó
ð 	
r   c                 ó:   — | j                   j                  dg «      S )NÚgrant_typesr)   r   s    r   r/   zOAuth2ClientMixin.grant_types=   s   € à×#Ñ#×'Ñ'¨°rÓ:Ð:r   c                 ó:   — | j                   j                  dg «      S )NÚresponse_typesr)   r   s    r   r1   z OAuth2ClientMixin.response_typesA   s   € à×#Ñ#×'Ñ'Ð(8¸"Ó=Ð=r   c                 ó8   — | j                   j                  d«      S )NÚclient_namer)   r   s    r   r3   zOAuth2ClientMixin.client_nameE   ó   € à×#Ñ#×'Ñ'¨Ó6Ð6r   c                 ó8   — | j                   j                  d«      S )NÚ
client_urir)   r   s    r   r6   zOAuth2ClientMixin.client_uriI   ó   € à×#Ñ#×'Ñ'¨Ó5Ð5r   c                 ó8   — | j                   j                  d«      S )NÚlogo_urir)   r   s    r   r9   zOAuth2ClientMixin.logo_uriM   ó   € à×#Ñ#×'Ñ'¨
Ó3Ð3r   c                 ó:   — | j                   j                  dd«      S )NÚscopeÚ r)   r   s    r   r<   zOAuth2ClientMixin.scopeQ   s   € à×#Ñ#×'Ñ'¨°Ó4Ð4r   c                 ó:   — | j                   j                  dg «      S )NÚcontactsr)   r   s    r   r?   zOAuth2ClientMixin.contactsU   s   € à×#Ñ#×'Ñ'¨
°BÓ7Ð7r   c                 ó8   — | j                   j                  d«      S )NÚtos_urir)   r   s    r   rA   zOAuth2ClientMixin.tos_uriY   s   € à×#Ñ#×'Ñ'¨	Ó2Ð2r   c                 ó8   — | j                   j                  d«      S )NÚ
policy_urir)   r   s    r   rC   zOAuth2ClientMixin.policy_uri]   r7   r   c                 ó8   — | j                   j                  d«      S )NÚjwks_urir)   r   s    r   rE   zOAuth2ClientMixin.jwks_uria   r:   r   c                 ó:   — | j                   j                  dg «      S )NÚjwksr)   r   s    r   rG   zOAuth2ClientMixin.jwkse   s   € à×#Ñ#×'Ñ'¨°Ó3Ð3r   c                 ó8   — | j                   j                  d«      S )NÚsoftware_idr)   r   s    r   rI   zOAuth2ClientMixin.software_idi   r4   r   c                 ó8   — | j                   j                  d«      S )NÚsoftware_versionr)   r   s    r   rK   z"OAuth2ClientMixin.software_versionm   s   € à×#Ñ#×'Ñ'Ð(:Ó;Ð;r   c                 ó8   — | j                   j                  d«      S )NÚid_token_signed_response_algr)   r   s    r   rM   z.OAuth2ClientMixin.id_token_signed_response_algq   s   € à×#Ñ#×'Ñ'Ð(FÓGÐGr   c                 ó   — | j                   S ©N)r   r   s    r   Úget_client_idzOAuth2ClientMixin.get_client_idu   s   € Ø~‰~Ðr   c                 ó:   — | j                   r| j                   d   S y )Nr   ©r(   r   s    r   Úget_default_redirect_uriz*OAuth2ClientMixin.get_default_redirect_urix   s!   € Ø×ÒØ×%Ñ% aÑ(Ð(ð r   c                 óª   — |syt        | j                  j                  «       «      }t        |«      }t	        |D cg c]	  }||v sŒ|‘Œ c}«      S c c}w )Nr=   )Úsetr<   Úsplitr   r
   )r   r<   ÚallowedÚscopesÚss        r   Úget_allowed_scopez#OAuth2ClientMixin.get_allowed_scope|   sH   € ÙØÜd—j‘j×&Ñ&Ó(Ó)ˆÜ˜uÓ%ˆÜ¨Ö@ A°1¸²<šaÒ@ÓAÐAùÒ@s   »	AÁAc                 ó   — || j                   v S rO   rR   )r   Úredirect_uris     r   Úcheck_redirect_uriz$OAuth2ClientMixin.check_redirect_uriƒ   s   € Ø˜t×1Ñ1Ð1Ð1r   c                 óB   — t        j                  | j                  |«      S rO   )ÚsecretsÚcompare_digestr   )r   r   s     r   Úcheck_client_secretz%OAuth2ClientMixin.check_client_secret†   s   € Ü×%Ñ% d×&8Ñ&8¸-ÓHÐHr   c                 ó,   — |dk(  r| j                   |k(  S y)NÚtokenT)r,   )r   ÚmethodÚendpoints      r   Úcheck_endpoint_auth_methodz,OAuth2ClientMixin.check_endpoint_auth_method‰   s   € ØwÒØ×2Ñ2°fÑ<Ð<àr   c                 ó   — || j                   v S rO   )r1   )r   Úresponse_types     r   Úcheck_response_typez%OAuth2ClientMixin.check_response_type   s   € Ø × 3Ñ 3Ð3Ð3r   c                 ó   — || j                   v S rO   )r/   )r   Ú
grant_types     r   Úcheck_grant_typez"OAuth2ClientMixin.check_grant_type’   s   € Ø˜T×-Ñ-Ð-Ð-r   N)(Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r"   Úpropertyr   r   r&   r(   r,   r/   r1   r3   r6   r9   r<   r?   rA   rC   rE   rG   rI   rK   rM   rP   rS   rZ   r]   ra   rf   ri   rl   © r   r   r   r      sã  „ Ù‘v˜b“z¨Ô.€IÙ™6 #›;Ó'€MÙ  °5À!ÔDÐÙ% g¸ÀqÔIÐÙÐ/°Ó6Ðàñ
ó ð
ð ñó ðò1ð
 ñ=ó ð=ð ñ
ó ð
ð
 ñ;ó ð;ð ñ>ó ð>ð ñ7ó ð7ð ñ6ó ð6ð ñ4ó ð4ð ñ5ó ð5ð ñ8ó ð8ð ñ3ó ð3ð ñ6ó ð6ð ñ4ó ð4ð ñ4ó ð4ð ñ7ó ð7ð ñ<ó ð<ð ñHó ðHòò)òBò2òIòò4ó.r   r   )r_   Ú
sqlalchemyr   r   r   r   Úauthlib.common.encodingr   r   Úauthlib.oauth2.rfc6749r	   r
   r   r   rq   r   r   ú<module>ru      s1   ðÛ å Ý Ý Ý å .Ý .Ý .Ý 0Ý 0ôD.˜õ D.r   