
    Oj                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZmZmZm Z m!Z!m"Z" d dl#m$Z$m%Z%m&Z&m'Z' d d	l(m)Z) d d
l*m+Z+ d dl,m-Z-m.Z.m/Z/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5 erd dl6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z=m>Z>  G d ded      Z? G d d      Z@deeAeAf   defdZBdeee      deeeeAeAf         fdZCdeeeee   f      deee      fdZD G d d e$      ZE G d! d"e$      ZF G d# d$      ZG G d% d&e$      ZH G d' d(      ZI G d) d*e$      ZJ G d+ d,e$      ZK G d- d.      ZLy)/    N)defaultdict)Path)SimpleNamespace)TYPE_CHECKINGAnyCallable	CoroutineDictListOptionalSequence	TypedDictUnioncast)parse)ClientCertificateHeadersHeadersArrayHttpCredentials
RemoteAddrRequestSizesResourceTimingSecurityDetails)ChannelOwner_capture_stack_tracefrom_channelfrom_nullable_channel)Error)EventContextManagerImpl)URLMatchWebSocketRouteHandlerCallbackasync_readfilelocals_to_paramsurl_matches)escape_regex_flags)Waiter)BrowserContextAPIResponse)Frame)PageWorkerc                   b    e Zd ZU ee   ed<   ee   ed<   eeeef      ed<   eeeef      ed<   y)FallbackOverrideParametersurlmethodheaderspostDataN)	__name__
__module____qualname__r   str__annotations__r
   r   bytes     p/var/www/origus_pro_usr/data/www/origus.pro/core/.venv/lib/python3.12/site-packages/playwright/_impl/_network.pyr.   r.   J   s=    	#SMd38n%%uS%Z())r:   r.   F)totalc                       e Zd ZddZy)SerializedFallbackOverridesNc                 <    d | _         d | _        d | _        d | _        y N)r/   r0   r1   post_data_bufferselfs    r;   __init__z$SerializedFallbackOverrides.__init__R   s    "&%)1515r:   returnN)r3   r4   r5   rD   r9   r:   r;   r>   r>   Q   s    6r:   r>   r1   rF   c                 ^    | j                         D cg c]  \  }}|||d c}}S c c}}w )N)namevalue)items)r1   rH   rI   s      r;   serialize_headersrK   Y   s9     #==?D% &  s   )clientCertificatesc                   K   | sy g }| D ]  }d|d   i}|j                  d      x}r||d<   |j                  d      x}r&t        j                  |      j                         |d<   |j                  d      x}r7t        j                  t	        |       d {         j                         |d<   |j                  d      x}r&t        j                  |      j                         |d<   |j                  d      x}r7t        j                  t	        |       d {         j                         |d<   |j                  d      x}	r&t        j                  |	      j                         |d<   |j                  d      x}
r7t        j                  t	        |
       d {         j                         |d<   |j                  |        |S 7 67 7 4w)	Norigin
passphrasepfxpfxPathcertcertPathkeykeyPath)getbase64	b64encodedecoder"   append)rL   outclientCertificate
out_recordrO   rP   pfx_pathrR   	cert_pathrT   key_paths              r;   to_client_certificates_protocolra   a   s     
C/ '1

 +..|<<:<'1J|$#''..3. & 0 0 5 < < >Ju(,,Y7787 & 0 0$X..!fh u %((0040!'!1!1$!7!>!>!@Jv)--j9999!'!1!1$Y//"fh v $''..3. & 0 0 5 < < >Ju(,,Y7787 & 0 0$X..!fh u 	

:12 J / 0 /s8   BGG
BGG
BGG
0GGGhttpCredentialsc                     | sy t        | t              r| gn| }|D cg c]7  }t        t        |j	                         D ci c]  \  }}|	|| c}}      9 c}}}xs d S c c}}w c c}}}w r@   )
isinstancedictr   r   rJ   )rb   credentials_listckvs        r;   to_http_credentials_protocolrj      sx     '>O 
 "  	_	K1Q]q!tKL  
Ks   "A*
A$A$
A*$A*c            
       H    e Zd Zdededededdf
 fdZdefdZd	eddfd
Z	e
defd       Ze
defd       Ze
ded   fd       Ze
defd       ZdefdZe
dee   fd       Ze
dee   fd       Ze
dee   fd       Zded   fdZe
ded   fd       Ze
d'd       ZdefdZe
ded    fd       Ze
ded    fd       Ze
dee   fd       Ze
defd       Z de!ddfdZ"e
de#fd       Z$de#fd Z%de&fd!Z'd"edee   fd#Z(d(d$Z)de*jV                  fd%Z,d)d&Z- xZ.S )*RequestparenttypeguidinitializerrF   Nc           
      T   t         |   ||||       t        |j                  d            | _        d | _        | j                  r| | j                  _        d | _        dddddddddd	| _        t        | j                  d         | _
        d | _        t               | _        d | _        y )NredirectedFromr   )		startTimedomainLookupStartdomainLookupEndconnectStartsecureConnectionStart
connectEndrequestStartresponseStartresponseEndr1   )superrD   r   rV   _redirected_from_redirected_to_failure_text_timing
RawHeaders_initializer_provisional_headers_all_headers_futurer>   _fallback_overrides	_responserC   rm   rn   ro   rp   	__class__s        r;   rD   zRequest.__init__   s     	t[95JOO,-6
 48  37D!!0,0!#!%'
(
 %/t/@/@/K$L!IM ') 	  04r:   c                 <    d| j                   d| j                  dS )Nz<Request url=z method=>)r/   r0   rB   s    r;   __repr__zRequest.__repr__   s    txxl(4;;/CCr:   	overridesc                 r   |j                  d| j                  j                        | j                  _        |j                  d| j                  j                        | j                  _        |j                  d| j                  j                        | j                  _        |j                  d      }t        |t              r |j                         | j                  _        y t        |t              r|| j                  _        y |3t        j                  |      j                         | j                  _        y y )Nr/   r0   r1   r2   )rV   r   r/   r0   r1   rd   r6   encoderA   r8   jsondumps)rC   r   	post_datas      r;   _apply_fallback_overridesz!Request._apply_fallback_overrides   s    '0}}4++//(
  $ +4--d..55+
  ' ,5==t//77,
  ( MM*-	i%8A8H8H8JD$$5	5)8AD$$5"8<

98M8T8T8VD$$5 #r:   c                 l    t        t        | j                  j                  xs | j                  d         S Nr/   )r   r6   r   r/   r   rB   s    r;   r/   zRequest.url   s+    C1155Q9J9J59QRRr:   c                      | j                   d   S )NresourceTyper   rB   s    r;   resource_typezRequest.resource_type   s      00r:   r,   c                 l    t        t        d   t        | j                  j	                  d                  S )Nr,   serviceWorker)r   r   r   r   rV   rB   s    r;   service_workerzRequest.service_worker   s0    X!$"3"3"7"7"HI
 	
r:   c                 l    t        t        | j                  j                  xs | j                  d         S )Nr0   )r   r6   r   r0   r   rB   s    r;   r0   zRequest.method   s+    C1188WD<M<Mh<WXXr:   c                    K   | j                          d {   }|st        d      |j                  j                  dd        d {   S 7 57 w)Nz(Unable to fetch sizes for failed requestsizes)responser   _channelsend)rC   r   s     r;   r   zRequest.sizes   sR     (BCC&&++
 
 	
 )
s!   AA0AAAAc                     | j                   j                  }||j                         S | j                  j	                  d      }|#t        j                  |      j                         S y Nr2   )r   rA   rY   r   rV   rW   	b64decode)rC   database64_post_datas      r;   r   zRequest.post_data   s`    ''88;;= ,,00<'##$45<<>>r:   c                     | j                   }|sy | j                  j                  d      }|r"d|v rt        t	        j
                  |            S 	 t        j                  |      S # t        $ r t        d|       w xY w)Ncontent-typez!application/x-www-form-urlencodedz&POST data is not a valid JSON object: )
r   r1   rV   re   r   	parse_qslr   loads	Exceptionr   )rC   r   content_types      r;   post_data_jsonzRequest.post_data_json   s}    NN	||''7?<O	233	N::i(( 	N@LMM	Ns   A% %A=c                     | j                   j                  r| j                   j                  S | j                  j                  d      r"t	        j
                  | j                  d         S y r   )r   rA   r   rV   rW   r   rB   s    r;   rA   zRequest.post_data_buffer   sV    ##44++<<<  ,##D$5$5j$ABBr:   Responsec                 h   K   t        | j                  j                  dd        d {         S 7 w)Nr   )r   r   r   rB   s    r;   r   zRequest.response   s5     $--$$ 
 	
s   %20	2c                     | j                   S r@   )r   rB   s    r;   existing_responsezRequest.existing_response  s    ~~r:   c                     | j                   j                  d      st        d      t        dt	        | j                   d               }|j
                  st        dj                  g d            |S )Nframez8Service Worker requests do not have an associated frame.r*   
)zGFrame for this navigation request is not available, because the requestzIwas issued before the frame is created. You can check whether the requestz@is a navigation request by calling isNavigationRequest() method.)r   rV   r   r   r   _pagejoinrC   r   s     r;   r   zRequest.frame  sj      $$W-RSSWl4+<+<W+EFG{{		  r:   c                      | j                   d   S )NisNavigationRequestr   rB   s    r;   is_navigation_requestzRequest.is_navigation_request  s      !677r:   c                     | j                   S r@   )r~   rB   s    r;   redirected_fromzRequest.redirected_from  s    $$$r:   c                     | j                   S r@   )r   rB   s    r;   redirected_tozRequest.redirected_to#  s    """r:   c                     | j                   S r@   )r   rB   s    r;   failurezRequest.failure'  s    !!!r:   c                     | j                   S r@   r   rB   s    r;   timingzRequest.timing+  s    ||r:   response_end_timingc                 f    || j                   d<   | j                   d   dk(  r|| j                   d<   y y )Nr|   r{   rs   r   )rC   r   s     r;   _set_response_end_timingz Request._set_response_end_timing/  s4    &9]#<<(B.,?DLL) /r:   c                     | j                   j                  }|r#t        j                  |      j                         S | j                  j                         S r@   )r   r1   r   _from_headers_dict_lossyr   )rC   overrides     r;   r1   zRequest.headers4  sE    ++3366x@HHJJ((0022r:   c                 Z   K   | j                          d {   j                         S 7 wr@   _actual_headersr1   rB   s    r;   all_headerszRequest.all_headers;  $     **,,5577,   +)+c                 Z   K   | j                          d {   j                         S 7 wr@   r   headers_arrayrB   s    r;   r   zRequest.headers_array>  $     **,,;;==,r   rH   c                 \   K   | j                          d {   j                  |      S 7 wr@   r   rV   rC   rH   s     r;   header_valuezRequest.header_valueA  &     **,,11$77,   ,*,c                 p  K   | j                   j                  }|rt        t        |            S | j                  sct        j                         | _        | j                  j                  dd d       d {   }| j                  j                  t        |             | j                   d {   S 7 <7 w)NrawRequestHeadersT)is_internal)
r   r1   r   rK   r   asyncioFuturer   r   
set_result)rC   r   r1   s      r;   r   zRequest._actual_headersD  s     ++33/9::'''.~~'7D$ MM..#Tt /  G $$//
70CD----	 .s$   A3B65B267B6-B4.B64B6c                     t        t        d   t        | j                  j	                  d                  }|st        j                         S |j                  }|st        j                         S |j                  S )Nr*   r   )	r   r   r   r   rV   r   r   r   _closed_or_crashed_future)rC   r   pages      r;   _target_closed_futurezRequest._target_closed_futureP  sd    W4T5F5F5J5J75ST
 >>##{{>>##---r:   c                 |    t        | j                  j                  d            }|sy t        d|      j                  S )Nr   r*   )r   r   rV   r   r   r   s     r;   
_safe_pagezRequest._safe_page[  s6    %d&7&7&;&;G&DEGU#)))r:   rF   r*   rF   r   )rF   zOptional[Page])/r3   r4   r5   r   r6   r
   rD   r   r.   r   propertyr/   r   r   r   r0   r   r   r   r   r   r8   rA   r   r   r   boolr   r   r   r   r   r   floatr   r   r1   r   r   r   r   r   r   r   r   r   __classcell__r   s   @r;   rl   rl      s~   4"4*-4584GK4	4:D# DW3M WRV W$ SS S S 1s 1 1 
 2 
 
 Y Y Y
\ 
 8C=   
N 
N 
N (5/  
 4 
 8J#7     8t 8 %)!4 % % #x	2 # # "# " "   @E @d @
 3 3 387 8>\ >8s 8x} 8
.	.w~~ 	.*r:   rl   c                   <    e Zd Zdededededdf
 fdZd*dZd	eddfd
Z	d+dZ
defdZedefd       Zd,deddfdZ	 	 	 	 	 	 	 d-dedeeef   deeef   dedeeef   deddddfdZ	 	 	 	 	 	 	 d-dedeeef   deeef   dedeeef   deddddfdZdeddfdZ	 	 	 	 	 	 	 d-dededeeef   deeeef   ded ed!eddfd"Z	 	 	 	 d.dededeeef   deeeef   ddf
d#Z	 	 	 	 d.dededeeef   deeeef   ddf
d$Zd/d%eddfd&Zdeddfd'Zd(eddfd)Z  xZ!S )0Routerm   rn   ro   rp   rF   Nc                 h    t         |   ||||       d | _        t        dd       | _        d| _        y )Nr'   F)r}   rD   _handling_futurer   _context
_did_throwr   s        r;   rD   zRoute.__init__c  s6     	t[9BF*./?*Fr:   c                 L    t        j                         | _        | j                  S r@   )r   r   r   rB   s    r;   _start_handlingzRoute._start_handlingk  s     ' 0$$$r:   donec                 T    | j                   }|sJ d | _         |j                  |       y r@   )r   r   )rC   r   chains      r;   _report_handledzRoute._report_handledo  s*    %%u $r:   c                 2    | j                   st        d      y )NzRoute is already handled!)r   r   rB   s    r;   _check_not_handledzRoute._check_not_handledu  s    $$344 %r:   c                 "    d| j                    dS )Nz<Route request=r   )requestrB   s    r;   r   zRoute.__repr__y  s     a00r:   c                 2    t        | j                  d         S )Nr   )r   r   rB   s    r;   r   zRoute.request|  s    D--i899r:   	errorCodec                 N    K    j                   fd       d {    y 7 w)Nc                  `    j                  j                  j                  dd d i            S )Nabortr   _race_with_page_closer   r   )r   rC   s   r;   <lambda>zRoute.abort.<locals>.<lambda>  s4    D..""#Y r:   _handle_route)rC   r   s   ``r;   r  zRoute.abort  s$       

 
	
 
	
   %#%statusr1   bodyr   pathcontentTyper   r)   c           
      f    K    j                   fd       d {    y 7 w)Nc            	      2    j                         S r@   )_inner_fulfill)r  r  r1   r   r  r   rC   r
  s   r;   r  zRoute.fulfill.<locals>.<lambda>  s!    D''tT; r:   r  )rC   r
  r1   r  r   r  r  r   s   ````````r;   fulfillzRoute.fulfill  s+         
 	
 	
s   1/1c                 z  K   t        t                     }|"|t        d      t        j                  |      }|r|d= |j                  d      r|d   n|j                  |d<   |j                  d      r|d   n|j                  |d<   ddlm	}	 |X|Vt        ||	      rJ|j                  j                  | j                  u r|j                  |d<   n|j                          d {   }d}
t        |t              r$||d<   d	|d
<   t!        |j#                               }
nt        |t$              r7t'        j(                  |      j+                         |d<   d|d
<   t!        |      }
nT|rR|d= t-        |      j/                         }t'        j(                  |      j+                         |d<   d|d
<   t!        |      }
|j                  di       j1                         D ci c]  \  }}|j3                         t        |      ! }}}|j                  d      r	|d   |d<   n;|rd|d<   n3|r1t5        j6                  t        t-        |                  d   xs d|d<   |
rd|vrt        |
      |d<   t9        |      |d<   | j;                  | j<                  j?                  dd |             d {    y 7 c c}}w 7 w)Nz*Can specify either body or json parametersr   r
  r1   r   r(   fetchResponseUidr  FisBase64Tr  r  r   zapplication/jsonzapplication/octet-streamzcontent-lengthr  ) r#   localsr   
json_utilsr   rV   r
  r1   playwright._impl._fetchr)   rd   _request_connection
_fetch_uidr  r6   lenr   r8   rW   rX   rY   r   
read_bytesrJ   lower	mimetypes
guess_typerK   r  r   r   )rC   r
  r1   r  r   r  r  r   paramsr)   lengthfile_contentrh   ri   s                 r;   r  zRoute._inner_fulfill  s     "&(+HII##D)Dz"$*JJx$8x hoo 8 &,ZZ	%:y!@P@P 9 <|Hk1R$$00D4D4DD191D1DF-.!)0DdC !F6N!&F:'Fe$#--d3::<F6N!%F:YFv:002L#--l;BBDF6N!%F:&F17Ir1J1P1P1RSA1779c!f$SS::m$&,]&;GN#&8GN#$$Sd_5a8V<V N# &g5(+FG$%-g6y((););ItV)TUUU? 1$ T 	Vs2   C"J;$J0%C8J;$J3B)J;*J9+J;3J;callbackc                    K   | j                          	  |        d {    | j                  d       y 7 # t        $ r}d| _        |d }~ww xY wwNT)r   r   r   r   )rC   r#  es      r;   r  zRoute._handle_route  sP     !	*  &  	"DOG	s1   A
7 57 A7 	A 	A		AAr/   r0   r2   maxRedirects
maxRetriestimeoutc           
      x    K    j                   j                   fd       d {   S 7 w)Nc            
      r    j                   j                  j                  j                         S )N)r'  r(  r)  )r   r   _inner_fetch)r1   r'  r(  r0   r2   rC   r)  r/   s   r;   r  zRoute.fetch.<locals>.<lambda>  s=    DMM))66)% 7 	 r:   )r  wrap_api_call)rC   r/   r0   r1   r2   r'  r(  r)  s   ````````r;   fetchzRoute.fetch  s6      %%33	 	
 
 	
 
s   ):8:c                    K   t        t        t        t                           }| j	                          | j
                  j                  |       | j                  d       y wNF)r   r.   r#   r  r   r   r   r   )rC   r/   r0   r1   r2   r   s         r;   fallbackzRoute.fallback  sI      35Efh5OP	!..y9U#s   AA!c                     K   t        t        t        t                           d fd} j	                  |       d {   S 7 w)Nc                  z   K   j                   j                          j                  d       d {    y 7 wr0  )r   r   _inner_continue)r   rC   s   r;   _innerzRoute.continue_.<locals>._inner  s-     LL229=&&u---s   0;9;rE   )r   r.   r#   r  r  )rC   r/   r0   r1   r2   r5  r   s   `     @r;   	continue_zRoute.continue_	  s<      35Efh5OP		. ''////s   =AAAis_fallbackc                   K   | j                   j                  }| j                  | j                  j	                  dd |j
                  |j                  |j                  rt        |j                        nd |j                  -t        j                  |j                        j                         nd |d             d {    y 7 w)Ncontinue)r/   r0   r1   r2   
isFallback)r   r   r  r   r   r/   r0   r1   rK   rA   rW   rX   rY   )rC   r7  optionss      r;   r4  zRoute._inner_continue  s     ,,22((MM";;%nn>Eoo)'//:SW #33? (()A)ABIIK!"-
 	
 	
s   B:C<C=Cc                 N    K    j                   fd       d {    y 7 w)Nc                  `     j                   j                  j                  dd di            S )NredirectNavigationRequestr/   r  rC   r/   s   r;   r  z6Route._redirected_navigation_request.<locals>.<lambda>0  s-    D..""#>uclS r:   r  r?  s   ``r;   _redirected_navigation_requestz$Route._redirected_navigation_request.  s$       
 	
 	
r	  futurec           	      .  K   t        j                  |      }t        |dt        t        j                  | j
                        dd       xs
 t                      | j                  j                         }t        j                  ||gt         j                         d {    |j                         r.|j                         rt        t        |j                               |j                         r t        j                  |d       d {    y y 7 s7 w)N__pw_stack__return_whenT)return_exceptions)r   create_tasksetattrgetattrcurrent_task_loopr   r   r   waitFIRST_COMPLETEDr   	exceptionr   BaseExceptiongather)rC   rA  futtarget_closed_futures       r;   r  zRoute._race_with_page_close5  s     !!&)G((4ndK &#%		
  $||AACll&'//
 	
 	
 88:#--/}cmmo66$$&..=== '	
 >s%   BDDA,D
DDD)rF   zasyncio.Future[bool]rE   r@   )NNNNNNN)NNNN)F)"r3   r4   r5   r   r6   r
   rD   r   r   r   r   r   r   rl   r   r  intr   r8   r   r   r  r  r   r  r   r.  r1  r6  r4  r@  r	   r  r   r   s   @r;   r   r   b  s    " *- 58 GK 	 %D T 51# 1 : : :
S 
D 
 "&"&!%"&

 c3h
 CJ	

 
 CI
 
  
 

$ "&"&!%"&>V>V c3h>V CJ	>V
 >V CI>V >V  >V 
>V@H   "&+/ 

 
 c3h	

 S%(
 
 
 
 

2 "&+/
$
$ 
$ c3h	
$
 S%(
$ 

$ "&+/00 0 c3h	0
 S%(0 
0
 
$ 
,
 
 
>) > >r:   r   c                       e Zd ZddZdeeeef   gef   ddfdZ	dee
e   e
e   gef   ddfdZddZedefd       Zedee   fd	       Zdd
ededdfdZdeeef   ddfdZy)ServerWebSocketRoutec                     || _         y r@   )_ws)rC   wss     r;   rD   zServerWebSocketRoute.__init__J  s	    r:   handlerrF   Nc                 &    || j                   _        y r@   )rW  _on_server_messagerC   rY  s     r;   
on_messagezServerWebSocketRoute.on_messageM  s    &-#r:   c                 &    || j                   _        y r@   )rW  _on_server_closer\  s     r;   on_closezServerWebSocketRoute.on_closeP  s    $+!r:   c                     t        d      )Nz>connectToServer must be called on the page-side WebSocketRoute)NotImplementedErrorrB   s    r;   connect_to_serverz&ServerWebSocketRoute.connect_to_serverS  s    !L
 	
r:   c                 4    | j                   j                  d   S r   )rW  r   rB   s    r;   r/   zServerWebSocketRoute.urlX  s    xx$$U++r:   c                 `    t        | j                  j                  j                  dg             S N	protocols)listrW  r   rV   rB   s    r;   rg  zServerWebSocketRoute.protocols\  s$    DHH))--k2>??r:   codereasonc                 Z    | j                   j                  j                  dd ||dd       y )NcloseServerTri  rj  wasClean)rW  r   send_may_failrC   ri  rj  s      r;   closezServerWebSocketRoute.close`  s.    ''  	
r:   messagec                    t        |t              r+| j                  j                  j	                  dd |dd       y | j                  j                  j	                  dd t        j                  |      j                         dd       y )NsendToServerFrr  r  T)rd   r6   rW  r   ro  rW   rX   rY   rC   rr  s     r;   r   zServerWebSocketRoute.sendk  sl    gs#HH++'u&M HH++",,W5<<>DQr:   )rX  WebSocketRouterE   NN)r3   r4   r5   rD   r   r   r6   r8   r   r]  r   rS  r`  rc  r   r/   r   rg  rq  r   r9   r:   r;   rU  rU  I  s    .(E#u*,=+>+C"D . .,(3-#)G)L M ,RV ,

 ,S , , @49 @ @	
# 	
c 	
T 	

E#u*- 
$ 
r:   rU  c            
       6    e Zd Zdededededdf
 fdZdeddfd	Zdeddfd
ZdeddfdZ	deddfdZ
edefd       Zedee   fd       ZddededdfdZddZdeeef   ddfdZdeeeef   gef   ddfdZdeee   ee   gef   ddfdZddZ xZS )rw  rm   rn   ro   rp   rF   Nc                    t         |   ||||       d | _        d | _        d | _        d | _        t        |       | _        d| _        | j                  j                  d| j                         | j                  j                  d| j                         | j                  j                  d| j                         | j                  j                  d| j                         y )NFmessageFromPagemessageFromServer	closePagerl  )r}   rD   _on_page_message_on_page_closer[  r_  rU  _server
_connectedr   on_channel_message_from_page_channel_message_from_server_channel_close_page_channel_close_serverr   s        r;   rD   zWebSocketRoute.__init__y  s     	t[9NR 	 QU  	 ,D1*D,K,KL,d.O.OPd&>&>?(B(BCr:   eventc                     | j                   r7| j                  |d   rt        j                  |d                y |d          y | j                  r| j                  j                  dd |       y y )Nr  rr  rt  )r~  rW   r   r  r   ro  rC   r  s     r;   r  z)WebSocketRoute._channel_message_from_page  si      !!$   y!12 9%
 __MM''eD r:   c                     | j                   r7| j                  |d   rt        j                  |d                y |d          y | j                  j	                  dd |       y )Nr  rr  
sendToPage)r[  rW   r   r   ro  r  s     r;   r  z+WebSocketRoute._channel_message_from_server  s]    ""##$   y!12 9% MM''dEBr:   c                     | j                   r| j                  |d   |d          y | j                  j                  dd |       y )Nri  rj  rl  )r  r   ro  r  s     r;   r  z"WebSocketRoute._channel_close_page  s9    fuX?MM''tUCr:   c                     | j                   r| j                  |d   |d          y | j                  j                  dd |       y )Nri  rj  r}  )r_  r   ro  r  s     r;   r  z$WebSocketRoute._channel_close_server  s9      !!%-xAMM''T5Ar:   c                      | j                   d   S r   r   rB   s    r;   r/   zWebSocketRoute.url        ''r:   c                 L    t        | j                  j                  dg             S rf  )rh  r   rV   rB   s    r;   rg  zWebSocketRoute.protocols  s     D%%))+r:;;r:   ri  rj  c                    K   	 | j                   j                  dd ||dd       d {    y 7 # t        $ r Y y w xY ww)Nr}  Trm  )r   r   r   rp  s      r;   rq  zWebSocketRoute.close  sI     	--$$TDFPT#U    		s(   ?$0 .0 ?0 	<?<?c                     | j                   rt        d      d| _         | j                  j                  dd        t	        d| j
                        S )NzAlready connected to the serverTconnectrw  )r  r   r   ro  r   r  rB   s    r;   rc  z WebSocketRoute.connect_to_server  sB    ??9::##It4$dll33r:   rr  c                     t        |t              r!| j                  j                  dd |dd       y | j                  j                  dd t	        j
                  |      j                         dd       y )Nr  Fru  T)rd   r6   r   ro  rW   rX   rY   rv  s     r;   r   zWebSocketRoute.send  sc    gs#MM''dU$K MM''%//8??A $r:   rY  c                     || _         y r@   )r~  r\  s     r;   r]  zWebSocketRoute.on_message  s
     'r:   c                     || _         y r@   )r  r\  s     r;   r`  zWebSocketRoute.on_close  s
    %r:   c                    K   | j                   ry 	 | j                  j                  dd        d {    y 7 # t        $ r Y y w xY ww)NensureOpened)r  r   r   r   rB   s    r;   _after_handlezWebSocketRoute._after_handle  sJ     ??	--$$    		s1   A8 68 A8 	AAAArx  )rF   rw  rE   )r3   r4   r5   r   r6   r
   rD   r  r  r  r  r   r/   r   rg  rS  rq  rc  r   r8   r   r   r   r]  r   r`  r  r   r   s   @r;   rw  rw  x  s\   D"D*-D58DGKD	D(E E EC$ C4 CD D$ DB4 BD B (S ( ( <49 < < C 4 4E#u*- $ ((E#u*,=+>+C"D ( (&(3-#)G)L M &RV &
r:   rw  c                   d    e Zd Zdee   dedefdZede	d    de	e
   fd       Zdedefd	ZddZy
)WebSocketRouteHandlerbase_urlr/   rY  c                 .    || _         || _        || _        y r@   )	_base_urlr/   rY  )rC   r  r/   rY  s       r;   rD   zWebSocketRouteHandler.__init__  s     "r:   handlersrF   c                 ^   g }d}| D ]  }t        |j                  t              r|j                  d|j                  i       ;t        |j                  t        j
                        r<|j                  |j                  j                  t        |j                        d       d} |rddigS |S )NFglob)regexSource
regexFlagsTz**/*)rd   r/   r6   rZ   rePatternpatternr%   )r  patternsall_urlsrY  s       r;   prepare_interception_patternsz3WebSocketRouteHandler.prepare_interception_patterns  s      	 G'++s+ 56GKK4'.{{':':&8&E  	  V$%%r:   ws_urlc                 F    t        | j                  || j                  d      S r%  )r$   r  r/   )rC   r  s     r;   matcheszWebSocketRouteHandler.matches  s    4>>6488TBBr:   Nc                    K   | j                  |      }t        j                  |      r
| d {    |j                          d {    y 7 7 wr@   )rY  r   iscoroutiner  )rC   websocket_routecoro_or_futures      r;   handlezWebSocketRouteHandler.handle  sF     o6~.   ++--- !-s!   ,AAAAAA)r  rw  rF   N)r3   r4   r5   r   r6   r    r!   rD   staticmethodr   re   r  r   r  r  r9   r:   r;   r  r    sp    3-  /	 ./	d ,Cc Cd C.r:   r  c            
           e Zd Zdededededdf
 fdZdefdZedefd	       Z	ede
fd
       Zedefd       Zedefd       Zedefd       Zede
fd       ZdefdZdefdZdedee   fdZdedee   fdZddZdee   fdZdee   fdZdefdZddZde fdZ!defdZ"de#fdZ$ede%fd       Z&ed d       Z' xZ(S )!r   rm   rn   ro   rp   rF   Nc                    t         |   ||||       t        | j                  d         | _        | | j                  _        | j                  d   }|d   | j                  j                  d<   |d   | j                  j                  d<   |d   | j                  j                  d<   |d   | j                  j                  d<   |d   | j                  j                  d<   |d   | j                  j                  d<   |d	   | j                  j                  d	<   |d
   | j                  j                  d
<   t        t        t        | j                  d               | _
        d | _        t        j                         | _        y )Nr   r   rt   ru   rv   rw   rx   ry   rz   r{   r1   )r}   rD   r   r   r  r   r   r   r   r   r   _raw_headers_futurer   r   _finished_future)rC   rm   rn   ro   rp   r   r   s         r;   rD   zResponse.__init__  sV    	t[9!-d.?.?	.J!K"&""8,-3K-@k*5;<O5P1239:K3L/006~0Fn-9?@W9X56.4\.Bl+06~0Fn-171Ho.$.t00;<%
! JN 6=nn6Fr:   c                 <    d| j                   d| j                   dS )Nz<Response url=z	 request=r   )r/   r   rB   s    r;   r   zResponse.__repr__(  s    |9T\\N!DDr:   c                      | j                   d   S r   r   rB   s    r;   r/   zResponse.url+  r  r:   c                 v    | j                   d   dk(  xs& | j                   d   dk\  xr | j                   d   dk  S )Nr
  r      i+  r   rB   s    r;   okzResponse.ok/  sJ       *a/ 
h'3.U43D3DX3NRU3U	
r:   c                      | j                   d   S )Nr
  r   rB   s    r;   r
  zResponse.status6  s      **r:   c                      | j                   d   S )N
statusTextr   rB   s    r;   status_textzResponse.status_text:  s      ..r:   c                 6    | j                   j                         S r@   )r   r1   rB   s    r;   r1   zResponse.headers>  s    ((0022r:   c                      | j                   d   S )NfromServiceWorkerr   rB   s    r;   from_service_workerzResponse.from_service_workerB  s      !455r:   c                 Z   K   | j                          d {   j                         S 7 wr@   r   rB   s    r;   r   zResponse.all_headersF  r   r   c                 Z   K   | j                          d {   j                         S 7 wr@   r   rB   s    r;   r   zResponse.headers_arrayI  r   r   rH   c                 \   K   | j                          d {   j                  |      S 7 wr@   r   r   s     r;   r   zResponse.header_valueL  r   r   c                 \   K   | j                          d {   j                  |      S 7 wr@   )r   get_allr   s     r;   header_valueszResponse.header_valuesO  s&     **,,55d;;,r   c                 0  K   | j                   sot        j                         | _         t        t        | j
                  j                  dd        d {         }| j                   j                  t        |             | j                    d {   S 7 @7 w)NrawResponseHeaders)	r  r   r   r   r   r   r   r   r   )rC   r1   s     r;   r   zResponse._actual_headersR  s}     '''.~~'7D$mm((( G $$//
70CD---- .s$   ABB
;BBBBc                 V   K   | j                   j                  dd        d {   S 7 w)N
serverAddrr   r   rB   s    r;   server_addrzResponse.server_addr_  s-     ]]''
 
 	
 
    )')c                 V   K   | j                   j                  dd        d {   S 7 w)NsecurityDetailsr  rB   s    r;   security_detailszResponse.security_detailse  s-     ]]''
 
 	
 
r  c                 V   K   | j                   j                  dd        d {   S 7 w)NhttpVersionr  rB   s    r;   http_versionzResponse.http_versionk  s-     ]]''
 
 	
 
r  c                 j   K   d fd}t        j                   |             }t        j                  t        t        t
        t         j                  t         j                  f       j                  |g      t         j                         d {    |j                         r| d {    y y 7  7 w)Nc                  j   K    j                   j                          d {    t        d      7 w)NzTarget closed)r  r   r   rB   s   r;   on_finishedz&Response.finished.<locals>.on_finishedr  s-     --55777(( 8s   313rD  rE   )r   rG  rL  r   r   r   Taskr   r  rM  r   )rC   r  on_finished_tasks   `  r;   finishedzResponse.finishedq  s     	) #..{}=llU7<<789&&(89  //
 	
 	
   """" #	
 #s$   BB3B/B3(B1)B31B3c                    K   | j                   j                  dd        d {   }t        j                  |      S 7 w)Nr  )r   r   rW   r   )rC   binarys     r;   r  zResponse.body  s=     }}))
 
 ''	
s    ><>c                 ^   K   | j                          d {   }|j                         S 7 wr@   )r  rY   )rC   contents     r;   textzResponse.text  s&     		#~~ $s   -+-c                 d   K   t        j                  | j                          d {         S 7 wr@   )r   r   r  rB   s    r;   r   zResponse.json  s!     zz		+,,+s   #0.	0c                     | j                   S r@   )r  rB   s    r;   r   zResponse.request  s    }}r:   c                 .    | j                   j                  S r@   )r  r   rB   s    r;   r   zResponse.frame  s    }}"""r:   r   rE   r   ))r3   r4   r5   r   r6   r
   rD   r   r   r/   r   r  rS  r
  r  r   r1   r  r   r   r   r   r   r   r  r   r   r  r   r  r  r  r8   r  r  r   r   rl   r   r   r   r   s   @r;   r   r     s   G"G*-G58GGKG	G*E# E (S ( ( 
D 
 
 + + + /S / / 3 3 3 6T 6 687 8>\ >8s 8x} 8< <S	 <.
8J#7 

(A 

C 
# (E ( C  -C -    # #r:   r   c            
            e Zd Z edddd      Zdededed	ed
df
 fdZd
efdZ	e
d
efd       Z	 	 ddededed
efdZ	 ddededed
efdZdeded
dfdZdeded
dfdZd
efdZddZ xZS )	WebSocketrq  framereceived	framesentsocketerror)CloseFrameReceived	FrameSentr   rm   rn   ro   rp   rF   Nc                 T    t            ||||       d _        t        d|       _         j
                  j                  d fd        j
                  j                  d fd        j
                  j                  d fd        j
                  j                  d	 fd
       y )NFr+   	frameSentc                 4    j                  | d   | d         S Nopcoder   )_on_frame_sentr   rC   s    r;   r  z$WebSocket.__init__.<locals>.<lambda>  s    4..vh/?P r:   frameReceivedc                 4    j                  | d   | d         S r  )_on_frame_receivedr  s    r;   r  z$WebSocket.__init__.<locals>.<lambda>  s    4226(3CVF^T r:   socketErrorc                 ^    j                  t        j                  j                  | d         S )Nerror)emitr  Eventsr   r  s    r;   r  z$WebSocket.__init__.<locals>.<lambda>  s"    499Y%5%5%;%;VG_M r:   rq  c                 $    j                         S r@   )	_on_closer  s    r;   r  z$WebSocket.__init__.<locals>.<lambda>  s    1A r:   )r}   rD   
_is_closedr   r   r   r  r   s   `    r;   rD   zWebSocket.__init__  s     	t[9&&)
P	
 	T	
 	M	
 	"ABr:   c                 "    d| j                   dS )Nz<WebSocket url=r   )r/   rB   s    r;   r   zWebSocket.__repr__  s     A..r:   c                      | j                   d   S r   r   rB   s    r;   r/   zWebSocket.url  r  r:   r  	predicater)  c                     |2t        t         j                        j                  j	                         }t         d| d      }|j                  t        t        |      d| d| d       |t        j                  j                  k7  r4|j                   t        j                  j                  t        d             |t        j                  j                  k7  r4|j                   t        j                  j                  t        d             |j                   j                  d fd	       |j                   ||       t        |j!                               S )
Nzweb_socket.expect_event()zTimeout z%ms exceeded while waiting for event ""zSocket closedzSocket errorrq  c                  8     j                   j                         S r@   )r   _close_error_with_reasonrB   s   r;   r  z(WebSocket.expect_event.<locals>.<lambda>  s    )L)L)N r:   )r   r   _parent_timeout_settingsr)  r&   reject_on_timeoutr   r  r  r  reject_on_eventr   r   wait_for_eventr   result)rC   r  r  r)  waiters   `    r;   expect_eventzWebSocket.expect_event  s    ?3-??GGIG 8qAB   wiDUG1M	
 I$$***""4)9)9)?)?AWXI$$***""4)9)9)?)?~AVWJJ!N	
 	dE95&v}}77r:   c                    K   | j                  |||      4 d {   }	 d d d       d {     d {   S 7 7 # 1 d {  7  sw Y    xY w7 wr@   )r  )rC   r  r  r)  
event_infos        r;   r  zWebSocket.wait_for_event  s[      $$UIw? 	 	:	 		 	 	 	 	sF   A:A>A<	AAAAAAAAr  r   c                     |dk(  r>| j                  t        j                  j                  t	        j
                  |             y |dk(  r+| j                  t        j                  j                  |       y y N      )r  r  r  r  rW   r   rC   r  r   s      r;   r  zWebSocket._on_frame_sent  sT    Q;IIi&&00&2B2B42HIq[IIi&&00$7 r:   c                     |dk(  r>| j                  t        j                  j                  t	        j
                  |             y |dk(  r+| j                  t        j                  j                  |       y y r  )r  r  r  r  rW   r   r  s      r;   r  zWebSocket._on_frame_received  sT    Q;IIi&&44f6F6Ft6LMq[IIi&&44d; r:   c                     | j                   S r@   )r  rB   s    r;   	is_closedzWebSocket.is_closed  s    r:   c                 f    d| _         | j                  t        j                  j                  |        y r%  )r  r  r  r  r  rB   s    r;   r  zWebSocket._on_close  s#    		)""(($/r:   rx  rE   )r3   r4   r5   r   r  r   r6   r
   rD   r   r   r/   r   r   r   r  r   r  rS  r  r  r   r  r  r   r   s   @r;   r  r    s   %	FC"C*-C58CGKC	C(/# / (S ( ( #	88 8 	8
 
!80 HL  %- ?D 	 8S 8 8 8< <C <D <4 0r:   r  c                       e Zd ZdeddfdZedeeef   dd fd       Zdede	e   fdZ
dedee   fdZdeeef   fd	Zdefd
Zy)r   r1   rF   Nc                     || _         t        t              | _        |D ](  }d| j                  |d   j	                            |d   <   * y )NTrH   rI   )_headers_arrayr   re   _headers_mapr  )rC   r1   headers      r;   rD   zRawHeaders.__init__  sN    %8CD8I 	NFIMDfVn2245fWoF	Nr:   c                 *    t        t        |             S r@   )r   rK   )r1   s    r;   r   z#RawHeaders._from_headers_dict_lossy  s    +G455r:   rH   c                 z    | j                  |      }|sy |j                         dk(  rdnd}|j                  |      S )Nz
set-cookier   z, )r  r  r   )rC   rH   values	separators       r;   rV   zRawHeaders.get  s9    d# JJLL8Dd	~~f%%r:   c                 j    t        | j                  |j                            j                               S r@   )rh  r  r  keysr   s     r;   r  zRawHeaders.get_all  s'    D%%djjl388:;;r:   c                     i }| j                   j                         D ]$  }t        t        | j	                  |            ||<   & |S r@   )r  r$  r   r6   rV   )rC   r  rH   s      r;   r1   zRawHeaders.headers  sB    %%**, 	5DTXXd^4F4L	5r:   c                     | j                   S r@   )r  rB   s    r;   r   zRawHeaders.headers_array  s    """r:   )r3   r4   r5   r   rD   r  r
   r6   r   r   rV   r   r  r1   r   r9   r:   r;   r   r     s    N N N 6$sCx. 6\ 6 6& & &<C <DI <c3h #| #r:   r   )Mr   rW   r   r  r  r  collectionsr   pathlibr   typesr   typingr   r   r   r	   r
   r   r   r   r   r   r   urllibr    playwright._impl._api_structuresr   r   r   r   r   r   r   r   playwright._impl._connectionr   r   r   r   playwright._impl._errorsr   'playwright._impl._event_context_managerr   playwright._impl._helperr    r!   r"   r#   r$   playwright._impl._str_utilsr%   playwright._impl._waiterr&   !playwright._impl._browser_contextr'   r  r)   playwright._impl._framer*   playwright._impl._pager+   r,   r.   r>   r6   rK   ra   rj   rl   r   rU  rw  r  r   r  r   r9   r:   r;   <module>r6     s        	 #  !    	 	 	  + K  ; +@3-3*% *6 6tCH~ ,  &7!89d4S>"#DeOXo5N$NOPd?#$N*l N*bd>L d>N, ,^k\ k\). ).XC#| C#LR0 R0j# #r:   