
    ]jH)                       d dl mZ d dlmZmZ d dlmZ d dlmZ e G d d             Z	e G d d             Z
e G d	 d
             Ze G d d             Ze G d d             Ze G d d             Ze G d d             Z G d d      Z G d d      Ze G d d             Ze G d d             Ze G d d             Z G d d      Ze G d d              Z G d! d"      Zy#)$    )annotations)	dataclassfield)Any)command_builderc                  .    e Zd ZU dZdZded<   dZded<   y)PartitionKeyzPartitionKey.N
str | Noneuser_contextsource_origin)__name__
__module____qualname____doc__r   __annotations__r        Z/home/ubuntu/.local/lib/python3.12/site-packages/selenium/webdriver/common/bidi/storage.pyr	   r	      s    #L*# $M:$r   r	   c                  .    e Zd ZU dZdZded<   dZded<   y)GetCookiesParameterszGetCookiesParameters.N
Any | Nonefilter	partitionr   r   r   r   r   r   r   r   r   r   r   r      s    FJ Iz r   r   c                  <    e Zd ZU dZ ee      Zded<   dZded<   y)GetCookiesResultzGetCookiesResult.)default_factoryz	list[Any]cookiesNr   partition_key)	r   r   r   r   r   listr   r   r   r   r   r   r   r      s    t4GY4 $M:$r   r   c                  .    e Zd ZU dZdZded<   dZded<   y)SetCookieParameterszSetCookieParameters.Nr   cookier   )r   r   r   r   r#   r   r   r   r   r   r"   r"   &   s    FJ Iz r   r"   c                       e Zd ZU dZdZded<   y)SetCookieResultzSetCookieResult.Nr   r   r   r   r   r   r   r   r   r   r   r%   r%   .   s     $M:$r   r%   c                  .    e Zd ZU dZdZded<   dZded<   y)DeleteCookiesParameterszDeleteCookiesParameters.Nr   r   r   r   r   r   r   r(   r(   5   s    "FJ Iz r   r(   c                       e Zd ZU dZdZded<   y)DeleteCookiesResultzDeleteCookiesResult.Nr   r   r&   r   r   r   r*   r*   =   s     $M:$r   r*   c                  0    e Zd ZdZdZdZddZd	dZd	dZy)

BytesValuezA string or base64-encoded bytes value used in cookie operations.

    This corresponds to network.BytesValue in the WebDriver BiDi specification,
    wrapping either a plain string or a base64-encoded binary value.
    stringbase64c                     || _         || _        y Ntypevalue)selfr2   r3   s      r   __init__zBytesValue.__init__N   s    	
r   c                4    | j                   | j                  dS )Nr1   r1   r4   s    r   to_bidi_dictzBytesValue.to_bidi_dictR   s    		DJJ77r   c                "    | j                         S z-Backward-compatible alias for to_bidi_dict().r8   r7   s    r   to_dictzBytesValue.to_dictU         ""r   N)r2   r   r3   r   returnNoner>   dict)	r   r   r   r   TYPE_STRINGTYPE_BASE64r5   r8   r<   r   r   r   r,   r,   D   s"     KK8#r   r,   c                       e Zd ZdZdZdZdZdZy)SameSitez!SameSite cookie attribute values.strictlaxnonedefaultN)r   r   r   r   STRICTLAXNONEDEFAULTr   r   r   rE   rE   Y   s    +F
CDGr   rE   c                      e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
d
ed<   dZd
ed<   dZded<   dZded<   edd       Zy)StorageCookiez/A cookie object returned by storage.getCookies.Nr
   namer   r3   domainpathsizebool | None	http_onlysecure	same_siteexpiryc                   |j                  d      }t        |t              r+t        |j                  d      |j                  d            }n|} | |j                  d      ||j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d	      |j                  d
      	      S )z8Deserialize a wire-level cookie dict to a StorageCookie.r3   r2   rP   rQ   rR   rS   httpOnlyrV   sameSiterX   )	rP   r3   rQ   rR   rS   rU   rV   rW   rX   )get
isinstancerA   r,   )clsraw	value_rawr3   s       r   from_bidi_dictzStorageCookie.from_bidi_dicto   s     GGG$	i&#IMM&$99==;QREE778$ggj)778$ggj)778$

 
	
r   )r_   rA   r>   rO   )r   r   r   r   rP   r   r3   rQ   rR   rS   rU   rV   rW   rX   classmethodra   r   r   r   rO   rO   a   sq    9D*E:FJD*D*!I{!FK Iz FJ
 
r   rO   c                      e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
d
ed<   dZd
ed<   dZded<   dZded<   ddZddZy)CookieFilterzCookieFilter.Nr
   rP   r   r3   rQ   rR   rS   rT   rU   rV   rW   rX   c                P   i }| j                   | j                   |d<   | j                  ?t        | j                  d      r| j                  j                         n| j                  |d<   | j                  | j                  |d<   | j
                  | j
                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d	<   | j                  | j                  |d
<   |S ))Serialize to the BiDi wire-protocol dict.rP   r8   r3   rQ   rR   rS   rZ   rV   r[   rX   )rP   r3   hasattrr8   rQ   rR   rS   rU   rV   rW   rX   r4   results     r   r8   zCookieFilter.to_bidi_dict   s    99 !YYF6N::!;B4::~;^djj557dhdndnF7O;;"#{{F899 !YYF6N99 !YYF6N>>%!%F:;;"#{{F8>>%!%F:;;"#{{F8r   c                "    | j                         S r:   r;   r7   s    r   r<   zCookieFilter.to_dict   r=   r   r@   )r   r   r   r   rP   r   r3   rQ   rR   rS   rU   rV   rW   rX   r8   r<   r   r   r   rd   rd      si    D*E:FJD*D*!I{!FK Iz FJ.#r   rd   c                      e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	d	ed
<   dZ
d	ed<   dZded<   dZded<   ddZddZy)PartialCookiezPartialCookie.Nr
   rP   r   r3   rQ   rR   rT   rU   rV   rW   rX   c                   i }| j                   | j                   |d<   | j                  ?t        | j                  d      r| j                  j                         n| j                  |d<   | j                  | j                  |d<   | j
                  | j
                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d	<   |S )
rf   rP   r8   r3   rQ   rR   rZ   rV   r[   rX   )
rP   r3   rg   r8   rQ   rR   rU   rV   rW   rX   rh   s     r   r8   zPartialCookie.to_bidi_dict   s    99 !YYF6N::!;B4::~;^djj557dhdndnF7O;;"#{{F899 !YYF6N>>%!%F:;;"#{{F8>>%!%F:;;"#{{F8r   c                "    | j                         S r:   r;   r7   s    r   r<   zPartialCookie.to_dict   r=   r   r@   )r   r   r   r   rP   r   r3   rQ   rR   rU   rV   rW   rX   r8   r<   r   r   r   rl   rl      s_    D*E:FJD*!I{!FK Iz FJ*#r   rl   c                  *    e Zd ZdZdddZddZddZy)	"BrowsingContextPartitionDescriptora
  BrowsingContextPartitionDescriptor.

    The first positional argument is *context* (a browsing-context ID / window
    handle), mirroring how the class is used throughout the test suite:
    ``BrowsingContextPartitionDescriptor(driver.current_window_handle)``.
    Nc                     || _         || _        y r0   )contextr2   )r4   rr   r2   s      r   r5   z+BrowsingContextPartitionDescriptor.__init__   s    	r   c                     d| j                   dS )Nrr   )r2   rr   )rr   r7   s    r   r8   z/BrowsingContextPartitionDescriptor.to_bidi_dict   s    !dll;;r   c                "    | j                         S r:   r;   r7   s    r   r<   z*BrowsingContextPartitionDescriptor.to_dict   r=   r   )Nrr   )rr   r   r2   strr>   r?   r@   )r   r   r   r   r5   r8   r<   r   r   r   rp   rp      s    <#r   rp   c                  L    e Zd ZU dZdZded<   dZded<   dZded<   dd	Zdd
Z	y)StorageKeyPartitionDescriptorzStorageKeyPartitionDescriptor.
storageKeyr   r2   Nr
   r   r   c                z    ddi}| j                   | j                   |d<   | j                  | j                  |d<   |S )rf   r2   rx   userContextsourceOriginr   r   rh   s     r   r8   z*StorageKeyPartitionDescriptor.to_bidi_dict   sI    -($($5$5F=!)%)%7%7F>"r   c                "    | j                         S r:   r;   r7   s    r   r<   z%StorageKeyPartitionDescriptor.to_dict   r=   r   r@   )
r   r   r   r   r2   r   r   r   r8   r<   r   r   r   rw   rw      s-    (#D*##L*# $M:$#r   rw   c                  0    e Zd ZdZddZddZddZddZy)	StoragezWebDriver BiDi storage module.c                    || _         y r0   )_conn)r4   conns     r   r5   zStorage.__init__   s	    
r   Nc                   |rt        |d      r|j                         }|rt        |d      r|j                         }||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j                  |      }|rd|v r|j                  dg       D cg c]'  }t        |t              rt        j                  |      ) }	}|j                  d      }
t        |
t              r+t        |
j                  d      |
j                  d      	      nd}t        |	|
      S t        g d
      S c c}}w c c}w )z9Execute storage.getCookies and return a GetCookiesResult.r8   r   r   Nzstorage.getCookiesr   partitionKeyrz   r{   r|   )r   r   )rg   r8   itemsr   r   executer\   r]   rA   rO   ra   r	   r   )r4   r   r   paramskvcmdri   cr   pk_rawpks               r   get_cookieszStorage.get_cookies   sC   gfn5((*FN;!..0I"
 $*<<>C41aQ]!Q$CC2F;##C(i6)  Ir2a& ,,Q/G 
 ZZ/F fd+	 !'M!:"(**^"<
   $G2FF$??' Ds   
D? D?),Ec                   |rt        |d      r|j                         }|rt        |d      r|j                         }||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j                  |      }t        |t              rZ|j                  d      }t        |t              r+t        |j                  d      |j                  d            nd}	t        |		      S |S c c}}w )
zExecute storage.setCookie.r8   )r#   r   Nzstorage.setCookier   rz   r{   r|   r   )rg   r8   r   r   r   r   r]   rA   r\   r	   r%   )
r4   r#   r   r   r   r   r   ri   r   r   s
             r   
set_cookiezStorage.set_cookie  s    gfn5((*FN;!..0I"
 $*<<>C41aQ]!Q$CC16:##C(fd#ZZ/F fd+	 !'M!:"(**^"<
   #44 D   
C; C;c                   |rt        |d      r|j                         }|rt        |d      r|j                         }||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j                  |      }t        |t              rZ|j                  d      }t        |t              r+t        |j                  d      |j                  d            nd}	t        |		      S |S c c}}w )
zExecute storage.deleteCookies.r8   r   Nzstorage.deleteCookiesr   rz   r{   r|   r   )rg   r8   r   r   r   r   r]   rA   r\   r	   r*   )
r4   r   r   r   r   r   r   ri   r   r   s
             r   delete_cookieszStorage.delete_cookies7  s    gfn5((*FN;!..0I"
 $*<<>C41aQ]!Q$CC5v>##C(fd#ZZ/F fd+	 !'M!:"(**^"<
   'R88 Dr   )r>   r?   )NN)r   r   r   r   r5   r   r   r   r   r   r   r   r      s    (@<2r   r   N)
__future__r   dataclassesr   r   typingr   %selenium.webdriver.common.bidi.commonr   r	   r   r   r"   r%   r(   r*   r,   rE   rO   rd   rl   rp   rw   r   r   r   r   <module>r      sQ   # (  A
% % % ! ! ! % % % ! ! ! % % % ! ! ! % % %# #*  
 
 
B &# &# &#P ## ## ##J# #& # # #(U Ur   