
    tiI                        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 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-m.Z.m/Z/m0Z0m1Z1 ee2ee2   ee2ge3f   f   Z4ee2ee2   edge3f   f   Z5ee2ee2   edge3f   f   Z6eedgef   eddgef   f   Z7edgef   Z8ed   Z9ed   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   ZC G d ded      ZD G d  d!ed      ZEd"ed#ee2ef   fd$ZF G d% d&e      ZG G d' d(ed      ZH G d) d*e      ZI G d+ d,e      ZJee2ee2eKe3f   f   ZL	 dbd-ee2   d.e2d/ee4   d0e3d#e3f
d1ZM	 dbd-ee2   d2e2d0e3d#e2fd3ZNd-ee2   d#ee2   fd4ZOd-ee2   d/e2d#e2fd5ZPd-ee2   d6e2d#ee2ee2   f   fd7ZQd8e2d#efd9ZR G d: d;ed      ZSd<ZTd=ZUd>ZV G d? d@      ZWdAeXdBee	   d#eDfdCZYdbdDeDdEee2   d#e!fdFZZdGe2d#e2fdHZ[dIed#efdJZ\d#e]fdKZ^ G dL dM      Z_ G dN dO      Z` ej                  dP      ZbdQe2d#e2fdRZcdSeee2f   d#dfdTZddUee2ef   dVee2eef   d#dfdWZfdUee2ef   d#eefdXZg edY      ZhdZehd#ehfd[ZidZee   d#eee      fd\Zjd]ee   d#e3fd^Zk ej                  d_      Zld`e2d#e3fdaZmy)c    N)Path)TracebackType)TYPE_CHECKINGAny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        K/var/www/html/venv/lib/python3.12/site-packages/playwright/_impl/_helper.pyrC   rC   M   s    L
IJC=rN   rC   F)totalc                   (    e Zd ZU eed<   ee   ed<   y)HarRecordingMetadatapathcontentN)rH   rI   rJ   rK   rL   r   HarContentPolicyrM   rN   rO   rR   rR   T   s    
I&''rN   rR   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 )NrS   recordHarPathrecordHarUrlFilterurlGloburlRegexSourceurlRegexFlagsrecordHarModemoderecordHarContentrecordHarOmitContentr?   rT   )rK   
isinstancer   patternr   )rV   
out_paramsoptnew_content_apiold_content_apirT   s         rO   prepare_record_har_optionsrh   Y   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rN   c                   ,    e Zd ZU eed<   eed<   eed<   y)ParsedMessageParamstypeguidinitializerN)rH   rI   rJ   rK   rL   r   rM   rN   rO   rj   rj   v   s    
I
IrN   rj   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idrl   methodrV   resulterrorN)	rH   rI   rJ   intrL   rK   rj   r   rC   rM   rN   rO   ro   ro   |   s"    G
IKKrN   ro   c                       e Zd ZU ee   ed<   y)DocumentrequestN)rH   rI   rJ   r   r   rL   rM   rN   rO   rv   rv      s    c]rN   rv   c                   B    e Zd ZU eed<   eed<   ee   ed<   ee   ed<   y)FrameNavigatedEventurlrE   newDocumentrs   N)rH   rI   rJ   rK   rL   r   rv   rM   rN   rO   ry   ry      s!    	H
I(##C=rN   ry   base_url
url_stringmatchwebsocket_urlc                     |syt        |t              r t        j                  t	        | ||            }t        |t
              rt        |j                  |            S  ||      S )NT)rb   rK   recompileresolve_glob_to_regex_patternr   boolsearch)r|   r}   r~   r   s       rO   url_matchesr      sY     %

)(E=I
 %!ELL,--rN   globc                 J    |rt        |       } t        | |      }t        |      S N)to_websocket_base_urlresolve_glob_baser   )r|   r   r   s      rO   r   r      s(     (2Xt,D &&rN   c                 d    | -t        j                  d|       rt        j                  dd|       } | S )Nz
^https?://z^httpws)r   r~   sub)r|   s    rO   r   r      s,     A66(D(3OrN   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replacementrW   c                 0    t        |       dk(  ry| |<   |S )Nr    )len)r   r   	token_maps     rO   	map_tokenz$resolve_glob_base.<locals>.map_token   s"    x=A!)	+rN   z\\??zabout:zdata:zchrome:zedge:zfile:/).z..r   :{zhttp:z$_z_$z?$_   )rK   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                 @rO   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

 OrN   	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   rz   r   hostname_portcase_insensitive_prefixs         rO   r   r      s     4H"iH
 c? LLB 	 88q
^+M%(ZZLM?"C000 $s   A&A) )A98A9rz   c                     t        | d      }|j                  dv }|r!|j                  dk(  r|j                  d      }|S )NT)allow_fragments)httphttpsr   wssftpfiler   r   rS   )r   r   rS   _replace)rz   parsedis_special_urls      rO   r   r     sE    c40F ]]&SSN ;;"__#_.FMrN   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)rs   redirectfulfillnoentryactionrD   redirectURLstatusr    headersbodyN)rH   rI   rJ   r
   rL   r   rK   rt   rM   rN   rO   r   r     sA    =>>c]#SMn%%
3-rN   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timeoutrW   c                     | | S t         S r   )1DEFAULT_PLAYWRIGHT_LAUNCH_TIMEOUT_IN_MILLISECONDS)r   s    rO   launch_timeoutzTimeoutSettings.launch_timeout"  s     " 	
 C	
rN   parentc                 .    || _         d | _        d | _        y r   )_parent_default_timeout_default_navigation_timeout)selfr   s     rO   __init__zTimeoutSettings.__init__*  s    15<@(rN   c                     || _         y r   r   r   r   s     rO   set_default_timeoutz#TimeoutSettings.set_default_timeout/  s
     'rN   c                     ||S | j                   | j                   S | j                  r| j                  j                         S t        S r   )r   r   r   *DEFAULT_PLAYWRIGHT_TIMEOUT_IN_MILLISECONDSr   s     rO   r   zTimeoutSettings.timeout2  sE    N  ,(((<<<<''))99rN   navigation_timeoutc                     || _         y r   r   )r   r   s     rO   set_default_navigation_timeoutz.TimeoutSettings.set_default_navigation_timeout;  s     ,>(rN   c                     | j                   S r   r   r   s    rO   default_navigation_timeoutz*TimeoutSettings.default_navigation_timeout@  s    ///rN   c                     | j                   S r   r   r   s    rO   default_timeoutzTimeoutSettings.default_timeoutC  s    $$$rN   c                     ||S | j                   | j                   S | j                  | j                  S | j                  r| j                  j                         S t        S r   )r   r   r   r   r   r   s     rO   r   z"TimeoutSettings.navigation_timeoutF  s]    N++7333  ,(((<<<<224499rN   r   )rH   rI   rJ   staticmethodr   floatr   r   r   r   r   r   r   r   rM   rN   rO   r   r      s    
 
5 
 
Ax(9: At A
(8E? (t (:u : :>"*5/>	>
0HUO 0%% %	:% 	:5 	:rN   r   extbc           	      t    t        t        |       ddj                  t        j                  |                  S )Nr   r   )rD   rE   rF   )rC   rK   r   	traceback	format_tb)r   r   s     rO   serialize_errorr   R  s.    BgRWWY5H5H5L-M rN   rs   logc                     t         }| j                  d      dk(  rt        }| j                  d      dk(  rt        }|sd} |t	        | d         |z         }| d   |_        | d   |_        |S )NrE   r   r   r   rD   rF   )r   getr   r   patch_error_message_name_stack)rs   r   base_error_classexcs       rO   parse_errorr   X  st    yyN*'yy//,
.uY/?@3F
GCfCIwCJJrN   rD   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   )rD   r~   s     rO   r   r   f  sP    HH,g6EA/%++a.@oo(*HG NrN   argsc                     i }| D ]7  }|dk(  r	| |   t        | |   t              s| |   nt        | |         ||<   9 |S )Nr   )rb   r   locals_to_params)r  copykeys      rO   r  r  p  s_    D &=9  "$s)T2 S	%d3i0 I	 KrN   c                  V    t        j                  t        j                         dz        S )Ni  )mathfloortime	monotonicrM   rN   rO   monotonic_timer  ~  s    ::dnn&-..rN   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      rO   r   zRouteHandlerInvocation.__init__  s     
rN   )r  r  r  r#   rW   N)rH   rI   rJ   rL   r   rM   rN   rO   r  r    s    NrN   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|   rz   handleris_synctimesc                     || _         || _        || _        |r|nt        j                  | _        d| _        || _        d| _        t               | _
        y )Nr   F)	_base_urlrz   r  r
  inf_times_handled_count_is_sync_ignore_exceptionset_active_invocations)r   r|   rz   r  r  r  s         rO   r   zRouteHandler.__init__  sI     "$e$((!&@C rN   request_urlrW   c                 D    t        | j                  || j                        S r   )r   r  rz   )r   r#  s     rO   matcheszRouteHandler.matches  s    4>>;AArN   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   rK   )r   r  handler_invocationeoptional_async_prefixs        rO   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  rw   r-  r   set_exception)r0  handler_finished_futurer  r   s    rO   _handlerz/RouteHandler._handle_internal.<locals>._handler  sI    =LL6+66t<  =+99!<<=s   -1 	AAArW   N)_start_handlingr  r  _loopr*  r   switchr  rw   r(  ensure_future)r   r  handled_futurer7  gcoro_or_futurer6  s   ``    @rO   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)NrA  T)r   r"  r  
_did_throwr   r  r(  gather)r   r@  tasks
activations       rO   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    rO   will_expirezRouteHandler.will_expire  s    ""Q&$++55rN   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**/*)rb   rz   rK   r   r   r   rc   r   )rK  patternsallr  s       rO   prepare_interception_patternsz*RouteHandler.prepare_interception_patterns  s      	G'++s+ 56GKK4'.{{':':&8&E 	 V$%%rN   r   )rH   rI   rJ   r   rK   URLMatchRouteHandlerCallbackr   rt   r   r%  r2  r,  r
   rH  propertyrJ  r   r	   r   rQ  rM   rN   rO   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	 rN   r  z(((?<=[a-z0-9])[A-Z]|(?!^)[A-Z](?=[a-z]))rE   c                 J    t         j                  d|       j                         S )Nz_\1)to_snake_case_regexr   r   )rE   s    rO   r  r    s    ""6406688rN   rS   c                     t         j                  j                  |       st        j                         | z  } t        j
                  t         j                  j                  |       d       y )NT)exist_ok)osrS   isabsr   cwdmakedirsdirnamer   s    rO   make_dirs_for_filer^    s=    77==xxzD KK%5rN   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)openrb   rK   write)fhr_  r   s    rO   innerzasync_writefile.<locals>.inner	  s:    $z$4$? 	2HHTN	 	 	s	   ;Ar8  )r(  r)  run_in_executor)r   r_  rg  loops   ``  rO   async_writefilerj    s2      ##%D


tU
+++s   1=;=c                     K   dt         f fd}t        j                         }|j                  d |       d {   S 7 w)NrW   c                  h    t        d      5 } | j                         cd d d        S # 1 sw Y   y xY w)Nrb)rd  read)rf  r   s    rO   rg  zasync_readfile.<locals>.inner  s-    $ 	779	 	 	s   (1)bytesr(  r)  rh  )r   rg  ri  s   `  rO   async_readfilerp    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   rt  )rr  s    rO   to_implrv    s#    sK C~'''JrN   c           	          | sy g }| j                         D ]*  \  }}|j                  t        |t        |                   , |S )N)rE   rG   )r   r   r   rK   )rr  rr   r  rG   s       rO   object_to_arrayrx  #  sB    Fiik =
UiSE
;<=MrN   rG   c                 F    t        | t              xr d| v xr
 d| v xr d| v S )NrE   mimeTypebuffer)rb   dict)rG   s    rO   is_file_payloadr}  ,  s9    5$ 	eO	%	 	rN   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    rO   is_textual_mime_typer  :  s    !''	233rN   r   )nr(  r
  rY  r   r  r   pathlibr   typesr   typingr   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$   rK   r   rR  URLMatchRequestURLMatchResponserS  WebSocketRouteHandlerCallbackColorSchemeForcedColorsContrastReducedMotionDocumentLoadStateKeyboardModifierMouseButtonServiceWorkersPolicyHarModerU   RouteFromHarNotFoundPolicyrC   rR   rh   rj   ro   rv   ry   r   Envr   r   r   r   r   r   r   r   r   PLAYWRIGHT_MAX_DEADLINEr   r   r   r   r   r  rt   r  r  r  r   rV  r  r^  ro  rj  rp  rq  rv  rx  r}  r  r  rM   rN   rO   <module>r     s     	 	         D C 6  9 5 :=RRgclHcUD[$99:WS\8YK4E+FFGgclHj\45G,HHI 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 4rN   