
    ,h                        d dl mZ d dlZd dlZd dlmZmZ d dlZd dlm	Z	 d dl
mZmZ d dlmZ d dlmZmZmZmZmZ  G d d	      Zy)
    )annotationsN)	b64decode	b64encode)BadSignature)MutableHeadersSecret)HTTPConnection)ASGIAppMessageReceiveScopeSendc                  L    e Zd Z	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZy)SessionMiddlewareNc	                    || _         t        j                  t        |            | _        || _        || _        || _        d|z   | _        |r| xj                  dz  c_        || xj                  d| z  c_        y y )Nzhttponly; samesite=z; securez	; domain=)	appitsdangerousTimestampSignerstrsignersession_cookiemax_agepathsecurity_flags)	selfr   
secret_keyr   r   r   	same_site
https_onlydomains	            _/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/starlette/middleware/sessions.py__init__zSessionMiddleware.__init__   s{     "223z?C,	3i?:-Yvh#77     c                   K   d   dvr j                  |       d {    y t              }d j                  |j                  v rt|j                   j                     j	                  d      }	  j
                  j                  | j                        }t        j                  t        |            d<   dni d<   d	 fd} j                  ||       d {    y 7 # t        $ r i d<   Y 7w xY w7 w)
Ntype)http	websocketTutf-8)r   sessionFc                  K   | d   dk(  r"d   rt        t        j                  d         j                  d            }j                  j                  |      }t        |       }dj                  j                  |j                  d      j                  j                  rdj                   dnd	j                  
      }|j                  d|       nTsRt        |       }dj                  j                  dj                  dj                        }|j                  d|        |        d {    y 7 w)Nr$   zhttp.response.startr(   r'   )scopez?{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   r,   r   expiresr   )r   jsondumpsencoder   signr   formatr   decoder   r   r   append)messager,   headersheader_valueinitial_session_was_emptyr*   r   sends       r    send_wrapperz0SessionMiddleware.__call__.<locals>.send_wrapper9   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   D7E:E ;E)r6   r   returnNone)r   r	   r   cookiesr1   r   unsignr   r/   loadsr   r   )r   r*   receiver:   
connectionr,   r;   r9   s   `` `   @r    __call__z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)	  	 8 hhug|444[ 1   &#%i &B 	5sA   DC-AD8A
C/ %D'D(D/D =D?D  D)r(   i u /laxFN)r   r
   r   zstr | Secretr   r   r   z
int | Noner   r   r   z'typing.Literal['lax', 'strict', 'none']r   boolr   z
str | Noner<   r=   )r*   r   rA   r   r:   r   r<   r=   )__name__
__module____qualname__r!   rC    r"   r    r   r      sx    
 (/=B !88 !8 	8
 8 8 ;8 8 8 
8,/5r"   r   )
__future__r   r/   typingbase64r   r   r   itsdangerous.excr   starlette.datastructuresr   r   starlette.requestsr	   starlette.typesr
   r   r   r   r   r   rJ   r"   r    <module>rR      s/    "   '  ) ; - B BF5 F5r"   