
    'jcN              	       ~   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mZmZm	Z	m
Z
mZ d dlmc 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 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* d d	lm+Z+m,Z, d d
l-m.Z. ej/        rd dl0m1Z1 e
ee2e
e3e4e2f         f         ef         Z5e
ee6e2f         Z7e
ee2e
e6e3e4e2ef         f         ef         Z8e
ee2e
e3e4e2f         f         e2f         Z9 G d d          Z: G d de          Z;dedefdZ<de2dedefdZ= G d d          Z>ddej?        de3fdZ@dede3fdZAdS )    N)Path)AnyDictListOptionalUnioncast)ClientCertificateFilePayload	FormFieldHeadersHttpCredentialsProxySettingsServerFilePayloadStorageState)ChannelOwnerfrom_channel)is_target_closed_error)FormData)
Error	NameValueTargetClosedErrorTimeoutSettingsasync_readfileasync_writefileis_file_payloadlocals_to_paramsobject_to_arrayto_impl)serialize_headersto_client_certificates_protocol)Tracing)
Playwrightc                       e Zd ZddZ	 	 	 	 	 	 	 	 	 	 	 ddedeeef         ded	ed
edede	de
eeef         dee         dededdfdZdS )
APIRequest
playwrightr#   returnNc                 N    || _         |j        | _        |j        j        | _        d S N)r&   _loop_connection_dispatcher_fiber)selfr&   s     [/home/ice/.hermes/hermes-agent/venv/lib/python3.11/site-packages/playwright/_impl/_fetch.py__init__zAPIRequest.__init__?   s'    $%
!+!7!I    baseURLextraHTTPHeadershttpCredentialsignoreHTTPSErrorsproxy	userAgenttimeoutstorageStateclientCertificatesfailOnStatusCodemaxRedirectsAPIRequestContextc           
      N  K   t          t                                }d|v r[|d         }t          |t                    s>|r<t	          j        t          |           d {V                                           |d<   d|v rt          |d                   |d<   t          |
                    d                     d {V |d<   t          t          t          | j        j                            dd |           d {V                     }|j                            |           |S )Nr8   r2   r9   
newRequest)r   locals
isinstancedictjsonloadsr   decoder    r!   getr	   r<   r   r&   _channelsend_timeout_settingsset_default_timeout)r-   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   paramsstorage_statecontexts                  r.   new_contextzAPIRequest.new_contextD   sZ      "&((++V##">2MmT22 } )-)-88888888@@BB* *~& ''):6BT;U)V)VF%&-LJJ+,,.
 .
 (
 (
 (
 (
 (
 (
#$ o.33L$OOOOOOOO 
 
 	!55g>>>r0   )r&   r#   r'   NNNNNNNNNNNN)__name__
__module____qualname__r/   strr   r   boolr   floatr   r   r   r   r
   intrM    r0   r.   r%   r%   >   s        J J J J +/+/"&#7;6:!% ! !! sCx.! )	!
  ! ! ! ! L#t34! !!23! ! ! 
! ! ! ! ! !r0   r%   c                   R    e Zd Zdededededdf
 fdZd%deddfd	Zede	fd
            Z
	 	 	 	 	 	 	 	 	 	 d&dedededededededededededdfdZ	 	 	 	 	 	 	 	 	 	 d&dedededededededededededdfdZ	 	 	 	 	 	 	 	 	 	 d&dedededededededededededdfdZ	 	 	 	 	 	 	 	 	 	 d&dedededededededededededdfdZ	 	 	 	 	 	 	 	 	 	 d&dedededededededededededdfdZ	 	 	 	 	 	 	 	 	 	 d&dedededededededededededdfdZ	 	 	 	 	 	 	 	 	 	 	 d'deeej        f         dedededededededededededdfdZ	 	 	 	 	 	 	 	 	 	 	 d'd eej                 dee         dedededededededededededdfd!Z	 	 d(d"eej         ef         d#ede!fd$Z" xZ#S ))r<   parenttypeguidinitializerr'   Nc                     t                                          ||||           t          |d                   | _        d | _        t          d           | _        d S )Ntracing)superr/   r   _tracing_close_reasonr   rH   )r-   rX   rY   rZ   r[   	__class__s        r.   r/   zAPIRequestContext.__init__i   sU     	t[999!-k).D!E!E,0!0!6!6r0   reasonc                 &  K   || _         | j                                         d {V  	 | j                            dd d|i           d {V  n)# t
          $ r}t          |          rY d }~d S |d }~ww xY w| j                                         d S )Ndisposerb   )r`   r_   _export_all_harsrF   rG   r   r   _reset_stack_counter)r-   rb   es      r.   rd   zAPIRequestContext.disposeq   s      #m,,.........	-$$Yx6HIIIIIIIIII 	 	 	%a(( G	 	**,,,,,s   $A 
A5A0.A00A5c                     | j         S r)   )r_   r-   s    r.   r]   zAPIRequestContext.tracing|   s
    }r0   urlrJ   headersdataform	multipartr7   r:   r4   r;   
maxRetriesAPIResponsec                 T   K   |                      |d||||||||	|
|           d {V S )NDELETEmethodrJ   rk   rl   rm   rn   r7   r:   r4   r;   ro   fetchr-   rj   rJ   rk   rl   rm   rn   r7   r:   r4   r;   ro   s               r.   deletezAPIRequestContext.delete   se       ZZ-/%!   
 
 
 
 
 
 
 
 	
r0   c                 T   K   |                      |d||||||||	|
|           d {V S )NHEADrs   ru   rw   s               r.   headzAPIRequestContext.head   e       ZZ-/%!   
 
 
 
 
 
 
 
 	
r0   c                 T   K   |                      |d||||||||	|
|           d {V S )NGETrs   ru   rw   s               r.   rE   zAPIRequestContext.get   e       ZZ-/%!   
 
 
 
 
 
 
 
 	
r0   c                 T   K   |                      |d||||||||	|
|           d {V S )NPATCHrs   ru   rw   s               r.   patchzAPIRequestContext.patch   se       ZZ-/%!   
 
 
 
 
 
 
 
 	
r0   c                 T   K   |                      |d||||||||	|
|           d {V S )NPUTrs   ru   rw   s               r.   putzAPIRequestContext.put   r   r0   c                 T   K   |                      |d||||||||	|
|           d {V S )NPOSTrs   ru   rw   s               r.   postzAPIRequestContext.post  r|   r0   urlOrRequestrt   c                 h  K   t          |t                    r|nd }t          t          |          t          j                  r't          t          j        t          |                    nd }|st          |t                    s
J d            |                     ||||||||||	|
||           d {V S )Nz3First argument must be either URL string or Request)r@   rR   r   networkRequestr	   _inner_fetch)r-   r   rJ   rt   rk   rl   rm   rn   r7   r:   r4   r;   ro   rj   requests                  r.   rv   zAPIRequestContext.fetch.  s       )s;;Ell ',//AAD',"7"7888 	
  	A*#
 
 	A 	A@	A 	A 
 &&
 
 
 
 
 
 
 
 	
r0   r   c                   K   | j         rt          | j                   |rdnd|rdndz   |rdndz   dk    s
J d            ||dk    s
J d            ||dk    s
J d            |p
|r|j        n|}|p
|r|j        nd}|p
|r|j        nd }|rt          |          nd }d }d }d }d }|t          |t                    rLt          |          r't          |          r|nt          j        |          }nM|                                }n7t          |t                    r|}nt          |t          t          t           t"          f          rt          j        |          }nt%          dt'          |                     |rt          |t(                    rvg }|j        D ]j\  }}t          |t,          j        t          f          rt%          d|d	          |                    t3          |t          |          
                     kn4t5          |          }n#|r g }t          |t(                    r7|j        D ].\  }}|                    t7          ||           d {V            /n|                                D ]\  }}t;          |          rpt=          t>          |          }t          |d         t                    sJ d| d            |                    tA          |tC          |                               t          |t                    r$|                    tA          ||
                     |||||r|j"        nd }|r&tG          j$        |          %                                nd }| j&        '                    d| j(        j)        ||	t          |t                    rt5          |          nd t          |t                    r|nd |||||||
|||d           d {V }tU          | |          S )N   r   z:Only one of 'data', 'form' or 'multipart' can be specifiedz4'max_redirects' must be greater than or equal to '0'z2'max_retries' must be greater than or equal to '0'r~   zUnsupported 'data' type: zForm field zG must be a string, number or boolean. Use 'multipart' for file uploads.namevaluebufferz Unexpected buffer type of 'data.'r   filerv   )rj   r7   rJ   encodedParamsrt   rk   postDatajsonDataformDatamultipartDatar:   r4   r;   ro   )+r`   r   rj   rt   rk   r    r@   rR   is_json_content_typeis_json_parsablerB   dumpsencodebytesrA   listrU   rS   r   rY   r   _fieldspathlibr   appendr   r   _form_data_field_to_form_fielditemsr   r	   r   r   file_payload_to_jsonpost_data_bufferbase64	b64encoderD   rF   rG   rH   r7   rp   )r-   r   rj   rt   rk   rl   rJ   rm   rn   r7   r:   r4   r;   ro   headers_objserialized_headers	json_data	form_datamultipart_datar   fd_namefd_valuer   r   payload	post_dataresponses                              r.   r   zAPIRequestContext._inner_fetchV  s        	8#D$6777QQAt"2!!3I7Lqq1M  L    LA$5$5$5A %6$55 *///? #2/16W5gkk#Ag@GNN5GW"F'//$?JT.{;;;PT	/3	48,0$$$ 
F'(:;; 5(8(>(> TDJtDTDTII'+{{}}$$D%(( F#'  D4sD"9:: F Jt,,		DT

DDEEE 	Q$)) 	2	)- S S%GX!(W\4,@AA #|'|||   $$YG3x==%Q%Q%QRRRRS ,D11		 	QN)X.. Q)2):  %GX"))<WhOOOOOOOO    $-??#4#4 
Q 
QKD%&u-- 	Q"&{E":":)#H-u    F FEdEEEF F   '--%46J76S6STTT    $E3// Q&--iT.O.O.OPPP$!!&;BLw77;KUF-..55777QU 	 ++"*"5?5M5MW/&111SW+5fc+B+B!L -%%%!/$4%6 ,( 
 
 
 
 
 
 
 
( 4***r0   path	indexedDBc                    K   | j                             dd d|i           d {V }|r(t          |t          j        |                     d {V  |S )Nr8   r   )rF   send_return_as_dictr   rB   r   )r-   r   r   results       r.   rK   zAPIRequestContext.storage_state  s      
 }88D;	":
 
 
 
 
 
 
 
  	<!$
6(:(:;;;;;;;;;r0   r)   )
NNNNNNNNNNrN   )NN)$rO   rP   rQ   r   rR   r   r/   rd   propertyr"   r]   
ParamsTyper   DataTypeFormTypeMultipartTyperT   rS   rU   rx   r{   rE   r   r   r   r   r   r   rv   r   r   r   r   r   rK   __classcell__)ra   s   @r.   r<   r<   h   s       7"7*-7587GK7	7 7 7 7 7 7	- 	-C 	-4 	- 	- 	- 	-     X "#'!%"& 
 

 
 	

 
 
 !
 
 
  
 
 
 

 
 
 
@ "#'!%"& 
 

 
 	

 
 
 !
 
 
  
 
 
 

 
 
 
@ "#'!%"& 
 

 
 	

 
 
 !
 
 
  
 
 
 

 
 
 
@ "#'!%"& 
 

 
 	

 
 
 !
 
 
  
 
 
 

 
 
 
@ "#'!%"& 
 

 
 	

 
 
 !
 
 
  
 
 
 

 
 
 
@ "#'!%"& 
 

 
 	

 
 
 !
 
 
  
 
 
 

 
 
 
@ "#'!%"& &
 &
C01&
 &
 	&

 &
 &
 &
 !&
 &
 &
  &
 &
 &
 
&
 &
 &
 &
X !#'!%"& n+ n+'/*n+ c]n+ 	n+
 n+ n+ n+ n+ !n+ n+ n+  n+ n+ n+ 
n+ n+ n+ n+d *.
 
GL#%&
 
 
	
 
 
 
 
 
 
 
r0   r<   r   r'   c                     t          | d         | d         t          j        | d                                                             S )Nr   mimeTyper   r   r   r   )r   r   r   rD   )r   s    r.   r   r     sG    V_$ 12299;;   r0   r   r   c                   K   t          |t          j                  rt          j        t          |                    \  }}t          | t          |j        |pdt          j
        t          t          |                     d {V                                                               S t          |          r[t          t          |          }t          |d         t                     sJ d|             t          | t#          |                    S t          |t
          t$          t&          t(          f          rt          | t          |                    S t+          d| dt-          |          j                   )	Nzapplication/octet-streamr   r   r   z%Unexpected buffer type of form field r   zUnsupported form field z value type: )r@   r   r   	mimetypes
guess_typerR   r   r   r   r   r   r   rD   r   r	   r   r   r   rU   rT   rS   r   rY   rO   )r   r   	mime_type_r   s        r.   r   r     s     %&& 	
 +CJJ77	1"Z"@&@'nSZZ.H.H(H(H(H(H(H(HIIPPRR  
 
 
 	
 u H{E**Hu
 
 	< 	<;4;;	< 	< 
 d)=g)F)FGGGG%#sE4011 6d#e**5555
U$UUtE{{?SUU
V
VVr0   c                   @   e Zd Zdededd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j        fd            ZdefdZdefdZdefdZddZedefd            Zdee         fdZdS )rp   rL   r[   r'   Nc                     |j         | _         |j        j        | _        || _        || _        t          j        |d                   | _        d S )Nrk   )r*   r+   r,   _request_initializerr   
RawHeaders_headers)r-   rL   r[   s      r.   r/   zAPIResponse.__init__  sC    ]
!(!4!F'*;y+ABBr0   c                 8    d| j         d| j        d| j        dS )Nz<APIResponse url=z status=z status_text=>)rj   statusstatus_textri   s    r.   __repr__zAPIResponse.__repr__  s+    h48hht{hhSWSchhhhr0   c                 .    | j         dk    o
| j         dk    S )N   i+  )r   ri   s    r.   okzAPIResponse.ok  s    {c!8dkS&88r0   c                     | j         d         S )Nrj   r   ri   s    r.   rj   zAPIResponse.url   s     ''r0   c                     | j         d         S )Nr   r   ri   s    r.   r   zAPIResponse.status  s     **r0   c                     | j         d         S )N
statusTextr   ri   s    r.   r   zAPIResponse.status_text  s     ..r0   c                 4    | j                                         S r)   )r   rk   ri   s    r.   rk   zAPIResponse.headers  s    }$$&&&r0   c                 4    | j                                         S r)   )r   headers_arrayri   s    r.   r   zAPIResponse.headers_array  s    }**,,,r0   c                    K   	  j         j                             fdd           d {V }|t          d          t	          j        |d                   S # t          $ r%}t          |          rt          d          |d }~ww xY w)Nc                  T     j         j                            dd d j        i          S )NfetchResponseBodyfetchUid)r   rF   r   
_fetch_uidri   s   r.   <lambda>z"APIResponse.body.<locals>.<lambda>  s.    .BB'"DO  r0   TzResponse has been disposedbinary)r   r+   wrap_api_callr   r   	b64decoder   )r-   r   excs   `  r.   bodyzAPIResponse.body  s      	=4BB    	 	 	 	 	 	 	 	F ~8999#F8$4555 	 	 	%c** :8999I	s   AA 
B# BBc                 b   K   |                                   d {V }|                                S r)   )r   rD   r-   contents     r.   textzAPIResponse.text(  s5      		######~~r0   c                 b   K   |                                   d {V }t          j        |          S r)   )r   rB   rC   r   s     r.   rB   zAPIResponse.json,  s5      		######z'"""r0   c                 f   K   | j         j                            dd d| j        i           d {V  d S )NdisposeAPIResponser   r   rF   rG   r   ri   s    r.   rd   zAPIResponse.dispose0  s]      m$)) DO
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
r0   c                     | j         d         S )Nr   r   ri   s    r.   r   zAPIResponse._fetch_uid9  s     ,,r0   c                 b   K   | j         j                            dd d| j        i           d {V S )NfetchLogr   r   ri   s    r.   
_fetch_logzAPIResponse._fetch_log=  sS      ]+00DO
 
 
 
 
 
 
 
 	
r0   )r'   N)rO   rP   rQ   r<   r   r/   rR   r   r   rS   r   rj   rU   r   r   r   rk   r   HeadersArrayr   r   r   r   r   rB   rd   r   r   r   rV   r0   r.   rp   rp     s       C 1 C C C C C Ci# i i i i 9D 9 9 9 X9 (S ( ( ( X( + + + + X+ /S / / / X/ ' ' ' ' X' -w3 - - - X-E    ( C        #C # # # #
 
 
 
 -C - - - X-
$s) 
 
 
 
 
 
r0   rp   rk   c                 j    | sdS | D ]+}|d         dk    r|d                              d          c S ,dS )NFr   zContent-Typer   zapplication/json)
startswith)rk   headers     r.   r   r   G  sX     u B B&>^++'?--.@AAAAA ,5r0   c                     t          | t                    sdS 	 t          j        |            dS # t          j        $ r Y dS w xY w)NFT)r@   rR   rB   rC   JSONDecodeError)r   s    r.   r   r   P  sX    eS!! u
5t   uus   / AAr)   )Br   rB   r   r   typingr   r   r   r   r   r   r	   playwright._impl._network_impl_networkr    playwright._impl._api_structuresr
   r   r   r   r   r   r   r   playwright._impl._connectionr   r   playwright._impl._errorsr   playwright._impl._form_datar   playwright._impl._helperr   r   r   r   r   r   r   r   r   r   r    r!   playwright._impl._tracingr"   TYPE_CHECKINGplaywright._impl._playwrightr#   rR   rS   rT   r   r   r   r   r   r%   r<   r   r   rp   r   r   r   rV   r0   r.   <module>r     s                 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 + + + + + + + + +	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 D C C C C C C C ; ; ; ; ; ; 0 0 0 0 0 0                        Y X X X X X X X - - - - - -	 8777777 c5uc!1223X=>eS!d3eT5#{&J KKLhVW4U4#3445s:;
' ' ' ' ' ' ' 'Th h h h h h h hV+ 2C    Ws W3 W9 W W W W,S
 S
 S
 S
 S
 S
 S
 S
l '"6 $    C D      r0   