
    gC                    b   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
 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 dZ	 	 	 	 d!	 	 	 	 	 	 	 	 	 d"dZ	 	 	 	 	 	 d#	 	 	 	 	 	 	 	 	 	 	 	 	 d$dZd%dZd%dZ	 	 	 	 	 	 	 	 	 d&	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d'dZ	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 d(dZ	 	 	 	 d!	 	 	 	 	 	 	 	 	 d)dZ	 	 	 d*	 	 	 	 	 	 	 d+dZy),    )annotations   )event_classT_JSON_DICT)	dataclassN)runtime)storagec                  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      e/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v129/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/   r0   r-   )r   r*   r,   r-   )r   r)   r   r+   ObjectStoreIndexr   s      r   r   zObjectStore.from_jsonH   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)r2   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/   r4   
multiEntry)r   r   r*   r   r4   r5   r   r   s     r   r   zObjectStoreIndex.to_jsonc   sN    vyyV--//1YX!--\r'   c           	          | t        |d         t        j                  |d         t        |d         t        |d               S )Nr   r/   r4   r7   )r   r*   r4   r5   )r   r)   r   r+   r   r   s     r   r   zObjectStoreIndex.from_jsonk   sF    T&\"&&tI7X'T,/0	
 	
r'   Nr   r&   r'   r   r2   r2   R   s>     I  L  
 
r'   r2   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@   rA   rB   )r   r=   r>   r@   rA   rB   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 )NrD   r>   r@   rA   rB   )r=   r>   r@   rA   rB   )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@   rA   rB   r   r%   r   r&   r'   r   r<   r<   u   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	upperOpenrJ   rK   )r   rH   rI   rJ   r   rK   r8   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 )NrM   rN   rJ   rK   )rH   rI   rJ   rK   )r+   r<   r   r:   s     r   r   zKeyRange.from_json   sh    D-.D-.29T/#--W.t29T/#--W.	
 	
 HL	
 	
r'   )
r    r!   r"   r#   r$   rJ   rK   r   r%   r   r&   r'   r   rG   rG      sJ       #'E& #'E& 
 
r'   rG   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 )NrR   
primaryKeyrT   )r   rR   r   rS   rT   r8   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 )NrR   rV   rT   )rR   rS   rT   )r   RemoteObjectr   r:   s     r   r   zDataEntry.from_json   sX    $$..tE{;,,66tL7IJ&&00g?
 	
r'   Nr   r&   r'   r   rQ   rQ      s8     
 &%   
 
r'   rQ   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]]rB   c                    t               }| j                  |d<   | j                  | j                  |d<   | j                  | j                  D cg c]  }| c}|d<   |S c c}w )NrD   r@   rB   )r   r=   r@   rB   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 )NrD   r@   rB   )r=   r@   rB   )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@   rB   r   r%   r   r&   r'   r   r)   r)      sA     J $(F ' 04E,3 
 
r'   r)   c              #     K   t               }| | |d<   |||d<   ||j                         |d<   ||d<   ||d<   d|d}|}yw)	a  
    Clears all entries from an object store.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey, or storageBucket must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :param storage_bucket: *(Optional)* Storage bucket. If not specified, it uses the default bucket.
    :param database_name: Database name.
    :param object_store_name: Object store name.
    NsecurityOrigin
storageKeystorageBucketdatabaseNameobjectStoreNamezIndexedDB.clearObjectStoremethodparamsr   r   security_originstorage_keystorage_bucketdatabase_nameobject_store_namerd   cmd_dictr   s           r   clear_object_storerm     st       &F"#2 *|!"0"8"8":*F> 1F.H >Ds   AAc              #     K   t               }| | |d<   |||d<   ||j                         |d<   ||d<   d|d}|}yw)au  
    Deletes a database.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey, or storageBucket must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :param storage_bucket: *(Optional)* Storage bucket. If not specified, it uses the default bucket.
    :param database_name: Database name.
    Nr]   r^   r_   r`   zIndexedDB.deleteDatabaserb   re   rg   rh   ri   rj   rd   rl   r   s          r   delete_databaserp   $  si      &F"#2 *|!"0"8"8":*F>,H >Ds   =?c              #     K   t               }| | |d<   |||d<   ||j                         |d<   ||d<   ||d<   |j                         |d<   d|d	}|}yw)
a  
    Delete a range of entries from an object store

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey, or storageBucket must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :param storage_bucket: *(Optional)* Storage bucket. If not specified, it uses the default bucket.
    :param database_name:
    :param object_store_name:
    :param key_range: Range of entry keys to delete
    Nr]   r^   r_   r`   ra   keyRangez"IndexedDB.deleteObjectStoreEntriesrb   re   )	rg   rh   ri   rj   rk   	key_rangerd   rl   r   s	            r   delete_object_store_entriesrt   A  s     $ &F"#2 *|!"0"8"8":*F> 1F"**,F:6H >Ds   AAc               #     K   ddi} | }yw)z'
    Disables events from backend.
    rc   zIndexedDB.disableNr&   rl   r   s     r   disablerw   d  s     
 	%H >D   
c               #     K   ddi} | }yw)z&
    Enables events from backend.
    rc   zIndexedDB.enableNr&   rv   s     r   enablerz   n  s     
 	$H >Drx   c	              #  D  K   t               }	| | |	d<   |||	d<   ||j                         |	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)aq  
    Requests data from object store or index.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey, or storageBucket must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :param storage_bucket: *(Optional)* Storage bucket. If not specified, it uses the default bucket.
    :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_   r`   ra   	indexName	skipCountpageSizerr   zIndexedDB.requestDatarb   objectStoreDataEntrieshasMore)r   r   rQ   r   r+   )rg   rh   ri   rj   rk   
index_name
skip_count	page_sizers   rd   rl   r   r   s                r   request_datar   x  s     8 &F"#2 *|!"0"8"8":*F> 1F$F;$F;"F:&..0z)H >D)-.F)GHA		Q	HT)_ Hs   A,B .B
B c              #     K   t               }| | |d<   |||d<   ||j                         |d<   ||d<   ||d<   d|d}|}t        |d         t        |d	         fS w)
a  
    Gets metadata of an object store.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey, or storageBucket must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :param storage_bucket: *(Optional)* Storage bucket. If not specified, it uses the default bucket.
    :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_   r`   ra   zIndexedDB.getMetadatarb   entriesCountkeyGeneratorValue)r   r   r   rf   s           r   get_metadatar     s     ( &F"#2 *|!"0"8"8":*F> 1F)H >Dd>"#d&'( s   AAc              #     K   t               }| | |d<   |||d<   ||j                         |d<   ||d<   d|d}|}t        j                  |d         S w)a  
    Requests database with given name in given frame.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey, or storageBucket must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :param storage_bucket: *(Optional)* Storage bucket. If not specified, it uses the default bucket.
    :param database_name: Database name.
    :returns: Database with an array of object stores.
    r]   r^   r_   r`   zIndexedDB.requestDatabaserb   databaseWithObjectStores)r   r   r   r   ro   s          r   request_databaser     s      &F"#2 *|!"0"8"8":*F>-H >D#--d3M.NOOs   AAc              #     K   t               }| | |d<   |||d<   ||j                         |d<   d|d}|}|d   D cg c]  }t        |       c}S c c}w w)a  
    Requests database names for given security origin.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey, or storageBucket must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :param storage_bucket: *(Optional)* Storage bucket. If not specified, it uses the default bucket.
    :returns: Database names for origin.
    r]   r^   r_   zIndexedDB.requestDatabaseNamesrb   databaseNames)r   r   r   )rg   rh   ri   rd   rl   r   r   s          r   request_database_namesr     s|      &F"#2 *|!"0"8"8":2H >D 12qCF222s   >A AA)NNNNN)rg   r?   rh   r?   ri   &typing.Optional[storage.StorageBucket]rj   r   rk   r   return0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])NNNN)
rg   r?   rh   r?   ri   r   rj   r   r   r   )NNNNNN)rg   r?   rh   r?   ri   r   rj   r   rk   r   rs   rG   r   r   )r   r   )	NNNNNNNNN)rg   r?   rh   r?   ri   r   rj   r   rk   r   r   r   r   intr   r   rs   ztyping.Optional[KeyRange]r   zVtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[typing.List[DataEntry], bool]])rg   r?   rh   r?   ri   r   rj   r   rk   r   r   zFtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[float, float]])
rg   r?   rh   r?   ri   r   rj   r   r   zDtyping.Generator[T_JSON_DICT, T_JSON_DICT, DatabaseWithObjectStores])NNN)rg   r?   rh   r?   ri   r   r   z<typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]])
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r   r   r2   r<   rG   rQ   r)   rm   rp   rt   rw   rz   r   r   r   r   r&   r'   r   <module>r      s   # * !     
 
 
< 
 
 
D 
 
 
D (
 (
 (
V !
 !
 !
H 
 
 
: 
 
 
@ 15,0AE!!%-) ? 	
  
8B 15,0AE!	-) ? 	
 
8< 15,0AE!!%" - )  ?  	 
     
8 F 15,0AE!!%/32-2)2 ?2 	2
 2 2 2 2 -2 
^2l 15,0AE!!%%-%)% ?% 	%
 % 
N%R 15,0AE!	P-P)P ?P 	P
 
LP@ 15,0AE3-3)3 ?3 
D	3r'   