
    /jJ                        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j                  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j                  d_      Znd`e4d#e5fdaZod]eeMej                  df   d#eeM   fdbZqy)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                   <    e Zd ZU eed<   eed<   eed<   ee   ed<   y)ErrorPayloadmessagenamestackvalueN)__name__
__module____qualname__str__annotations__r   r        V/var/www/html/maxservice/venv/lib/python3.12/site-packages/playwright/_impl/_helper.pyrD   rD   S   s    L
IJC=rO   rD   F)totalc                   (    e Zd ZU eed<   ee   ed<   y)HarRecordingMetadatapathcontentN)rI   rJ   rK   rL   rM   r   HarContentPolicyrN   rO   rP   rS   rS   Z   s    
I&''rO   rS   paramsreturnc                 :   dt        | d         i}d| v rJ| 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
= |xs |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!GJv%)*c3$'Jy!c7#+.;;J'(*<S*AJ''(& #O4
6?#OOV# !34%&' !78)*FO&G '
9rO   c                   ,    e Zd ZU eed<   eed<   eed<   y)ParsedMessageParamstypeguidinitializerN)rI   rJ   rK   rL   rM   r	   rN   rO   rP   rk   rk   |   s    
I
IrO   rk   c                   J    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   y)ParsedMessagePayloadidrm   methodrW   resulterrorN)	rI   rJ   rK   intrM   rL   rk   r   rD   rN   rO   rP   rp   rp      s"    G
IKKrO   rp   c                       e Zd ZU ee   ed<   y)DocumentrequestN)rI   rJ   rK   r   r   rM   rN   rO   rP   rw   rw      s    c]rO   rw   c                   B    e Zd ZU eed<   eed<   ee   ed<   ee   ed<   y)FrameNavigatedEventurlrF   newDocumentrt   N)rI   rJ   rK   rL   rM   r   rw   rN   rO   rP   rz   rz      s!    	H
I(##C=rO   rz   base_url
url_stringmatchwebsocket_urlc                     |syt        |t              r t        j                  t	        | ||            }t        |t
              rt        |j                  |            S  ||      S )NT)rc   rL   recompileresolve_glob_to_regex_patternr   boolsearch)r}   r~   r   r   s       rP   url_matchesr      sY     %

)(E=I
 %!ELL,--rO   globc                 J    |rt        |       } t        | |      }t        |      S N)to_websocket_base_urlresolve_glob_baser   )r}   r   r   s      rP   r   r      s(     (2Xt,D &&rO   c                 d    | -t        j                  d|       rt        j                  dd|       } | S )Nz
^https?://z^httpws)r   r   sub)r}   s    rP   r   r      s,     A66(D(3OrO   c           	         |d   dk(  r|S i dt         dt         dt         ffd}|j                  dd      }|j                  d	      sD|j                  d
      s3|j                  d      s"|j                  d      s|j                  d      r|S g }t        |j	                  d            D ]  \  }}|dv r|j                  |       |dk(  rD|j                  d      r3d|v sd|v r|j                   ||d             n|j                  |       e|j                  d      }|dk(  r|j                   ||d| d              ||d | d| d      } |||d  d| d      }|j                  ||z           dj                  |      }	t        | |	      \  }
}j                         D ]2  \  }}|xr ||v }|
j                  ||r|j                         n|d      }
4 |
S )Nr   *originalreplacementrX   c                 0    t        |       dk(  ry| |<   |S )Nr    )len)r   r   	token_maps     rP   	map_tokenz$resolve_glob_base.<locals>.map_token   s"    x=A!)	+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3 <uO#""5) A:%..-e|se|&&y'@A  &&u-CR""9UbrN#CD"5.#9Rwb>JJ"5#9Sr?KJ"":
#:;)<, HH_-M&6x&O#H#$??, 
x)Le7L.L	##y8>>#h

 OrO   	given_urlc                     	 t        t        | | nd|            }t        |      }|j                  xs 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     4H"iH
 c? LLB 	 88q
^+M%(ZZLM?"C000 $s   A&A) )A98A9r{   c                     t        | d      }|j                  dv }|r!|j                  dk(  r|j                  d      }|S )NT)allow_fragments)httphttpsr   wssftpfiler   r   rT   )r   r   rT   _replace)r{   parsedis_special_urls      rP   r   r   
  sE    c40F ]]&SSN ;;"__#_.FMrO   c                   n    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<   y	)
HarLookupResult)rt   redirectfulfillnoentryactionrE   redirectURLstatusr!   headersbodyN)rI   rJ   rK   r   rM   r   rL   ru   rN   rO   rP   r   r     sA    =>>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y)TimeoutSettingsNtimeoutrX   c                     | | S t         S r   )1DEFAULT_PLAYWRIGHT_LAUNCH_TIMEOUT_IN_MILLISECONDS)r   s    rP   launch_timeoutzTimeoutSettings.launch_timeout(  s     " 	
 C	
rO   parentc                 .    || _         d | _        d | _        y r   )_parent_default_timeout_default_navigation_timeout)selfr   s     rP   __init__zTimeoutSettings.__init__0  s    15<@(rO   c                     || _         y r   r   r   r   s     rP   set_default_timeoutz#TimeoutSettings.set_default_timeout5  s
     'rO   c                     ||S | j                   | j                   S | j                  r| j                  j                         S t        S r   )r   r   r   *DEFAULT_PLAYWRIGHT_TIMEOUT_IN_MILLISECONDSr   s     rP   r   zTimeoutSettings.timeout8  sE    N  ,(((<<<<''))99rO   navigation_timeoutc                     || _         y 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                  j                         S t        S r   )r   r   r   r   r   r   s     rP   r   z"TimeoutSettings.navigation_timeoutL  s]    N++7333  ,(((<<<<224499rO   r   )rI   rJ   rK   staticmethodr   floatr   r   r   r   r   r   r   r   rN   rO   rP   r   r   &  s    
 
5 
 
Ax(9: At A
(8E? (t (:u : :>"*5/>	>
0HUO 0%% %	:% 	:5 	:rO   r   extbc           	      t    t        t        |       ddj                  t        j                  |                  S )Nr   r   )rE   rF   rG   )rD   rL   r   	traceback	format_tb)r   r   s     rP   serialize_errorr   X  s.    BgRWWY5H5H5L-M rO   rt   logc                     t         }| j                  d      dk(  rt        }| j                  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   ^  st    yyN*'yy//,
.uY/?@3F
GCfCIwCJJrO   rE   c                     t        j                  d|       }|r,t        |j                  d            |j                  d      z   } | j	                  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  sP    HH,g6EA/%++a.@oo(*HG NrO   argsc                     i }| D ]7  }|dk(  r	| |   t        | |   t              s| |   nt        | |         ||<   9 |S )Nr   )rc   r	   locals_to_params)r  copykeys      rP   r  r  v  s_    D &=9  "$s)T2 S	%d3i0 I	 KrO   c                  V    t        j                  t        j                         dz        S )Ni  )mathfloortime	monotonicrN   rO   rP   monotonic_timer    s    ::dnn&-..rO   c                   *    e Zd ZU ded<   ded<   ddZy)RouteHandlerInvocationasyncio.Futurecompleter$   routeNc                      || _         || _        y 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    N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y)RouteHandlerNr}   r{   handleris_synctimesc                     || _         || _        || _        |r|nt        j                  | _        d| _        || _        d| _        t               | _
        y )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__  sI     "$e$((!&@C rO   request_urlrX   c                 D    t        | j                  || j                        S r   )r   r  r{   )r   r$  s     rP   matcheszRouteHandler.matches  s    4>>;AArO   r  r$   c           	        K   t        t        j                         j                         |      }| j                  j                  |       	 | j                  |       d {   |j                  j                  d        | j                  j                  |       S 7 :# t        $ r}| j                  r;Y d }~|j                  j                  d        | j                  j                  |       yt        |      r,| j                  sdnd}t        |dt        |       d| d      |d }~ww xY w# |j                  j                  d        | j                  j                  |       w xY w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  sJ    3$$&446
 	  $$%78	@..u55 ''2248$$++,>?! 6 	%% ''2248$$++,>? &a( 9=2%#Q UVkUl  mY  Z  G	 ''2248$$++,>?sZ   AE(B B B #7E(B 	D*%D%1D- 57E(,9D%%D**D- -8E%%E(c                    K   j                         } xj                  dz  c_         j                  rHj                  j	                         d fd}t        |      }|j                           d {    n; j                  j                        }|rt        j                  |       d {    | d {   S 7 J7 7 w)Nr   c                      	 j                  j                         j                  d        y # t        $ r} j	                  |        Y d } ~ y 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  sI    =LL6+66t<  =+99!<<=s   -1 	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q ==&+kk&?&?&A#= h'AHHJ)))!\\%?N++N;;;### *
 <#s6   A4C
9C:;C
5C6	C
?C C
C
C
behavior)ignoreErrorswaitc                    K   |dk(  rd| _         y g }| j                  D ]4  }|j                  j                  r|j	                  |j
                         6 t        j                  |  d {    y 7 w)NrB  T)r!  r#  r  
_did_throwr   r  r)  gather)r   rA  tasks
activations       rP   stopzRouteHandler.stop  sg     
 ~%%)D"E"66 6
!''22LL!4!456 ..%(((s   5A22A2*A0+A2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|j                  d|j                  i       ;t        |j                  t        j
                        r<|j                  |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GKK4'.{{':':&8&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    s      $F3-F F &	F
 F }F"B3 B4 B@' @d @0$G $ $4)7+A#B )t ) 6T 6 6 ~&	d38n	 rO   r  z(((?<=[a-z0-9])[A-Z]|(?!^)[A-Z](?=[a-z]))rF   c                 J    t         j                  d|       j                         S )Nz_\1)to_snake_case_regexr   r   )rF   s    rP   r  r    s    ""6406688rO   rT   c                     t         j                  j                  |       st        j                         | z  } t        j
                  t         j                  j                  |       d       y )NT)exist_ok)osrT   isabsr   cwdmakedirsdirnamer   s    rP   make_dirs_for_filer_    s=    77==xxzD KK%5rO   r   datac                 ~    K   d fd}t        j                         }|j                  d |       d {    y 7 w)Nc                      t        t        t              rdnd      5 } | j                         d d d        y # 1 sw Y   y xY w)Nwwb)openrc   rL   write)fhr`  r   s    rP   innerzasync_writefile.<locals>.inner  s:    $z$4$? 	2HHTN	 	 	s	   ;Ar9  )r)  r*  run_in_executor)r   r`  rh  loops   ``  rP   async_writefilerk    s2      ##%D


tU
+++s   1=;=c                     K   dt         f fd}t        j                         }|j                  d |       d {   S 7 w)NrX   c                  h    t        d      5 } | j                         cd d d        S # 1 sw Y   y xY w)Nrb)re  read)rg  r   s    rP   rh  zasync_readfile.<locals>.inner  s-    $ 	779	 	 	s   (1)bytesr)  r*  ri  )r   rh  rj  s   `  rP   async_readfilerq    s<     5  ##%D%%dE2222s   6A >A Tobjc                 R    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y g }| j                         D ]*  \  }}|j                  t        |t        |                   , |S )N)rF   rH   )r   r   r   rL   )rs  rs   r	  rH   s       rP   object_to_arrayry  )  sB    Fiik =
UiSE
;<=MrO   rH   c                 F    t        | t              xr d| v xr
 d| v xr d| v S )NrF   mimeTypebuffer)rc   dictrH   s    rP   is_file_payloadr  2  s9    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                 >    t        t        j                  |             S r   )r   TEXTUAL_MIME_TYPEr   )r  s    rP   is_textual_mime_typer  @  s    !''	233rO   c                 r    | y t        | t        j                        r| t        j                  d      z  S | S )Nr   )milliseconds)rc   datetime	timedeltar~  s    rP   to_millisecondsr  D  s7     }%++,x))q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     s      	 	        " D C 6  9 5 :=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` !bjj!KL 9 9 96U49- 6$ 6,c4i 0 ,c5j8I ,d ,3uS$Y/ 3E 3 CL q $ HT)_,E 8C= T  BJJ l 
4C 4D 4**D01e_rO   