
    i                         S SK r S SKrS SKJrJr  S SKrS SKJr  S SKJ	r	J
r
  S SKJr  S SKJrJrJrJrJr   " S S5      rg)	    N)	b64decode	b64encode)BadSignature)MutableHeadersSecret)HTTPConnection)ASGIAppMessageReceiveScopeSendc                       \ rS rSr      SS\S\R                  \\4   S\S\R                  \
   S\S\R                  S	   S
\S\R                  \   SS4S jjrS\S\S\SS4S jrSrg)SessionMiddleware   Napp
secret_keysession_cookiemax_agepath	same_site)laxstrictnone
https_onlydomainreturnc	                     Xl         [        R                  " [        U5      5      U l        X0l        X@l        XPl        SU-   U l        U(       a  U =R                  S-  sl        Ub  U =R                  SU 3-  sl        g g )Nzhttponly; samesite=z; securez	; domain=)	r   itsdangerousTimestampSignerstrsignerr   r   r   security_flags)	selfr   r   r   r   r   r   r   r   s	            h/home/maestro/MAESTRO/maestro-backend/venv/lib/python3.13/site-packages/starlette/middleware/sessions.py__init__SessionMiddleware.__init__   ss     "223z?C,	3i?:-Yvh#77     scopereceivesendc                 &  ^ ^^^#    TS   S;  a  T R                  TUT5      I S h  vN   g [        T5      nSmT R                  UR                  ;   ar  UR                  T R                     R	                  S5      n T R
                  R                  UT R                  S9n[        R                  " [        U5      5      TS'   SmO0 TS'   S[        S	S 4UUU U4S
 jjnT R                  TX&5      I S h  vN   g  N! [         a    0 TS'    NAf = f N7f)Ntype)http	websocketTutf-8)r   sessionFmessager   c                   >#    U S   S:X  Ga&  TS   (       a  [        [        R                  " TS   5      R                  S5      5      nTR                  R                  U5      n[        U S9nSR                  TR                  UR                  S5      TR                  TR                  (       a  STR                   S3OS	TR                  S
9nUR                  SU5        OST(       dL  [        U S9nSR                  TR                  STR                  STR                  S9nUR                  SU5        T" U 5      I S h  vN   g  N7f)Nr,   zhttp.response.startr0   r/   )r(   z?{session_cookie}={data}; path={path}; {max_age}{security_flags}zMax-Age=z;  )r   datar   r   r"   z
Set-Cookiez?{session_cookie}={data}; path={path}; {expires}{security_flags}nullz'expires=Thu, 01 Jan 1970 00:00:00 GMT; )r   r4   r   expiresr"   )r   jsondumpsencoder!   signr   formatr   decoder   r   r"   append)r1   r4   headersheader_valueinitial_session_was_emptyr(   r#   r*   s       r$   send_wrapper0SessionMiddleware.__call__.<locals>.send_wrapper7   s    v"77#$TZZi0@%A%H%H%QRD;;++D1D,7;G#d#k#k'+':':![[1!YY?C||(4<<. ;QS'+':': $l $L NN<>2,7;G#d#k#k'+':':#!YY I'+':': $l $L NN<>w-s   D<E?E E)r   r   r   cookiesr9   r!   unsignr   r7   loadsr   r   r
   )r#   r(   r)   r*   
connectionr4   rA   r@   s   `` `   @r$   __call__SessionMiddleware.__call__$   s    = 55((5'4000#E*
$(!*"4"44%%d&9&9:AA'JD&{{))$)E#'::io#>i ,1)  "E)	  	 D 	  	 8 hhug444[ 1   &#%i &B 	5sA    DC8AD<AC: .D2D3D:D	DDD)r   r   r   r"   r   r!   )r0   i u /r   FN)__name__
__module____qualname____firstlineno__r	   typingUnionr    r   OptionalintLiteralboolr%   r   r   r   rG   __static_attributes__ r'   r$   r   r      s    
 ((9=B '+88 LLf-8 	8
 %8 8 >>"9:8 8 $8 
8,/5E /5G /54 /5D /5r'   r   )r7   rN   base64r   r   r   itsdangerous.excr   starlette.datastructuresr   r   starlette.requestsr   starlette.typesr	   r
   r   r   r   r   rU   r'   r$   <module>r[      s,      '  ) ; - B BF5 F5r'   