
    Ch/                         S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	J
r
Jr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJrJrJr  S SKJr  S SKJrJr   " S S\
\   5      r " S S\	5      r\ " S S5      5       rg)    N)	dataclass)Any)uuid4)	BaseModel	RootModelValidationError)Request)Response)stringify_pydantic_error)PydanticJSONResponse) OAuthAuthorizationServerProviderRegistrationErrorRegistrationErrorCode)ClientRegistrationOptions)OAuthClientInformationFullOAuthClientMetadatac                        \ rS rSr% \\S'   Srg)RegistrationRequest   root N)__name__
__module____qualname____firstlineno__r   __annotations____static_attributes__r       [/home/james-whalen/.local/lib/python3.13/site-packages/mcp/server/auth/handlers/register.pyr   r      s
     r   r   c                   0    \ rS rSr% \\S'   \S-  \S'   Srg)RegistrationErrorResponse   errorNerror_descriptionr   )r   r   r   r   r   r   strr   r   r   r   r!   r!      s      Tz!r   r!   c                   H    \ rS rSr% \\\\4   \S'   \\S'   S\S\	4S jr
Srg)	RegistrationHandler   provideroptionsrequestreturnc           
        #     UR                  5       I S h  vN n[        R                  " U5      n[        [        5       5      nS nUR                  S:w  a  [        R                  " S5      nUR                  cB  U R                  R                  b+  SR                  U R                  R                  5      Ul        OUR                  b  U R                  R                   b~  [#        UR                  R%                  5       5      n[#        U R                  R                   5      nUR'                  U5      (       d&  [	        [        SSS	R                  Xx-
  5       3S9SS9$ S
S1R'                  [#        UR(                  5      5      (       d  [	        [        SSS9SS9$ SUR*                  ;  a  [	        [        SSS9SS9$ [-        [.        R.                  " 5       5      n	U R                  R0                  b  XR                  R0                  -   OS n
[3        S#0 SU_SU	_SU_SU
_SUR4                  _SUR                  _SUR(                  _SUR*                  _SUR6                  _SUR8                  _SUR:                  _SUR                  _SUR<                  _SUR>                  _SUR@                  _SURB                  _SURD                  _S URF                  _S!URH                  _6n U RJ                  RM                  U5      I S h  vN   [	        US"S9$  GN! [         a%  n[	        [        S[        U5      S9SS9s S nA$ S nAff = f NC! [N         a0  n[	        [        URP                  URR                  S9SS9s S nA$ S nAff = f7f)$Ninvalid_client_metadata)r#   r$   i  )contentstatus_codenone     z Requested scopes are not valid: z, authorization_coderefresh_tokenz8grant_types must be authorization_code and refresh_tokencodez?response_types must include 'code' for authorization_code grant	client_idclient_id_issued_atclient_secretclient_secret_expires_atredirect_uristoken_endpoint_auth_methodgrant_typesresponse_typesclient_name
client_urilogo_uriscopecontactstos_uri
policy_urijwks_urijwkssoftware_idsoftware_version   r   )*jsonr   model_validater   r   r!   r   r%   r   r<   secrets	token_hexrB   r*   default_scopesjoinvalid_scopessetsplitissubsetr=   r>   inttimeclient_secret_expiry_secondsr   r;   r?   r@   rA   rC   rD   rE   rF   rG   rH   rI   r)   register_clientr   r#   r$   )selfr+   bodyclient_metadatavalidation_errorr7   r9   requested_scopesrQ   r8   r:   client_infoes                r   handleRegistrationHandler.handle"   s    	 'D1@@FO L	55?#--b1M  (T\\-H-H-T$'HHT\\-H-H$IO!"".4<<3L3L3X"?#8#8#>#>#@At||889L#,,\::+57*L99%5%DEF+H
 !$  %o6??OD_D_@`aa'13&`    777'13&g    "$))+. ||88D  ,,"K"KK 	! 1 

 3
 (
 &>	
 *77
 (7'Q'Q
 (33
 +99
 (33
 '11
 %--
 "''
 %--
 $++
  '11!
" %--#
$ !%%%
& (33'
( -==)
,	--//<<< (MMo (  	'13&>?O&P   	` = ! 	'1STSfSfg 	s   NL LL J2N%M	 MM	 NL 
ML?9M:N?MNM	 	
N%M>8N9N>NNr   N)r   r   r   r   r   r   r   r   r	   r
   r`   r   r   r   r   r'   r'      s/    .sC}==&&aG a ar   r'   ) rM   rV   dataclassesr   typingr   uuidr   pydanticr   r   r   starlette.requestsr	   starlette.responsesr
   mcp.server.auth.errorsr   mcp.server.auth.json_responser   mcp.server.auth.providerr   r   r   mcp.server.auth.settingsr   mcp.shared.authr   r   r   r!   r'   r   r   r   <module>rm      sl      !   : : & ( ; > o o > K)$78 "	 "
 e e er   