Ë
    bQêjî)  ã                  óZ  — d dl mZ d dlmZmZmZmZmZmZ d dl	m
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 eegee   f   Zeeegee   f   Zeeeeef   z  df   Z eeez  e!z  eeef   z     Z" ed
«      Z# G d„ de«      Z$ G d„ d«      Z% G d„ de«      Z&y)é    )Úannotations)ÚAsyncGeneratorÚAsyncIterableÚ	AwaitableÚCallableÚMappingÚMutableMapping)Úaclosing)ÚAnyÚTypeVarN)Úcreate_collapsing_task_group)ÚClientDisconnectÚRequest)ÚResponse)ÚASGIAppÚMessageÚReceiveÚScopeÚSendÚTc                  ó,   ‡ — e Zd ZdZdˆ fd„Zdd„Zˆ xZS )Ú_CachedRequesta  
    If the user calls Request.body() from their dispatch function
    we cache the entire request body in memory and pass that to downstream middlewares,
    but if they call Request.stream() then all we do is send an
    empty body so that downstream things don't hang forever.
    c                óD   •— t         ‰| �  |||«       d| _        d| _        y )NF)ÚsuperÚ__init__Ú_wrapped_rcv_disconnectedÚ_wrapped_rcv_consumed)ÚselfÚscopeÚreceiveÚsendÚ	__class__s       €ú^/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/starlette/middleware/base.pyr   z_CachedRequest.__init__   s$   ø€ Ü‰Ñ˜ ¨Ô.Ø).ˆÔ&Ø%*ˆÕ"ó    c              ƒ  ó¦  K  — | j                   rddiS | j                  rQ| j                  rd| _         ddiS | j                  «       ƒ d {  –—† }|d   dk7  rt	        d|d   › �«      ‚d| _         |S t        | dd «      �d| _        d| j                  ddœS | j                  rd| _        dd	ddœS 	 t        | j                  «       «      4 ƒd {  –—† }|j                  «       ƒ d {  –—† }d d d «      ƒd {  –—†  | j                  | _        d| j                   dœS 7 ŒÐ7 ŒP7 Œ:7 Œ,# 1 ƒd {  –—†7  sw Y   Œ<xY w# t        $ r d| _         ddicY S w xY w­w)
NÚtypeúhttp.disconnectTzUnexpected message received: Ú_bodyzhttp.requestF©r&   ÚbodyÚ	more_bodyr$   )r   r   Ú_is_disconnectedr    ÚRuntimeErrorÚgetattrr(   Ú_stream_consumedr
   ÚstreamÚ	__anext__r   )r   Úmsgr0   Úchunks       r#   Úwrapped_receivez_CachedRequest.wrapped_receive"   s�  è ø€ à×)Ò)ð Ð-Ð.Ð.à×%Ò%ð ×$Ò$ð 26�Ô.ØÐ 1Ð2Ð2ð Ÿ™›×&ˆCØ�6‰{Ð/Ò/ô #Ð%BÀ3ÀvÁ;À-Ð#PÓQÐQØ-1ˆDÔ*ØˆJô �4˜ $Ó'Ð3à)-ˆDÔ&à&ØŸ
™
Ø"ñð ð
 ×"Ò"ð *.ˆDÔ&à&ØØ"ñð ð3Ü# D§K¡K£MÓ2÷ 5ð 5°fØ"(×"2Ñ"2Ó"4×4�E÷5÷ 5à-1×-BÑ-B�Ô*à*Ø!Ø%)×%:Ñ%:Ð!:ñð ðC 'øð<5øØ4øð5ø÷ 5÷ 5ñ 5ûô $ò 3Ø15�Ô.ØÐ 1Ð2Ò2ð3üs‘   ‚AEÁ	DÁ
A#EÂ.D7 ÃDÃD7 ÃD"Ã#DÃ$D"Ã(D7 Ã3D Ã4%D7 ÄEÄD7 ÄD"Ä D7 Ä"D4Ä(D+Ä)D4Ä0D7 Ä7EÅEÅEÅE)r   r   r    r   r!   r   ©Úreturnr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r4   Ú__classcell__)r"   s   @r#   r   r      s   ø„ ñõ+÷
;3r$   r   c                  ó&   — e Zd Zddd„Zdd„Zdd„Zy)	ÚBaseHTTPMiddlewareNc                óH   — || _         |€| j                  | _        y || _        y ©N)ÚappÚdispatchÚdispatch_func)r   r@   rA   s      r#   r   zBaseHTTPMiddleware.__init__a   s!   € ØˆŒØ.6Ð.>˜TŸ]™]ˆÕÀHˆÕr$   c              ƒ  óª  ‡ ‡‡‡‡‡	‡
‡‡‡K  — ‰d   dk7  r‰ j                  ‰|‰«      ƒ d {  –—†  y t        ‰|‰«      }|j                  Št        j                  «       Š
d ŠdŠdˆˆˆ	ˆ
ˆˆ ˆˆˆˆf
d„}t        j
                  t           «       \  ŠŠ	‰	5  ‰5  t        «       4 ƒd {  –—† Š‰ j                  ||«      ƒ d {  –—† } |‰‰‰«      ƒ d {  –—†  ‰
j                  «        ‰	j                  «        d d d «      ƒd {  –—†  d d d «       d d d «       ‰�‰s‰‚y y 7 Œð7 Œz7 Œb7 ŒR7 Œ$# 1 ƒd {  –—†7  sw Y   Œ4xY w# 1 sw Y   Œ8xY w# 1 sw Y   Œ<xY w­w)Nr&   ÚhttpFc              “  óô  •
‡‡K  — dˆˆfd„Šdˆˆfd„Šdˆˆˆˆˆˆfd„}‰j                  |«       	 d }	 ‰
j                  «       ƒ d {  –—† }|d   dk(  r|d   }Œ'|d   dk(  r ‰|«      ƒ d {  –—†  Œ@	 |d   d
k(  sJ ‚dˆ
fd„}t        |d    |«       |¬«      }|j                  dg «      |_	        |S 7 Œk7 ŒG# t        j                  $ r+ ‰�dŠ	‰‰j                  xs ‰j
                  ‚t        d	«      ‚w xY w­w)Nc               “  óV  •‡K  — ‰j                  «       rddiS t        j                  «       4 ƒd {  –—† Šdˆfd„} ‰j                  | ‰j                  «        | ‰«      ƒ d {  –—† }d d d «      ƒd {  –—†  ‰j                  «       rddiS S 7 Œ\7 Œ,7 Œ# 1 ƒd {  –—†7  sw Y   Œ.xY w­w)Nr&   r'   c              “  óf   •K  —  | «       ƒ d {  –—† }‰j                   j                  «        |S 7 Œ ­wr?   )Úcancel_scopeÚcancel)ÚfuncÚresultÚ
task_groups     €r#   Úwrapz[BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect.<locals>.wrapw   s,   øè ø€ Ù'+£v§˜Ø"×/Ñ/×6Ñ6Ô8Ø%˜ð ".ús   ƒ1Ž/�!1)rJ   zCallable[[], Awaitable[T]]r6   r   )Úis_setÚanyioÚcreate_task_groupÚ
start_soonÚwait)rM   ÚmessagerL   Úresponse_sentr4   s     @€€r#   Úreceive_or_disconnectzMBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnectq   s«   ùè ø€ Ø ×'Ñ'Ô)Ø"Ð$5Ð6Ð6ä ×2Ñ2Ó4÷ :ð :¸
õ&ð
 ×)Ñ)¨$°×0BÑ0BÔCÙ$(¨Ó$9×9�G÷:÷ :ð !×'Ñ'Ô)Ø"Ð$5Ð6Ð6à�ð:øð :øð:ø÷ :÷ :ñ :üsV   „-B)±B²B)µ.BÁ#BÁ$BÁ(B)Á3BÁ4B)ÂBÂB)ÂB&ÂBÂB&Â"B)c              “  óô   •K  — 	 ‰j                  | «      ƒ d {  –—†  | d   dk(  s| d   dk(  r,| j                  dd«      s‰j	                  «       ƒ d {  –—†  y y y 7 ŒA# t        j                  $ r Y y w xY w7 Œ"­w)Nr&   úhttp.response.pathsendúhttp.response.bodyr+   F)r!   rO   ÚBrokenResourceErrorÚgetrR   )rS   rT   Úsend_streams    €€r#   Úsend_no_errorzEBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error„   s‰   øè ø€ ðØ%×*Ñ*¨7Ó3×3Ð3ð
 ˜6‘?Ð&>Ò>Ø˜F‘OÐ';Ò;ÀGÇKÁKÐP[Ð]bÔDcà'×,Ñ,Ó.×.Ñ.ð EdÐ;ð 4ùÜ×0Ñ0ò áðúð /úsC   ƒA8…A ™AšA ž5A8ÁA6ÁA8ÁA ÁA3Á0A8Á2A3Á3A8c               “  ó¨   •K  — ‰5  	 ‰j                  ‰‰‰«      ƒ d {  –—†  d d d «       y 7 Œ# t        $ r} | ŠY d } ~ Œd } ~ ww xY w# 1 sw Y   y xY w­wr?   )r@   Ú	Exception)ÚexcÚapp_excrU   r   r   r\   r[   s    €€€€€€r#   Úcoroz<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro�   sY   øè ø€ ð !ñ &ð&Ø"Ÿh™h uÐ.CÀ]ÓS×SÐS÷&ð &àSùÜ$ò &Ø"%�ûð&ú÷&ð &üsD   ƒA†Aˆ.ž,Ÿ.£	A¬.®	A·>¹A¾AÁAÁAÁATr&   úhttp.response.debugÚinfozhttp.response.early_hintzNo response returned.úhttp.response.startc                óÈ   •K  — ‰2 3 d {  –—† } | d   dk(  r| ­–—  y | d   dk(  s
J d| › �«       ‚| j                  dd«      }|r|­–— | j                  dd«      rŒV y 7 ŒS6 y ­w)	Nr&   rW   rX   zUnexpected message: r*   r$   r+   F)rZ   )rS   r*   Úrecv_streams     €r#   Úbody_streamzCBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.body_stream¸   s~   øè ø€ Ø%0÷ 	ð 	˜'Ø˜v‘Ð*BÒBØ%›ÙØ" 6™?Ð.BÒBÐdÐFZÐ[bÐZcÐDdÓdÐBØ"Ÿ;™; v¨sÓ3�DÙØ"›
Ø"Ÿ;™; {°EÕ:Ùð	ø¡[ùs,   ƒA"†A ŠA‹A ŽAA"ÁA"ÁA Á A"Ústatus)Ústatus_codeÚcontentrc   Úheadersr5   )rS   r   r6   ÚNone)r6   rl   )r6   ÚBodyStreamGenerator)
rQ   r    rO   ÚEndOfStreamÚ	__cause__Ú__context__r-   Ú_StreamingResponserZ   Úraw_headers)Úrequestra   rc   rS   rg   ÚresponserU   r\   r`   Úexception_already_raisedrf   rT   r   r   r!   r[   rL   r4   s         @@€€€€€€€€€€r#   Ú	call_nextz.BaseHTTPMiddleware.__call__.<locals>.call_nextp   s#  úè ø€ öö&
/÷&ò &ð ×!Ñ! $Ô'ð<Ø�ØØ$/×$7Ñ$7Ó$9×9�GØ˜v‘Ð*?Ò?Ø& v™˜Ø Ø  ™Ð,FÒFÙ" 7›m×+Ð+Ø Øð" ˜6‘?Ð&;Ò;Ð;Ð;õ
ô *°g¸hÑ6GÑQ\ÓQ^ÐeiÔjˆHØ#*§;¡;¨y¸"Ó#=ˆHÔ ØˆOðQ :øð
 ,ùô ×$Ñ$ò <ØÐ&à/3Ð,ð " w×'8Ñ'8Ò'O¸G×<OÑ<OÐOÜ"Ð#:Ó;Ð;ð<üsA   …+C8±B7 ÁB3Á%B7 Á-B5Á.B7 Á3A C8Â3B7 Â5B7 Â7>C5Ã5C8)rs   r   r6   r   )r@   r   r4   rO   ÚEventÚcreate_memory_object_streamr   r   rB   ÚsetÚclose)r   r   r    r!   rs   rv   rt   r`   ru   rf   rT   r[   rL   r4   s   `` `   @@@@@@@r#   Ú__call__zBaseHTTPMiddleware.__call__e   sQ  ÿùè ø€ Ø�‰=˜FÒ"Ø—(‘(˜5 '¨4Ó0×0Ð0Øä  ¨°Ó6ˆØ!×1Ñ1ˆÜŸ™›ˆØ$(ˆØ#(Ð ÷V	ö V	ôp $)×#DÑ#DÄWÑ#MÓ#OÑ ˆ�[Øñ 	$˜+ñ 	$Ü3Ó5÷ $ð $¸Ø!%×!3Ñ!3°G¸YÓ!G×G�Ù˜u o°tÓ<×<Ð<Ø×!Ñ!Ô#Ø×!Ñ!Ô#÷	$÷ $÷	$÷ 	$ð ÐÑ'?ØˆMð (@ÐðQ 1øðF$øØGøØ<øð$ø÷ $÷ $ñ $ú÷	$ð 	$ú÷ 	$ð 	$üs¬   ŒE«D¬A%EÂEÂD;Â#D
Â$D;Â'D&Â=D 
Â>D&ÃD"
Ã$D&Ã4D;Ã?D$Ä D;ÄEÄEÄD;Ä D&Ä"D&Ä$D;Ä&D8Ä,D/Ä-D8Ä4D;Ä;E	Å EÅEÅEc              ƒ  ó   K  — t        «       ‚­wr?   )ÚNotImplementedError)r   rs   rv   s      r#   rA   zBaseHTTPMiddleware.dispatchÒ   s   è ø€ Ü!Ó#Ð#ùs   ‚r?   )r@   r   rA   zDispatchFunction | Noner6   rl   ©r   r   r    r   r!   r   r6   rl   )rs   r   rv   ÚRequestResponseEndpointr6   r   )r7   r8   r9   r   r{   rA   © r$   r#   r=   r=   `   s   „ ôMókôZ$r$   r=   c                  ó<   — e Zd Z	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zy)rq   Nc                ól   — || _         || _        || _        || _        | j	                  |«       d | _        y r?   )rc   Úbody_iteratorri   Ú
media_typeÚinit_headersÚ
background)r   rj   ri   rk   r„   rc   s         r#   r   z_StreamingResponse.__init__×   s7   € ð ˆŒ	Ø$ˆÔØ&ˆÔØ$ˆŒØ×Ñ˜'Ô"Øˆ�r$   c              ƒ  óÜ  K  — | j                   � |d| j                   dœ«      ƒ d {  –—†   |d| j                  | j                  dœ«      ƒ d {  –—†  d}| j                  2 3 d {  –—† }t	        |t
        «      rd} ||«      ƒ d {  –—†  Œ, |d|ddœ«      ƒ d {  –—†  ŒA7 Œ{7 ŒU7 Œ@7 Œ 7 Œ6 |r |dd	ddœ«      ƒ d {  –—†7   | j                  r| j                  «       ƒ d {  –—†7   y y ­w)
Nrb   )r&   rc   rd   )r&   rh   rk   TFrX   r)   r$   )rc   ri   rr   rƒ   Ú
isinstanceÚdictr†   )r   r   r    r!   Úshould_close_bodyr3   s         r#   r{   z_StreamingResponse.__call__æ   s  è ø€ Ø�9‰9Ð ÙÐ 5¸t¿y¹yÑIÓJ×JÐJÙà-Ø×*Ñ*Ø×+Ñ+ñó
÷ 	
ð 	
ð !ÐØ×-Ñ-÷ 	Yð 	Y�%Ü˜%¤Ô&à$)Ð!Ù˜5“k×!Ð!ØÙÐ 4¸eÐRVÑWÓX×XÑXð! Køð	
øð	Yøð "øàXøð .ñ ÙÐ 4¸cÐPUÑVÓW×WÑWà�?Š?Ø—/‘/Ó#×#Ò#ð ùs�   ‚%C,§B#¨'C,ÁB%ÁC,Á"B-Á&B'Á'B-Á*C,ÂB)Â	C,ÂB+ÂC,Â%C,Â'B-Â)C,Â+C,Â-C,Â?CÃ $C,Ã$C'Ã%C,)éÈ   NNN)rj   ÚAsyncContentStreamri   Úintrk   zMapping[str, str] | Noner„   z
str | Nonerc   zMapping[str, Any] | Noner6   rl   r~   )r7   r8   r9   r   r{   r€   r$   r#   rq   rq   Ö   sT   „ ð Ø,0Ø!%Ø)-ðà#ðð ðð *ð	ð
 ðð 'ðð 
óô$r$   rq   )'Ú
__future__r   Úcollections.abcr   r   r   r   r   r	   Ú
contextlibr
   Útypingr   r   rO   Ústarlette._utilsr   Ústarlette.requestsr   r   Ústarlette.responsesr   Ústarlette.typesr   r   r   r   r   r   ÚDispatchFunctionÚbytesÚstrrm   Ú
memoryviewrŒ   r   r   r=   rq   r€   r$   r#   ú<module>rš      sÊ   ðÝ "ç g× gÝ ß ã å 9ß 8Ý (ß BÕ Bà" G 9¨i¸Ñ.AÐ#AÑBÐ Ø˜WÐ&=Ð>À	È(Ñ@SÐSÑTÐ Ø$ U¨^¸CÀ¸HÑ-EÑ%EÀtÐ%KÑLÐ Ø" 3¨¡;°Ñ#;¸nÈSÐRUÈXÑ>VÑ#VÑWÐ ÙˆCƒL€ôH3�Wô H3÷Vs$ñ s$ôl($˜õ ($r$   