
    g1                       d dl mZ ddlmZmZ d dlmZ d dlZd dl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	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 d dZd!dZd!dZ	 d"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d#dZ	 	 	 	 	 	 	 	 d$dZ	 	 	 	 	 	 d%dZ	 	 	 	 d&dZy)'    )annotations   )event_classT_JSON_DICT)	dataclassN)runtimec                  F    e Zd ZU dZded<   ded<   ded<   d Zed	        Zy
)DatabaseWithObjectStoresz2
    Database with an array of object stores.
    strnamefloatversionztyping.List[ObjectStore]object_storesc                    t               }| j                  |d<   | j                  |d<   | j                  D cg c]  }|j	                          c}|d<   |S c c}w )Nr   r   objectStores)dictr   r   r   to_jsonselfjsonis      d/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/indexed_db.pyr   z DatabaseWithObjectStores.to_json   sO    vyyV,,Y595G5GH		H^  Is   Ac           
          | t        |d         t        |d         |d   D cg c]  }t        j                  |       c}      S c c}w )Nr   r   r   )r   r   r   )r   r   ObjectStore	from_jsonclsr   r   s      r   r   z"DatabaseWithObjectStores.from_json%   sK    T&\"$y/*=A.=QR;003R
 	
 Ss   AN__name__
__module____qualname____doc____annotations__r   classmethodr        r   r
   r
      s6     I N ,+ 
 
r&   r
   c                  P    e Zd ZU dZded<   ded<   ded<   ded	<   d
 Zed        Zy)r   z
    Object store.
    r   r   KeyPathkey_pathboolauto_incrementztyping.List[ObjectStoreIndex]indexesc                    t               }| j                  |d<   | j                  j                         |d<   | j                  |d<   | j
                  D cg c]  }|j                          c}|d<   |S c c}w )Nr   keyPathautoIncrementr,   )r   r   r)   r   r+   r,   r   s      r   r   zObjectStore.to_json?   sd    vyyV--//1Y $ 3 3_04=1199;=Y >s   A3c                     | t        |d         t        j                  |d         t        |d         |d   D cg c]  }t        j                  |       c}      S c c}w )Nr   r.   r/   r,   )r   r)   r+   r,   )r   r(   r   r*   ObjectStoreIndexr   s      r   r   zObjectStore.from_jsonG   s^    T&\"&&tI7_ 56<@OLq%//2L	
 	
 Ms   ANr   r%   r&   r   r   r   .   s?     I   +* 
 
r&   r   c                  P    e Zd ZU dZded<   ded<   ded<   ded<   d	 Zed
        Zy)r1   z
    Object store index.
    r   r   r(   r)   r*   uniquemulti_entryc                    t               }| j                  |d<   | j                  j                         |d<   | j                  |d<   | j
                  |d<   |S )Nr   r.   r3   
multiEntry)r   r   r)   r   r3   r4   r   r   s     r   r   zObjectStoreIndex.to_jsonb   sN    vyyV--//1YX!--\r&   c           	          | t        |d         t        j                  |d         t        |d         t        |d               S )Nr   r.   r3   r6   )r   r)   r3   r4   )r   r(   r   r*   r   r   s     r   r   zObjectStoreIndex.from_jsonj   sF    T&\"&&tI7X'T,/0	
 	
r&   Nr   r%   r&   r   r1   r1   Q   s>     I  L  
 
r&   r1   c                  j    e Zd ZU 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	e
d        Zy)Keyz
    Key.
    r   type_Nztyping.Optional[float]numbertyping.Optional[str]stringdatez!typing.Optional[typing.List[Key]]arrayc                R   t               }| j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j
                  +| j
                  D cg c]  }|j                          c}|d<   |S c c}w )Ntyper=   r?   r@   rA   )r   r<   r=   r?   r@   rA   r   r   s      r   r   zKey.to_json   s    vzzV;;"![[DN;;"![[DN99 99DL::!26**=QQYY[=DM >s   B$c                    | t        |d         d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v r+|d   D cg c]  }t        j                  |       c}      S d       S c c}w )NrC   r=   r?   r@   rA   )r<   r=   r?   r@   rA   )r   r   r;   r   r   s      r   r   zKey.from_json   s    d6l#,4,<5h($*2d*:3tH~&(.$tF|$D?F$T'];3==#;
 	

 UY
 	

 <s   A?)r   r    r!   r"   r#   r=   r?   r@   rA   r   r$   r   r%   r&   r   r;   r;   t   s[     J &*F") $(F ' $(D
 ' 04E,3 
 
r&   r;   c                  X    e Zd ZU dZded<   ded<   dZded<   dZded<   d	 Zed
        Z	y)KeyRangez
    Key range.
    r*   
lower_open
upper_openNztyping.Optional[Key]lowerupperc                    t               }| j                  |d<   | j                  |d<   | j                  | j                  j	                         |d<   | j
                  | j
                  j	                         |d<   |S )N	lowerOpen	upperOpenrI   rJ   )r   rG   rH   rI   r   rJ   r7   s     r   r   zKeyRange.to_json   sj    v OO[ OO[::! JJ..0DM::! JJ..0DMr&   c           	          | t        |d         t        |d         d|v rt        j                  |d         nd d|v rt        j                  |d               S d       S )NrL   rM   rI   rJ   )rG   rH   rI   rJ   )r*   r;   r   r9   s     r   r   zKeyRange.from_json   sh    D-.D-.29T/#--W.t29T/#--W.	
 	
 HL	
 	
r&   )
r   r    r!   r"   r#   rI   rJ   r   r$   r   r%   r&   r   rF   rF      sJ       #'E& #'E& 
 
r&   rF   c                  F    e Zd ZU dZded<   ded<   ded<   d Zed        Zy)		DataEntryz
    Data entry.
    zruntime.RemoteObjectkeyprimary_keyvaluec                    t               }| j                  j                         |d<   | j                  j                         |d<   | j                  j                         |d<   |S )NrQ   
primaryKeyrS   )r   rQ   r   rR   rS   r7   s     r   r   zDataEntry.to_json   sS    vhh&&(U!--557\

**,Wr&   c                     | t         j                  j                  |d         t         j                  j                  |d         t         j                  j                  |d               S )NrQ   rU   rS   )rQ   rR   rS   )r   RemoteObjectr   r9   s     r   r   zDataEntry.from_json   sX    $$..tE{;,,66tL7IJ&&00g?
 	
r&   Nr   r%   r&   r   rP   rP      s8     
 &%   
 
r&   rP   c                  N    e Zd ZU dZded<   dZded<   dZded<   d	 Zed
        Z	y)r(   z
    Key path.
    r   r<   Nr>   r?   z!typing.Optional[typing.List[str]]rA   c                    t               }| j                  |d<   | j                  | j                  |d<   | j                  | j                  D cg c]  }| c}|d<   |S c c}w )NrC   r?   rA   )r   r<   r?   rA   r   s      r   r   zKeyPath.to_json   sY    vzzV;;"![[DN::!(,

31Q3DM 4s   	A c           
          | t        |d         d|v rt        |d         nd d|v r!|d   D cg c]  }t        |       c}      S d       S c c}w )NrC   r?   rA   )r<   r?   rA   )r   r   s      r   r   zKeyPath.from_json   sb    d6l#*2d*:3tH~&5<_4=1a3q61
 	
 KO
 	
 2s   A)
r   r    r!   r"   r#   r?   rA   r   r$   r   r%   r&   r   r(   r(      sA     J $(F ' 04E,3 
 
r&   r(   c              #  P   K   t               }| |d<   ||d<   ||d<   d|d}|}yw)z
    Clears all entries from an object store.

    :param security_origin: Security origin.
    :param database_name: Database name.
    :param object_store_name: Object store name.
    securityOrigindatabaseNameobjectStoreNamezIndexedDB.clearObjectStoremethodparamsNr   security_origindatabase_nameobject_store_namera   cmd_dictr   s         r   clear_object_storerh     sE      &F.F*F> 1F.H >Ds   $&c              #  F   K   t               }| |d<   ||d<   d|d}|}yw)zt
    Deletes a database.

    :param security_origin: Security origin.
    :param database_name: Database name.
    r\   r]   zIndexedDB.deleteDatabaser_   Nrb   rd   re   ra   rg   r   s        r   delete_databaserk     s:      &F.F*F>,H >Ds   !c              #  v   K   t               }| |d<   ||d<   ||d<   |j                         |d<   d|d}|}yw)z
    Delete a range of entries from an object store

    :param security_origin:
    :param database_name:
    :param object_store_name:
    :param key_range: Range of entry keys to delete
    r\   r]   r^   keyRangez"IndexedDB.deleteObjectStoreEntriesr_   N)r   r   )rd   re   rf   	key_rangera   rg   r   s          r   delete_object_store_entriesro   .  sX      &F.F*F> 1F"**,F:6H >Ds   79c               #     K   ddi} | }yw)z'
    Disables events from backend.
    r`   zIndexedDB.disableNr%   rg   r   s     r   disablerr   H  s     
 	%H >D   
c               #     K   ddi} | }yw)z&
    Enables events from backend.
    r`   zIndexedDB.enableNr%   rq   s     r   enableru   R  s     
 	$H >Drs   c              #    K   t               }| |d<   ||d<   ||d<   ||d<   ||d<   ||d<   ||j                         |d<   d|d	}|}	|	d
   D 
cg c]  }
t        j                  |
       c}
t	        |	d         fS c c}
w w)ap  
    Requests data from object store or index.

    :param security_origin: Security origin.
    :param database_name: Database name.
    :param object_store_name: Object store name.
    :param index_name: Index name, empty string for object store data requests.
    :param skip_count: Number of records to skip.
    :param page_size: Number of records to fetch.
    :param key_range: *(Optional)* Key range.
    :returns: A tuple with the following items:

        0. **objectStoreDataEntries** - Array of object store data entries.
        1. **hasMore** - If true, there are more entries to fetch in the given range.
    r\   r]   r^   	indexName	skipCountpageSizerm   zIndexedDB.requestDatar_   objectStoreDataEntrieshasMore)r   r   rP   r   r*   )rd   re   rf   
index_name
skip_count	page_sizern   ra   rg   r   r   s              r   request_datar   \  s     0 &F.F*F> 1F$F;$F;"F:&..0z)H >D)-.F)GHA		Q	HT)_ Hs   ABA=,Bc              #     K   t               }| |d<   ||d<   ||d<   d|d}|}t        |d         t        |d         fS w)a  
    Gets metadata of an object store

    :param security_origin: Security origin.
    :param database_name: Database name.
    :param object_store_name: Object store name.
    :returns: A tuple with the following items:

        0. **entriesCount** - the entries count
        1. **keyGeneratorValue** - the current value of key generator, to become the next inserted key into the object store. Valid if objectStore.autoIncrement is true.
    r\   r]   r^   zIndexedDB.getMetadatar_   entriesCountkeyGeneratorValue)r   r   rc   s         r   get_metadatar     sj       &F.F*F> 1F)H >Dd>"#d&'( s   ?Ac              #  t   K   t               }| |d<   ||d<   d|d}|}t        j                  |d         S w)z
    Requests database with given name in given frame.

    :param security_origin: Security origin.
    :param database_name: Database name.
    :returns: Database with an array of object stores.
    r\   r]   zIndexedDB.requestDatabaser_   databaseWithObjectStores)r   r
   r   rj   s        r   request_databaser     sQ      &F.F*F>-H >D#--d3M.NOOs   68c              #  |   K   t               }| |d<   d|d}|}|d   D cg c]  }t        |       c}S c c}w w)z
    Requests database names for given security origin.

    :param security_origin: Security origin.
    :returns: Database names for origin.
    r\   zIndexedDB.requestDatabaseNamesr_   databaseNames)r   r   )rd   ra   rg   r   r   s        r   request_database_namesr     sM      &F.F2H >D 12qCF222s    <7<)rd   r   re   r   rf   r   return0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])rd   r   re   r   r   r   )
rd   r   re   r   rf   r   rn   rF   r   r   )r   r   )N)rd   r   re   r   rf   r   r|   r   r}   intr~   r   rn   ztyping.Optional[KeyRange]r   zVtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[typing.List[DataEntry], bool]])rd   r   re   r   rf   r   r   zFtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[float, float]])rd   r   re   r   r   zDtyping.Generator[T_JSON_DICT, T_JSON_DICT, DatabaseWithObjectStores])rd   r   r   z<typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]])
__future__r   utilr   r   dataclassesr   enumtyping r   r
   r   r1   r;   rF   rP   r(   rh   rk   ro   rr   ru   r   r   r   r   r%   r&   r   <module>r      s   # * !    
 
 
< 
 
 
D 
 
 
D (
 (
 (
V !
 !
 !
H 
 
 
: 
 
 
>  
8	. 
8(  	
 
84" 04))) ) 	)
 ) ) -) 
^)X  
N	>PPP 
LP,33	C3r&   