
    {hU                         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y)    )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y)
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                 F    t        |t              r|j                         S |S N)
isinstancestrtitle)clsr   s     P/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/mcp/shared/auth.pynormalize_token_typezOAuthToken.normalize_token_type   s!     a 779    )__name__
__module____qualname____doc__r   __annotations__r   r   r   intr   r   r	   classmethodr    r   r   r   r      s     $,J!,!Jd
!E3: $M3:$\1S4Z C$J   2r   r   c                       e Zd ZdefdZy)InvalidScopeErrormessagec                     || _         y r   r)   selfr)   s     r   __init__zInvalidScopeError.__init__   	    r   Nr   r    r!   r   r.   r&   r   r   r(   r(           r   r(   c                       e Zd ZdefdZy)InvalidRedirectUriErrorr)   c                     || _         y r   r+   r,   s     r   r.   z InvalidRedirectUriError.__init__!   r/   r   Nr0   r&   r   r   r3   r3       r1   r   r3   c                      e Zd ZU dZ edd      Zee   ed<   dZ	e
d   ed<   d	d
gZee
d      ed<   dgZe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<   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<   dedz  dee   dz  fdZdedz  defdZy) 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_lengthredirect_urisclient_secret_post)noner;   token_endpoint_auth_methodauthorization_coder   )r>   r   grant_typescoderesponse_typesNr   client_name
client_urilogo_uricontactstos_uri
policy_urijwks_urijwkssoftware_idsoftware_versionrequested_scoper   c                     |y |j                  d      }| j                  g n| j                  j                  d      }|D ]  }||vst        d|        |S )N z%Client was not registered with scope )splitr   r(   )r-   rL   requested_scopesallowed_scopesr   s        r   validate_scopez"OAuthClientMetadata.validate_scopeG   sp    "*005#zz1tzz7G7G7L% 	YEN*'*OPUw(WXX	Y  r   redirect_uric                     ||| j                   vrt        d| d      |S t        | j                         dk(  r| j                   d   S t        d      )NzRedirect URI 'z' not registered for clientr7   r   zGredirect_uri must be specified when client has multiple registered URIs)r:   r3   len)r-   rS   s     r   validate_redirect_uriz)OAuthClientMetadata.validate_redirect_uriQ   sa    #4#5#55-|nLg.hii##$)%%a(()*sttr   )r   r    r!   r"   r   r:   listr   r#   r=   r   r?   rA   r   r   rB   rC   r   rD   rE   rF   rG   rH   rI   r   rJ   rK   rR   rV   r&   r   r   r6   r6   %   sM    #(":M4<: I](D E\ 	IKgCDE 
 .4HND)4E3: #Kt"$(J
T!("&Hj4&!%Hd3i$%!%GZ$%$(J
T!("&Hj4&D#*"Kt"#'cDj' cDj  T#Y=M  	u&4- 	uF 	ur   r6   c                   X    e Zd ZU dZeed<   dZedz  ed<   dZedz  ed<   dZ	edz  ed<   y)OAuthClientInformationFullzn
    RFC 7591 OAuth 2.0 Dynamic Client Registration full response
    (client information plus metadata).
    	client_idNclient_secretclient_id_issued_atclient_secret_expires_at)
r   r    r!   r"   r   r#   r[   r\   r$   r]   r&   r   r   rY   rY   ]   s:    
 N $M3:$&*t*+/cDj/r   rY   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<   y)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_supportedr@   response_types_supportedresponse_modes_supportedgrant_types_supported%token_endpoint_auth_methods_supported0token_endpoint_auth_signing_alg_values_supportedservice_documentationui_locales_supportedop_policy_uri
op_tos_urirevocation_endpoint*revocation_endpoint_auth_methods_supported5revocation_endpoint_auth_signing_alg_values_supportedintrospection_endpoint-introspection_endpoint_auth_methods_supported8introspection_endpoint_auth_signing_alg_values_supported code_challenge_methods_supported)r   r    r!   r"   r   r#   rc   rd   rW   r   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   r&   r   r   r_   r_   i   sf   
 &&/3:,3)-d3i$&-+1(d3i215d3i$.5.249t+2>B)49t+;BIM4d3i$6FM/3:,3-1$s)d*1'+M:$+$(J
T!(-1d*1CG.S	D0@GNR949t;KR04J-4FJ149t3CJQU<d3i$>NU9=$d3i$&6=r   r_   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<   y)ProtectedResourceMetadatazy
    RFC 9728 OAuth 2.0 Protected Resource Metadata.
    See https://datatracker.ietf.org/doc/html/rfc9728#section-2
    resource.r7   r8   authorization_serversNrH   rd   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   rx   rW   rH   rd   r   r{   r|   r}   r~   r   r   r   boolr   r   r   r&   r   r   rv   rv      s    
 .3CA.F4
+F"&Hj4&)-d3i$&-16z1Jd3i$.J>B)49t+;B $M3:$04J-4-1d*1*.j4'.>B.tB>B)49t+;B:>%tCy4'7>59%td{9r   rv   N)typingr   r   pydanticr   r   r   r   r	   r   	Exceptionr(   r3   r6   rY   r_   rv   r&   r   r   <module>r      sf     J J *	 
i 
5u) 5up	0!4 	0>I >::	 :r   