
    Q}bg                         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dS )	    N)	b64decode	b64encode)BadSignature)MutableHeadersSecret)HTTPConnection)ASGIAppMessageReceiveScopeSendc                       e Zd Z	 	 	 	 	 	 ddedej        eef         d	ed
ej        e	         dedej
        d         dedej        e         ddfdZdedededdfdZdS )SessionMiddlewaresession u /laxFNapp
secret_keysession_cookiemax_agepath	same_site)r   strictnone
https_onlydomainreturnc	                     || _         t          j        t          |                    | _        || _        || _        || _        d|z   | _        |r| xj        dz  c_        || xj        d| z  c_        d S d S )Nzhttponly; samesite=z; securez	; domain=)	r   itsdangerousTimestampSignerstrsignerr   r   r   security_flags)	selfr   r   r   r   r   r   r   r   s	            p/home/e360mart.nyusoft.in/public_html/e360mart_env/lib/python3.11/site-packages/starlette/middleware/sessions.py__init__zSessionMiddleware.__init__   s     "23z??CC,	3i? 	.:-#7v#7#77     scopereceivesendc                    K   d         dvr                      |           d {V  d S t                    }d j        |j        v r|j         j                                     d          }	  j                            | j                  }t          j	        t          |                    d<   dn# t          $ r i d<   Y n	w xY wi d<   dt          d	d f fd
}                      ||           d {V  d S )Ntype)http	websocketTutf-8)r   r   Fmessager   c                   K   | d         dk    r"d         rt          t          j        d                                       d                    }j                            |          }t          |           }d                    j        |	                    d          j
        j        rdj         dnd	j        
          }|                    d|           nQsOt          |           }d                    j        dj
        dj                  }|                    d|            |            d {V  d S )Nr-   zhttp.response.startr   r0   )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_wrapperz0SessionMiddleware.__call__.<locals>.send_wrapper7   sk     v"777# ?$TZi0@%A%A%H%H%Q%QRRD;++D11D,7;;;G#d#k#k'+':![[11!Y?C| S ;4< ; ; ; ;QS'+': $l $ $L NN<>>>>2 
?,7;;;G#d#k#k'+':#!Y I'+': $l $ $L NN<>>>$w--r(   )r   r   r   cookiesr9   r#   unsignr   r7   loadsr   r   r
   )r%   r)   r*   r+   
connectionr4   rA   r@   s   `` `   @r&   __call__zSessionMiddleware.__call__$   so     = 555((5'4000000000F#E**
$(!*"444%d&9:AA'JJD&{))$)EE#':ioo#>#>i ,1)) & & &#%i   &  "E)	  	 D 	  	  	  	  	  	  	  	  	 8 hhug|44444444444s   5AB= =CC)r   r   r   r   FN)__name__
__module____qualname__r	   typingUnionr"   r   OptionalintLiteralboolr'   r   r   r   rF    r(   r&   r   r      s        
 ((9=B '+8 88 Lf-8 	8
 %8 8 >"9:8 8 $8 
8 8 8 8,/5E /5G /54 /5D /5 /5 /5 /5 /5 /5r(   r   )r7   rJ   base64r   r   r    itsdangerous.excr   starlette.datastructuresr   r   starlette.requestsr   starlette.typesr	   r
   r   r   r   r   rP   r(   r&   <module>rV      s      ' ' ' ' ' ' ' '     ) ) ) ) ) ) ; ; ; ; ; ; ; ; - - - - - - B B B B B B B B B B B B B BF5 F5 F5 F5 F5 F5 F5 F5 F5 F5r(   