
    'jJ                     R   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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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#m$Z$m%Z%m&Z&m'Z' d dl(m)Z) d d	l*m+Z+ d d
l,m-Z- erd dl m.Z. d dl/m0Z0m1Z1m2Z2m3Z3 ee4ee4         ee4ge5f         f         Z6ee4ee4         edgee5ee5         f         f         f         Z7ee4ee4         edgee5ee5         f         f         f         Z8eedgef         eddgef         f         Z9edgef         Z:ed         Z;ed         Z<ed         Z=ed         Z>ed         Z?ed         Z@ed         ZAed         ZBed         ZCed         ZDed         ZE G d ded          ZF G d  d!ed          ZGd"ed#ee4ef         fd$ZH G d% d&e          ZI G d' d(ed          ZJ G d) d*e          ZK G d+ d,e          ZLee4ee4eMe5f         f         ZN	 dcd-ee4         d.e4d/ee6         d0e5d#e5f
d1ZO	 dcd-ee4         d2e4d0e5d#e4fd3ZPd-ee4         d#ee4         fd4ZQd-ee4         d/e4d#e4fd5ZRd-ee4         d6e4d#ee4ee4         f         fd7ZSd8e4d#efd9ZT G d: d;ed          ZUd<ZVd=ZWd>ZX G d? d@          ZYdAeZdBee
         d#eFfdCZ[dcdDeFdEee4         d#e#fdFZ\dGe4d#e4fdHZ]dIed#efdJZ^d#e_fdKZ` G dL dM          Za G dN dO          Zb ejc        dP          ZddQe4d#e4fdRZedSeee4f         d#dfdTZfdUee4ef         dVee4egf         d#dfdWZhdUee4ef         d#egfdXZi edY          ZjdZejd#ejfd[ZkdZee         d#eee!                  fd\Zld]ee         d#e5fd^Zm ejc        d_          Znd`e4d#e5fdaZod]eeMejp        df         d#eeM         fdbZqdS )d    N)Path)TracebackType)TYPE_CHECKINGAny	AwaitableCallableDictListLiteralOptionalPatternSetTuple	TypedDictTypeVarUnioncast)ParseResulturljoinurlparse
urlunparse)	NameValue)ErrorTargetClosedErrorTimeoutErroris_target_closed_errorrewrite_error)glob_to_regex_pattern)RouteGreenlet)escape_regex_flags)HeadersArray)RequestResponseRouteWebSocketRouter"   r#   r$   r%   )darklightno-preferencenull)activenoner)   )morer(   r)   )r(   r)   reduce)commitdomcontentloadedloadnetworkidle)AltControlControlOrMetaMetaShift)leftmiddleright)allowblock)fullminimal)attachembedomit)abortfallbackc                   D    e Zd ZU eed<   eed<   eed<   ee         ed<   dS )ErrorPayloadmessagenamestackvalueN)__name__
__module____qualname__str__annotations__r   r        \/home/ice/.hermes/hermes-agent/venv/lib/python3.11/site-packages/playwright/_impl/_helper.pyrD   rD   S   s=         LLL
IIIJJJC=rO   rD   F)totalc                   0    e Zd ZU eed<   ee         ed<   dS )HarRecordingMetadatapathcontentN)rI   rJ   rK   rL   rM   r   HarContentPolicyrN   rO   rP   rS   rS   Z   s-         
III&''''''rO   rS   paramsreturnc                 n   dt          | d                   i}d| v rV| d         }t          |t                     r||d<   t          |t                    r|j        |d<   t	          |          |d<   | d= d| v r| d         |d<   | d= d }d }d	| v r| d	         }| d	= d
| v r| d
         }| d
= |p|rdnd }|r||d<   |S )NrT   recordHarPathrecordHarUrlFilterurlGloburlRegexSourceurlRegexFlagsrecordHarModemoderecordHarContentrecordHarOmitContentr@   rU   )rL   
isinstancer   patternr    )rW   
out_paramsoptnew_content_apiold_content_apirU   s         rP   prepare_record_har_optionsri   _   s   "(#f_.E*F*F!GJv%%)*c3 	($'Jy!c7## 	B+.;J'(*<S*A*AJ''(&  #O4
6?#OOV## !34%&'' !78)*FO"E&&G ( '
9rO   c                   .    e Zd ZU eed<   eed<   eed<   dS )ParsedMessageParamstypeguidinitializerN)rI   rJ   rK   rL   rM   r	   rN   rO   rP   rk   rk   |   s0         
III
IIIrO   rk   c                   L    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   dS )ParsedMessagePayloadidrm   methodrW   resulterrorN)	rI   rJ   rK   intrM   rL   rk   r   rD   rN   rO   rP   rp   rp      sN         GGG
IIIKKKKKKrO   rp   c                   &    e Zd ZU ee         ed<   dS )DocumentrequestN)rI   rJ   rK   r   r   rM   rN   rO   rP   rw   rw      s"         c]rO   rw   c                   P    e Zd ZU eed<   eed<   ee         ed<   ee         ed<   dS )FrameNavigatedEventurlrF   newDocumentrt   N)rI   rJ   rK   rL   rM   r   rw   rN   rO   rP   rz   rz      sE         	HHH
III(####C=rO   rz   base_url
url_stringmatchwebsocket_urlc                     |sdS t          |t                    r#t          j        t	          | ||                    }t          |t
                    r"t          |                    |                    S  ||          S )NT)rc   rL   recompileresolve_glob_to_regex_patternr   boolsearch)r}   r~   r   r   s       rP   url_matchesr      s      t% 

)(E=II
 
 %!! .ELL,,---5rO   globc                 b    |rt          |           } t          | |          }t          |          S N)to_websocket_base_urlresolve_glob_baser   )r}   r   r   s      rP   r   r      s6      3(22Xt,,D &&&rO   c                 `    | +t          j        d|           rt          j        dd|           } | S )Nz
^https?://z^httpws)r   r   sub)r}   s    rP   r   r      s1     A A6(D(33OrO   c           	         |d         dk    r|S i dt           dt           dt           ffd}|                    dd          }|                    d	          sT|                    d
          s?|                    d          s*|                    d          s|                    d          r|S g }t          |                    d                    D ] \  }}|dv r|                    |            |dk    rS|                    d          r>d|v sd|v r |                     ||d                     n|                    |           y|                    d          }|dk    r$|                     ||d| d                      ||d |         d| d          } |||d          d| d          }|                    ||z              d                    |          }	t          | |	          \  }
}
                                D ]8\  }}|o||v }|
                    ||r|                                n|d          }
9|
S )Nr   *originalreplacementrX   c                 <    t          |           dk    rdS | |<   |S )Nr    )len)r   r   	token_maps     rP   	map_tokenz$resolve_glob_base.<locals>.map_token   s)    x==A2!)	+rO   z\\??zabout:zdata:zchrome:zedge:zfile:/).z..r   :{zhttp:z$_z_$z?$_   )rL   replace
startswith	enumeratesplitappendendswithfindjoinresolve_base_urlitemslower)r}   r   r   processed_partsindextokenquestion_index
new_prefix
new_suffixrelative_pathresolvedcase_insensitive_partr   	normalizer   s                 @rP   r   r      s   Qx3 "IC c c       MM&#&&E 	""G$$ I&& G$$	
 G$$  O!%++c"2"233 < <uO##""5))) A::%..--:e||se||&&yy'@'@AAAA  &&u---CR""99UNNNN#C#CDDDD"5.#9>>>>JJJ"5#9????KKJ"":
#:;;;;HH_--M&6x&O&O#H#$??,, 
 
x)Le7L.L	##y>8>>###h
 
 OrO   	given_urlc                     	 t          t          | | nd|                    }t          |          }|j        pd}|j        r|d|j         z  }|j         d| }||fS # t          $ r |d fcY S w xY w)Nr   r   z://)nodelike_urlparser   r   hostnameportscheme	Exception)r}   r   r{   r   hostname_portcase_insensitive_prefixs         rP   r   r      s     4HH"iHH
 
 c?? LB 	 8 	,^^^+M%(Z"C"CM"C"C000   $s   AA A0/A0r{   c                     t          | d          }|j        dv }|r!|j        dk    r|                    d          }|S )NT)allow_fragments)httphttpsr   wssftpfiler   r   rT   )r   r   rT   _replace)r{   parsedis_special_urls      rP   r   r   
  sR    c4000F ]&SSN / ;"__#_..FMrO   c                       e Zd ZU ed         ed<   ee         ed<   ee         ed<   ee         ed<   ed         ed<   ee         ed<   d	S )
HarLookupResult)rt   redirectfulfillnoentryactionrE   redirectURLstatusr!   headersbodyN)rI   rJ   rK   r   rM   r   rL   ru   rN   rO   rP   r   r     su         =>>>>c]#SMn%%%%
3-rO   r   i0u  i  ic                       e Zd Zeddee         defd            Zded          ddfdZdee         ddfdZddedefdZ	d	ee         ddfd
Z
dee         fdZdee         fdZddedefdZdS )TimeoutSettingsNtimeoutrX   c                     | | nt           S r   )1DEFAULT_PLAYWRIGHT_LAUNCH_TIMEOUT_IN_MILLISECONDS)r   s    rP   launch_timeoutzTimeoutSettings.launch_timeout(  s     " GB	
rO   parentc                 0    || _         d | _        d | _        d S r   )_parent_default_timeout_default_navigation_timeout)selfr   s     rP   __init__zTimeoutSettings.__init__0  s    15<@(((rO   c                     || _         d S r   r   r   r   s     rP   set_default_timeoutz#TimeoutSettings.set_default_timeout5  s     'rO   c                 t    ||S | j         | j         S | j        r| j                                        S t          S r   )r   r   r   *DEFAULT_PLAYWRIGHT_TIMEOUT_IN_MILLISECONDSr   s     rP   r   zTimeoutSettings.timeout8  sC    N ,((< 	*<'')))99rO   navigation_timeoutc                     || _         d S r   r   )r   r   s     rP   set_default_navigation_timeoutz.TimeoutSettings.set_default_navigation_timeoutA  s     ,>(((rO   c                     | j         S r   r   r   s    rP   default_navigation_timeoutz*TimeoutSettings.default_navigation_timeoutF  s    //rO   c                     | j         S r   r   r   s    rP   default_timeoutzTimeoutSettings.default_timeoutI  s    $$rO   c                     ||S | j         | j         S | j        | j        S | j        r| j                                        S t          S r   )r   r   r   r   r   r   s     rP   r   z"TimeoutSettings.navigation_timeoutL  sU    N+733 ,((< 	5<2244499rO   r   )rI   rJ   rK   staticmethodr   floatr   r   r   r   r   r   r   r   rN   rO   rP   r   r   &  sQ       
 
 
5 
 
 
 \
Ax(9: At A A A A
(8E? (t ( ( ( (: :u : : : : :>"*5/>	> > > >
0HUO 0 0 0 0%% % % % %	: 	:% 	:5 	: 	: 	: 	: 	: 	:rO   r   extbc           	          t          t          |           dd                    t          j        |                              S )Nr   r   )rE   rF   rG   )rD   rL   r   	traceback	format_tb)r   r   s     rP   serialize_errorr   X  s=    BgRWWY5H5L5L-M-M   rO   rt   logc                    t           }|                     d          dk    rt          }|                     d          dk    rt          }|sd} |t	          | d                   |z             }| d         |_        | d         |_        |S )NrF   r   r   r   rE   rG   )r   getr   r   patch_error_message_name_stack)rt   r   base_error_classexcs       rP   parse_errorr   ^  s    yyN**'yy///, 

.uY/?@@3F
G
GCfCIwCJJrO   rE   c                     t          j        d|           }|r8t          |                    d                    |                    d          z   } |                     dd          } | S )Nz(\w+)(: expected .*)r      zPass { acceptDownloads: true }zPass 'accept_downloads=True')r   r   to_snake_casegroupr   )rE   r   s     rP   r   r   l  sc    H,g66E AA//%++a..@oo(*H G NrO   argsc                     i }| D ]L}|dk    r	| |         ;t          | |         t                    s| |         nt          | |                   ||<   M|S )Nr   )rc   r	   locals_to_params)r  copykeys      rP   r  r  v  sl    D  &==9  "$s)T221S		%d3i00 I
 KrO   c                  R    t          j        t          j                    dz            S )Ni  )mathfloortime	monotonicrN   rO   rP   monotonic_timer    s    :dn&&-...rO   c                   ,    e Zd ZU ded<   ded<   ddZdS )	RouteHandlerInvocationasyncio.Futurecompleter$   routerX   Nc                 "    || _         || _        d S r   )r  r  )r   r  r  s      rP   r   zRouteHandlerInvocation.__init__  s     


rO   )r  r  r  r$   rX   N)rI   rJ   rK   rM   r   rN   rO   rP   r  r    s?         NNN     rO   r  c                       e Zd Z	 ddee         dedededee         f
dZ	ded	efd
Z
ddd	efdZddd	efdZded         d	dfdZed	efd            Zeded          d	eeeef                  fd            ZdS )RouteHandlerNr}   r{   handleris_synctimesc                     || _         || _        || _        |r|nt          j        | _        d| _        || _        d| _        t                      | _
        d S )Nr   F)	_base_urlr{   r  r  inf_times_handled_count_is_sync_ignore_exceptionset_active_invocations)r   r}   r{   r  r  r  s         rP   r   zRouteHandler.__init__  sT     "$2ee$(!&@C   rO   request_urlrX   c                 8    t          | j        || j                  S r   )r   r  r{   )r   r$  s     rP   matcheszRouteHandler.matches  s    4>;AAArO   r  r$   c           	        K   t          t          j                                                    |          }| j                            |           	 |                     |           d {V 	 |j                            d            | j        	                    |           S # t          $ r}| j        r:Y d }~|j                            d            | j        	                    |           dS t          |          r/| j        sdnd}t          |dt          |           d| d          |d }~ww xY w# |j                            d            | j        	                    |           w xY w)NFzawait r   "z3" while running route callback.
Consider awaiting `zkpage.unroute_all(behavior='ignoreErrors')`
before the end of the test to ignore remaining routes in flight.)r  asyncioget_running_loopcreate_futurer#  add_handle_internalr  
set_resultremover   r!  r   r   r   rL   )r   r  handler_invocationeoptional_async_prefixs        rP   handlezRouteHandler.handle  s     3$&&4466
 
 	 $$%7888	@..u555555555 '224888$++,>????  	 	 	% uuu '224888$++,>????? &a((  9=(M2%# ZQ  Z  ZVk  Z  Z  Z   G	 '224888$++,>????s1   B! !
D1+D,2D4 ,A D,,D11D4 46E*c                 z   K                                    } xj        dz  c_         j        rMj                                        d fd}t          |          }|                                  d {V  n7                     j                  }|rt          j
        |           d {V  | d {V S )Nr   rX   c                      	                      j                                       d            d S # t          $ r }                     |            Y d } ~ d S d } ~ ww xY wr   )r  rx   r.  r   set_exception)r1  handler_finished_futurer  r   s    rP   _handlerz/RouteHandler._handle_internal.<locals>._handler  s}    =LL666+66t<<<<<  = = =+99!<<<<<<<<<=s   05 
AAArX   N)_start_handlingr  r   _loopr+  r   switchr  rx   r)  ensure_future)r   r  handled_futurer8  gcoro_or_futurer7  s   ``    @rP   r-  zRouteHandler._handle_internal  s     ..00q = 	<&+k&?&?&A&A#= = = = = = = = h''AHHJJJ)))))))))!\\%??N <+N;;;;;;;;;########rO   behavior)ignoreErrorswaitc                    K   |dk    r	d| _         d S g }| j        D ](}|j        j        s|                    |j                   )t          j        |  d {V  d S )NrB  T)r!  r#  r  
_did_throwr   r  r)  gather)r   rA  tasks
activations       rP   stopzRouteHandler.stop  s      
 ~%%%)D"""E"6 6 6
!'2 6LL!4555.%((((((((((rO   c                 (    | j         dz   | j        k    S )Nr   )r  r  r   s    rP   will_expirezRouteHandler.will_expire  s    "Q&$+55rO   handlersc                 @   g }d}| D ]}t          |j        t                    r|                    d|j        i           9t          |j        t          j                  r5|                    |j        j        t          |j                  d           d}|rddigS |S )NFr   )regexSource
regexFlagsTz**/*)rc   r{   rL   r   r   r   rd   r    )rL  patternsallr  s       rP   prepare_interception_patternsz*RouteHandler.prepare_interception_patterns  s      	 	G'+s++ 
 56666GK44 '.{':&8&E&E      	&V$%%rO   r   )rI   rJ   rK   r   rL   URLMatchRouteHandlerCallbackr   ru   r   r&  r3  r-  r   rI  propertyrK  r   r
   r	   rR  rN   rO   rP   r  r    sw         $F F3-F F &	F
 F }F F F F"B3 B4 B B B B@' @d @ @ @ @0$G $ $ $ $ $4)7+A#B )t ) ) ) ) 6T 6 6 6 X6 ~&	d38n	   \  rO   r  z(((?<=[a-z0-9])[A-Z]|(?!^)[A-Z](?=[a-z]))rF   c                 \    t                               d|                                           S )Nz_\1)to_snake_case_regexr   r   )rF   s    rP   r  r    s$    ""640066888rO   rT   c                     t           j                            |           st          j                    | z  } t          j        t           j                            |           d           d S )NT)exist_ok)osrT   isabsr   cwdmakedirsdirnamer   s    rP   make_dirs_for_filer_    sQ    7== !xzzD K%%555555rO   r   datac                 z    K   d fd}t          j                    }|                    d |           d {V  d S )NrX   c                      t          t          t                    rdnd          5 } |                                d d d            d S # 1 swxY w Y   d S )Nwwb)openrc   rL   write)fhr`  r   s    rP   innerzasync_writefile.<locals>.inner  s    $z$44>$?? 	2HHTNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAr9  )r)  r*  run_in_executor)r   r`  rh  loops   ``  rP   async_writefilerk    si             #%%D


tU
+
++++++++++rO   c                     K   dt           f fd}t          j                    }|                    d |           d {V S )NrX   c                      t          d          5 } |                                 cd d d            S # 1 swxY w Y   d S )Nrb)re  read)rg  r   s    rP   rh  zasync_readfile.<locals>.inner  s    $ 	7799	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   377)bytesr)  r*  ri  )r   rh  rj  s   `  rP   async_readfilerq    sd      5       #%%D%%dE222222222rO   Tobjc                 Z    t          | d          rt          t          |           j        S | S )N	_impl_obj)hasattrr   r   ru  )rs  s    rP   to_implrw  #  s*    sK   (C~~''JrO   c           	          | sd S g }|                                  D ]6\  }}|                    t          |t          |                               7|S )N)rF   rH   )r   r   r   rL   )rs  rs   r	  rH   s       rP   object_to_arrayry  )  s\     tFiikk = =
UiSE

;;;<<<<MrO   rH   c                 D    t          | t                    od| v od| v od| v S )NrF   mimeTypebuffer)rc   dictrH   s    rP   is_file_payloadr  2  s<    5$ 	eO	%	 	rO   z^(text\/.*?|application\/(json|(x-)?javascript|xml.*?|ecmascript|graphql|x-www-form-urlencoded)|image\/svg(\+xml)?|application\/.*?(\+json|\+xml))(;\s*charset=.*)?$	mime_typec                 P    t          t                              |                     S r   )r   TEXTUAL_MIME_TYPEr   )r  s    rP   is_textual_mime_typer  @  s    !''	22333rO   c                 r    | d S t          | t          j                  r| t          j        d          z  S | S )Nr   )milliseconds)rc   datetime	timedeltar~  s    rP   to_millisecondsr  D  sA     }t%+,, :x)q99999LrO   r   )rr)  r  r  rZ  r   r  r   pathlibr   typesr   typingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   urllib.parser   r   r   r    playwright._impl._api_structuresr   playwright._impl._errorsr   r   r   r   r   playwright._impl._globr   playwright._impl._greenletsr   playwright._impl._str_utilsr    r!   playwright._impl._networkr"   r#   r$   r%   rL   r   rS  URLMatchRequestURLMatchResponserT  WebSocketRouteHandlerCallbackColorSchemeForcedColorsContrastReducedMotionDocumentLoadStateKeyboardModifierMouseButtonServiceWorkersPolicyHarModerV   RouteFromHarNotFoundPolicyrD   rS   ri   rk   rp   rw   rz   r   Envr   r   r   r   r   r   r   r   r   PLAYWRIGHT_MAX_DEADLINEr   r   r   r   r   r  ru   r  r  r  r   rW  r  r_  rp  rk  rq  rr  rw  ry  r  r  r  r  r  rN   rO   rP   <module>r     sR	      				 				                                                  " D C C C C C C C C C C C 6 6 6 6 6 6              9 8 8 8 8 8 5 5 5 5 5 5 : : : : : : S======RRRRRRRRRRRRgclHcUD[$99:xU443H-I IJJ xeD)D/4I.J JKK  gY^h';S'@AA  !)*:);S)@ A >?/0239:OP MN /0/0 
#
$45 $%89     9E    ( ( ( ( (9E ( ( ( (
t S#X    :    )       9E        y       )    3c5$&''( 	 sm H 	
 
   $ ?C' 'sm'#&'7;'' ' ' 'HSM hsm    : :c :c : : : :zsm(+
3   (3 ;        iu     .3 *4: 1$ /: /: /: /: /: /: /: /:d	 x'> <     | (3- 5         4 D    / / / / /       m m m m m m m m` !bj!KLL 9 9 9 9 9 96U49- 6$ 6 6 6 6,c4i 0 ,c5j8I ,d , , , ,3uS$Y/ 3E 3 3 3 3 GCLL q    $ HT)_,E    8C= T     BJ l  
4C 4D 4 4 4 4*D01e_     rO   