XjddlmZddlZddlZddlmZmZddlmZddlZddl m Z ddl m Z m Z ddlmZddlmZmZmZmZmZGd d ZGd d eeej2fZy) ) annotationsN) b64decode b64encode)Literal) BadSignature)MutableHeadersSecret)HTTPConnection)ASGIAppMessageReceiveScopeSendcLeZdZ d ddZddZy)SessionMiddlewareNc ||_tjt||_||_||_||_d|z|_|r|xjdz c_||xjd|z c_yy)Nzhttponly; samesite=z; securez ; domain=) app itsdangerousTimestampSignerstrsignersession_cookiemax_agepathsecurity_flags) selfr secret_keyrrr same_site https_onlydomains q/mnt/ssd/data/Dropbox/adrian/vault-secondbrain/venv/lib/python3.12/site-packages/starlette/middleware/sessions.py__init__zSessionMiddleware.__init__s{"223z?C ,  3i?    : -      Yvh#7 7  c@Kddvrj|d{yt}dj|jvr}|jjj d} j j |j}ttjt|d<dn td<d fd }j||d{y7#t$rtd<Y?wxYw7#w) Ntype)http websocketTutf-8)rsessionFcK|ddk(rJd}t|}|jr|jd|jr|rt t j |jd}jj|}djj|jdjjrdjd nd j }|j!d |nT|jrHsFd jjdjdj}|j!d ||d{y7w)Nr%zhttp.response.startr))scopeCookier(z?{session_cookie}={data}; path={path}; {max_age}{security_flags}zMax-Age=z; )rdatarrrz Set-Cookiez?{session_cookie}={data}; path={path}; {expires}{security_flags}nullz'expires=Thu, 01 Jan 1970 00:00:00 GMT; )rr.rexpiresr)raccessedadd_vary_headermodifiedrjsondumpsencodersignformatrdecoderrrappend) messager)headersr. header_valueinitial_session_was_emptyr+rsends r! send_wrapperz0SessionMiddleware.__call__..send_wrapper:s>v"77#(#3(w7##++H5##$TZZ%8%?%?%HID;;++D1D#d#k#k'+':':![[1!YY?C||(4<<. ;QS'+':': $l$LNN<>%%.G#d#k#k'+':':#!YY I'+':': $l$LNN<>w-  sEE*"E(#E*)r;r returnNone) rr rcookiesr6runsignrSessionr4loadsrr)rr+receiver? connectionr.r@r>s`` ` @r!__call__zSessionMiddleware.__call__'s = 5 5((5'40 0 0 #E* $(!   *"4"4 4%%d&9&9:AA'JD -{{))$ )E#*4::io+F#Gi ,1) 'yE)   <hhug|444_ 1  -#*9i  -F 5sADC>AD8AD -D8D9DDDDD)r)iu/laxFN)rr rz str | Secretrrrz int | Nonerrrz Literal['lax', 'strict', 'none']rboolr z str | NonerArB)r+rrGr r?rrArB)__name__ __module__ __qualname__r"rIr#r!rrsx (/6; !8 8!8 8  8  84888 8,15r#rceZdZUdZded<dZded<d dZd dZdfd Zdfd Z d fd Z dfd Z ddfd Z dfd Z xZS)rEFrLr1r3cd|_yNT)r1rs r! mark_accessedzSession.mark_accessed_s  r#c d|_d|_yrS)r1r3rTs r! mark_modifiedzSession.mark_modifiedbs  r#cF|jt| ||yN)rWsuper __setitem__)rkeyvalue __class__s r!r[zSession.__setitem__fs  C'r#cD|jt| |yrY)rWrZ __delitem__)rr\r^s r!r`zSession.__delitem__js  C r#cB|jt| yrY)rWrZclear)rr^s r!rbz Session.clearns   r#cR|jxs||v|_t||g|SrY)r3rZpop)rr\argsr^s r!rdz Session.poprs+ 4 w{3&&&r#cL||vr|jt| ||SrY)rWrZ setdefault)rr\defaultr^s r!rgzSession.setdefaultvs( d?    w!#w//r#cD|jt||i|yrY)rWrZupdate)rrekwargsr^s r!rjzSession.update{s   ''r#)rArB)r\rr] typing.AnyrArB)r\rrArB)r\rrerlrArlrY)r\rrhrlrArl)rerlrkrlrArB)rMrNrOr1__annotations__r3rUrWr[r`rbrdrgrj __classcell__)r^s@r!rErE[sDHdHd(!'0 ((r#rE) __future__rr4typingbase64rrrritsdangerous.excrstarlette.datastructuresrr starlette.requestsr starlette.typesr r r rrrdictrAnyrErPr#r!rxsL" ');-BBH5H5V"(d3 ?#"(r#