
    lKj	                        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d      Z G d de      Z G d de      Zy)    )annotations)Callable)Any)	TypedDict)InvalidClaimError)BaseClaimsRegistry)Claims)JWTClaimsRegistry)Headerc                  @    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   y)ClaimsOptionbool	essentialzbool | Noneallow_blankzstr | int | boolvaluez;list[str | int | bool] | list[str] | list[int] | list[bool]valuesz!Callable[[BaseClaims, Any], bool]validateN)__name__
__module____qualname____annotations__     f/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/authlib/oauth2/claims.pyr   r      s    OGG//r   r   F)totalc                  X     e Zd ZeZg Z	 	 d	 	 	 	 	 	 	 d fdZddZd Zd Z	d	dZ
 xZS )

BaseClaimsc                    t         |   |       i | _        || _        |r| j	                  |       |xs i | _        |xs i | _        y N)super__init___validate_hooksheader_extract_validate_hooksoptionsparams)selfclaimsr#   r%   r&   	__class__s        r   r!   zBaseClaims.__init__   sH     	 !((1}"lr   c                `    |D ])  }||   j                  dd       }|s|| j                  |<   + y )Nr   )popr"   )r'   r%   keyr   s       r   r$   z"BaseClaims._extract_validate_hooks)   s5    Cs|''
D9H,4$$S) r   c                    | j                   D ]0  }| j                   |   }|s|| v s || | |         r't        |       y r   )r"   r   )r'   r,   r   s      r   _run_validate_hookszBaseClaims._run_validate_hooks/   sC    ''C++C0HC4KtCy0I',, (r   c                F    i }| j                   D ]  }|| v s| |   ||<    |S r   )REGISTERED_CLAIMS)r'   rvks      r   get_registered_claimsz BaseClaims.get_registered_claims5   s2    ''ADyQ1 ( 	r   c                ~     | j                   di | j                  }|j                  |        | j                          y )Nr   )registry_clsr%   r   r.   r'   nowleeway	validators       r   r   zBaseClaims.validate<   s5    %D%%55	4   "r   )NN)r(   r	   r#   r   r%   zdict[str, ClaimsOption] | Noner&   zdict[str, Any])r%   zdict[str, ClaimsOption]Nr   )r   r   r   r   r5   r0   r!   r$   r.   r3   r   __classcell__)r)   s   @r   r   r      sU    %L 37!%## # 0	#
 #5-#r   r   c                       e Zd ZeZg dZddZy)	JWTClaims)isssubaudexpnbfiatjtiNc                    | j                   r | j                  ||fi | j                   }n| j                  ||      }|j                  |        | j                          y r   )r%   r5   r   r.   r6   s       r   r   zJWTClaims.validateF   sR    <<)))#vFFI))#v6I4   "r   r:   )r   r   r   r
   r5   r0   r   r   r   r   r=   r=   B   s    $LI#r   r=   N)
__future__r   collections.abcr   typingr   r   joserfc.errorsr   joserfc.jwtr   r	   r
   joserfc.registryr   r   dictr   r=   r   r   r   <module>rM      sG    " $   , *  ) #09E 0)# )#X
#
 
#r   