§
    öŽ’j6  ã                   óö   — d dl mZmZ d dlmZmZmZmZmZ  G d„ de¦  «        Z	 G d„ de
¦  «        Z G d„ de
¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )ÚAnyÚLiteral)Ú
AnyHttpUrlÚAnyUrlÚ	BaseModelÚFieldÚfield_validatorc                   óÆ   — e Zd ZU dZeed<   dZed         ed<   dZe	dz  ed<   dZ
edz  ed<   dZedz  ed<    edd	¬
¦  «        ededz  dedz  fd„¦   «         ¦   «         ZdS )Ú
OAuthTokenzG
    See https://datatracker.ietf.org/doc/html/rfc6749#section-5.1
    Úaccess_tokenÚBearerÚ
token_typeNÚ
expires_inÚscopeÚrefresh_tokenÚbefore©ÚmodeÚvÚreturnc                 óX   — t          |t          ¦  «        r|                     ¦   «         S |S ©N)Ú
isinstanceÚstrÚtitle©Úclsr   s     ú=C:\Projects\DSCons\.venv\Lib\site-packages\mcp\shared\auth.pyÚnormalize_token_typezOAuthToken.normalize_token_type   s+   € õ �a�ÑÔð 	ð —7’7‘9”9ÐØˆó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   Úintr   r   r	   Úclassmethodr   © r    r   r   r      sÍ   € € € € € € ðð ð ÐÐÑØ$,€J�˜Ô!Ð,Ð,Ñ,Ø!€J��d‘
Ð!Ð!Ñ!Ø€Eˆ3�‰:ÐÐÑØ $€M�3˜‘:Ð$Ð$Ñ$à€_�\¨Ð1Ñ1Ô1Øð S¨4¡Zð °C¸$±Jð ð ð ñ „[ñ 2Ô1ðð ð r    r   c                   ó   — e Zd Zdefd„ZdS )ÚInvalidScopeErrorÚmessagec                 ó   — || _         d S r   ©r+   ©Úselfr+   s     r   Ú__init__zInvalidScopeError.__init__   ó   € ØˆŒˆˆr    N©r!   r"   r#   r   r0   r(   r    r   r*   r*      ó/   € € € € € ð ð ð ð ð ð ð r    r*   c                   ó   — e Zd Zdefd„ZdS )ÚInvalidRedirectUriErrorr+   c                 ó   — || _         d S r   r-   r.   s     r   r0   z InvalidRedirectUriError.__init__!   r1   r    Nr2   r(   r    r   r5   r5       r3   r    r5   c                   ó*  — e Zd ZU dZ edd¬¦  «        Zee         dz  ed<   dZ	e
d         dz  ed<   d	d
gZee
d         ez           ed<   dgZee         ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZee         dz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<    edddddd¬¦  «        ededefd„¦   «         ¦   «         Zdedz  dee         dz  fd „Zd!edz  defd"„Z dS )#ÚOAuthClientMetadataz¢
    RFC 7591 OAuth 2.0 Dynamic Client Registration metadata.
    See https://datatracker.ietf.org/doc/html/rfc7591#section-2
    for the full specification.
    .é   ©Ú
min_lengthNÚredirect_uris)ÚnoneÚclient_secret_postÚclient_secret_basicÚprivate_key_jwtÚtoken_endpoint_auth_methodÚauthorization_coder   )rB   r   z+urn:ietf:params:oauth:grant-type:jwt-bearerÚgrant_typesÚcodeÚresponse_typesr   Úclient_nameÚ
client_uriÚlogo_uriÚcontactsÚtos_uriÚ
policy_uriÚjwks_uriÚjwksÚsoftware_idÚsoftware_versionr   r   r   r   c                 ó   — |dk    rd S |S )NÚ r(   r   s     r   Ú"_empty_string_optional_url_to_nonez6OAuthClientMetadata._empty_string_optional_url_to_noneJ   s   € ð �Š7ˆ7Ø�4Øˆr    Úrequested_scopec                 ó´   — |€d S |                      d¦  «        }| j        €g n| j                              d¦  «        }|D ]}||vrt          d|› �¦  «        ‚Œ|S )Nú z%Client was not registered with scope )Úsplitr   r*   )r/   rS   Úrequested_scopesÚallowed_scopesr   s        r   Úvalidate_scopez"OAuthClientMetadata.validate_scope\   s€   € ØÐ"Ø�4Ø*×0Ò0°Ñ5Ô5ÐØ#œzÐ1˜˜°t´z×7GÒ7GÈÑ7LÔ7LˆØ%ð 	Yð 	YˆEØ˜NÐ*Ð*Ý'Ð(WÐPUÐ(WÐ(WÑXÔXÐXð +àÐr    Úredirect_uric                 óÆ   — |�%| j         �	|| j         vrt          d|› d�¦  «        ‚|S | j         �%t          | j         ¦  «        dk    r| j         d         S t          d¦  «        ‚)NzRedirect URI 'z' not registered for clientr9   r   zGredirect_uri must be specified when client has multiple registered URIs)r<   r5   Úlen)r/   rZ   s     r   Úvalidate_redirect_uriz)OAuthClientMetadata.validate_redirect_urif   sy   € ØÐ#àÔ!Ð)¨\ÀÔASÐ-SÐ-SÝ-Ð.h¸|Ð.hÐ.hÐ.hÑiÔiÐiØÐØÔÐ+µ°DÔ4FÑ0GÔ0GÈ1Ò0LÐ0LØÔ% aÔ(Ð(å)Ð*sÑtÔtÐtr    )!r!   r"   r#   r$   r   r<   Úlistr   r%   rA   r   rC   r   rE   r   rF   rG   r   rH   rI   rJ   rK   rL   rM   r   rN   rO   r	   r'   ÚobjectrR   rY   r]   r(   r    r   r8   r8   %   se  € € € € € € ðð ð */¨¨s¸qÐ)AÑ)AÔ)A€M�4˜”< $Ñ&ÐAÐAÑAð 	ð ØÐVÔWÐZ^Ñ^ðð ñ ð 	Øð	ð �ØÐdÔeÐhkÑkôð ð ñ ð "( €N�D˜”IÐ(Ð(Ñ(Ø€Eˆ3�‰:ÐÐÑð #€K��t‘Ð"Ð"Ñ"Ø$(€J�
˜TÑ!Ð(Ð(Ñ(Ø"&€Hˆj˜4ÑÐ&Ð&Ñ&Ø!%€Hˆd�3Œi˜$ÑÐ%Ð%Ñ%Ø!%€GˆZ˜$ÑÐ%Ð%Ñ%Ø$(€J�
˜TÑ!Ð(Ð(Ñ(Ø"&€Hˆj˜4ÑÐ&Ð&Ñ&Ø€Dˆ#�‰*ÐÐÑØ"€K��t‘Ð"Ð"Ñ"Ø#'Ð�c˜D‘jÐ'Ð'Ñ'à€_ØØØØØØðñ ô ð ð°6ð ¸fð ð ð ñ „[ñô ðð ¨c°D©jð  ¸TÀ#¼YÈÑ=Mð  ð  ð  ð  ð	u°&¸4±-ð 	uÀFð 	uð 	uð 	uð 	uð 	uð 	ur    r8   c                   ód   — e Zd ZU dZdZedz  ed<   dZedz  ed<   dZe	dz  ed<   dZ
e	dz  ed<   dS )ÚOAuthClientInformationFullzn
    RFC 7591 OAuth 2.0 Dynamic Client Registration full response
    (client information plus metadata).
    NÚ	client_idÚclient_secretÚclient_id_issued_atÚclient_secret_expires_at)r!   r"   r#   r$   rb   r   r%   rc   rd   r&   re   r(   r    r   ra   ra   r   sp   € € € € € € ðð ð
 !€Iˆs�T‰zÐ Ð Ñ Ø $€M�3˜‘:Ð$Ð$Ñ$Ø&*Ð˜˜t™Ð*Ð*Ñ*Ø+/Ð˜c D™jÐ/Ð/Ñ/Ð/Ð/r    ra   c                   ó:  — e Zd ZU dZeed<   eed<   eed<   dZedz  ed<   dZee	         dz  ed<   dgZ
ee	         ed	<   dZee	         dz  ed
<   dZee	         dz  ed<   dZee	         dz  ed<   dZee	         dz  ed<   dZedz  ed<   dZee	         dz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZee	         dz  ed<   dZee	         dz  ed<   dZedz  ed<   dZee	         dz  ed<   dZee	         dz  ed<   dZee	         dz  ed<   dZedz  ed<   dS )ÚOAuthMetadataz{
    RFC 8414 OAuth 2.0 Authorization Server Metadata.
    See https://datatracker.ietf.org/doc/html/rfc8414#section-2
    ÚissuerÚauthorization_endpointÚtoken_endpointNÚregistration_endpointÚscopes_supportedrD   Úresponse_types_supportedÚresponse_modes_supportedÚgrant_types_supportedÚ%token_endpoint_auth_methods_supportedÚ0token_endpoint_auth_signing_alg_values_supportedÚservice_documentationÚui_locales_supportedÚop_policy_uriÚ
op_tos_uriÚrevocation_endpointÚ*revocation_endpoint_auth_methods_supportedÚ5revocation_endpoint_auth_signing_alg_values_supportedÚintrospection_endpointÚ-introspection_endpoint_auth_methods_supportedÚ8introspection_endpoint_auth_signing_alg_values_supportedÚ code_challenge_methods_supportedÚ%client_id_metadata_document_supported)r!   r"   r#   r$   r   r%   rk   rl   r^   r   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   Úboolr(   r    r   rg   rg   ~   s  € € € € € € ðð ð
 ÐÐÑØ&Ð&Ð&Ñ&ØÐÐÑØ/3Ð˜:¨Ñ,Ð3Ð3Ñ3Ø)-Ð�d˜3”i $Ñ&Ð-Ð-Ñ-Ø+1¨(Ð˜d 3œiÐ2Ð2Ñ2Ø15Ð˜d 3œi¨$Ñ.Ð5Ð5Ñ5Ø.2Ð˜4 œ9 tÑ+Ð2Ð2Ñ2Ø>BÐ)¨4°¬9°tÑ+;ÐBÐBÑBØIMÐ4°d¸3´iÀ$Ñ6FÐMÐMÑMØ/3Ð˜:¨Ñ,Ð3Ð3Ñ3Ø-1Ð˜$˜sœ) dÑ*Ð1Ð1Ñ1Ø'+€M�: Ñ$Ð+Ð+Ñ+Ø$(€J�
˜TÑ!Ð(Ð(Ñ(Ø-1Ð˜ dÑ*Ð1Ð1Ñ1ØCGÐ.°°S´	¸DÑ0@ÐGÐGÑGØNRÐ9¸4À¼9ÀtÑ;KÐRÐRÑRØ04Ð˜J¨Ñ-Ð4Ð4Ñ4ØFJÐ1°4¸´9¸tÑ3CÐJÐJÑJØQUÐ<¸dÀ3¼iÈ$Ñ>NÐUÐUÑUØ9=Ð$ d¨3¤i°$Ñ&6Ð=Ð=Ñ=Ø9=Ð)¨4°$©;Ð=Ð=Ñ=Ð=Ð=r    rg   c                   ó�  — e Zd ZU dZeed<    edd¬¦  «        Zee         ed<   dZ	edz  ed<   dZ
ee         dz  ed	<    ed
g¬¦  «        Zee         dz  ed<   dZee         dz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZee         dz  ed<   dZee         dz  ed<   dZedz  ed<   dS )ÚProtectedResourceMetadatazy
    RFC 9728 OAuth 2.0 Protected Resource Metadata.
    See https://datatracker.ietf.org/doc/html/rfc9728#section-2
    Úresource.r9   r:   Úauthorization_serversNrL   rl   Úheader)ÚdefaultÚbearer_methods_supportedÚ%resource_signing_alg_values_supportedÚresource_nameÚresource_documentationÚresource_policy_uriÚresource_tos_uriÚ*tls_client_certificate_bound_access_tokensÚ%authorization_details_types_supportedÚ!dpop_signing_alg_values_supportedÚ!dpop_bound_access_tokens_required)r!   r"   r#   r$   r   r%   r   r‚   r^   rL   rl   r   r…   r†   r‡   rˆ   r‰   rŠ   r‹   r~   rŒ   r�   rŽ   r(   r    r   r€   r€   œ   su  € € € € € € ðð ð
 ÐÐÑØ.3¨e°CÀAÐ.FÑ.FÔ.FÐ˜4 
Ô+ÐFÐFÑFØ"&€Hˆj˜4ÑÐ&Ð&Ñ&Ø)-Ð�d˜3”i $Ñ&Ð-Ð-Ñ-Ø16°À¸zÐ1JÑ1JÔ1JÐ˜d 3œi¨$Ñ.ÐJÐJÑJØ>BÐ)¨4°¬9°tÑ+;ÐBÐBÑBØ $€M�3˜‘:Ð$Ð$Ñ$Ø04Ð˜J¨Ñ-Ð4Ð4Ñ4Ø-1Ð˜ dÑ*Ð1Ð1Ñ1Ø*.Ð�j 4Ñ'Ð.Ð.Ñ.à>BÐ.°°t±ÐBÐBÑBØ>BÐ)¨4°¬9°tÑ+;ÐBÐBÑBØ:>Ð% t¨C¤y°4Ñ'7Ð>Ð>Ñ>à59Ð% t¨d¡{Ð9Ð9Ñ9Ð9Ð9r    r€   N)Útypingr   r   Úpydanticr   r   r   r   r	   r   Ú	Exceptionr*   r5   r8   ra   rg   r€   r(   r    r   ú<module>r’      s‰  ðØ Ð Ð Ð Ð Ð Ð Ð à JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jðð ð ð ð �ñ ô ð ð*ð ð ð ð ˜	ñ ô ð ð
ð ð ð ð ˜iñ ô ð ð
Juð Juð Juð Juð Ju˜)ñ Juô Juð JuðZ	0ð 	0ð 	0ð 	0ð 	0Ð!4ñ 	0ô 	0ð 	0ð>ð >ð >ð >ð >�Iñ >ô >ð >ð<:ð :ð :ð :ð : 	ñ :ô :ð :ð :ð :r    