
    d?i                         S SK r S SKJrJr  S SKJrJrJr  S SKJr  SSK	J
r
JrJrJr  SSKJr  SSKJr   " S	 S
5      rg)    N)datetimetimezone)AbstractSetAnyOptional)get_time_from_int   )JWSDecodeErrorJWSEncodeErrorJWTDecodeErrorJWTEncodeError)AbstractJWKBase)JWSc                       \ rS rSrS r   SS\\\4   S\\	   S\\\\4      S\4S jjr
    SS	\S\\	   S
\\\      S\S\\\4   4
S jjrSrg)JWT(   c                 "    [        5       U l        g )N)r   _jws)selfs    K/var/www/html/livechat/backend/venv/lib/python3.13/site-packages/jwt/jwt.py__init__JWT.__init__*   s    E	    Npayloadkeyoptional_headersreturnc                 Z   [        U [        5      (       d  [        S5      e[        U[        5      (       d  [	        S5      eUb   [        U[
        5      (       d  [	        S5      eUb   [        U[        5      (       d  [	        S5      e [        R                  " U5      R                  S5      nU=(       a    UR                  5       =(       d    0 nSUS'    U R                  R                  XRX45      $ ! [         a  n[        S5      UeS nAff = f! [         a  n[        S	5      UeS nAff = f)
NzGencode must be called on a jwt.JWT() instance. Do jwt.JWT().encode(...)zpayload must be a dictAkey must be an instance of a class implements jwt.AbstractJWKBasezoptional_headers must be a dictutf-8z*payload must be able to be encoded to JSONr   typzfailed to encode to JWT)
isinstancer   RuntimeErrordict	TypeErrorr   jsondumpsencode
ValueErrorr   copyr   r   )r   r   r   algr   messagewhys          r   r(   
JWT.encode-   s*    $$$+  '4((455K:c?;;& 
 $
3CT(J(J=>>	jj)009G ,G0@0E0E0GM2"'	E99##G#HH  	 <	  	E !:;D	Es0   %C1 D 1
D;DD
D*D%%D*r,   
algorithmsdo_time_checkc                 &   [        U [        5      (       d  [        S5      e[        U[        5      (       d  [	        S5      eUb   [        U[
        5      (       d  [	        S5      e[        R                  " [        R                  5      n U R                  R                  XX45      n [        R                  " UR                  S5      5      n	SU	;   a&  U(       a   [#        U	S   5      n
Xj:  a  [        S	5      eS
U	;   a&  U(       a   [#        U	S
   5      nXk:  a  [        S5      eU	$ ! [         a  n[        S5      UeS nAff = f! [          a  n[        S5      UeS nAff = f! [         a    [        S5      ef = f! [         a    [        S5      ef = f)NzGdecode must be called on a jwt.JWT() instance. Do jwt.JWT().decode(...)zmessage must be a strr   zfailed to decode JWTr    z&a payload of the JWT is not valid JSONexpzInvalid Expired valuezJWT ExpirednbfzInvalid "Not valid yet" valuezJWT Not valid yet)r"   r   r#   strr%   r   r   nowr   utcr   decoder
   r   r&   loadsr)   r   )r   r,   r   	do_verifyr/   r0   r5   message_binr-   r   r2   r3   s               r   r7   
JWT.decodeV   s    $$$+  '3''344K:c?;;&  ll8<<(	B))**7OK	jj!3!3G!<=G G>'7 z$]33 GF'7 y$%899;  	B !78cA	B  	 8	  >$%<==>  F$%DEEFsH   	D% &%E E! E: %
E /D;;E 
EEE!E7:F)r   )NHS256N)NTNT)__name__
__module____qualname____firstlineno__r   r$   r4   r   r   r   r(   r   boolr7   __static_attributes__ r   r   r   r   (   s     *.59'Ec3h'E o&'E
 #4S>2'E 
'EX *.15"99 o&9
 [-.9 9 
c3h9 9r   r   )r&   r   r   typingr   r   r   	jwt.utilsr   
exceptionsr
   r   r   r   jwkr   jwsr   r   rC   r   r   <module>rI      s<       ! g gr   