
    Eg8;                        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	 	 	 	 d0d1dZ	 	 	 d2d3dZ	 	 	 	 	 d4d5d Zd6d!Zd6d"Z	 	 	 	 	 	 	 	 d7d8d)Z	 	 	 	 d0d9d+Z	 	 	 d2d:d-Z	 	 d;d<d/ZdS )=    )annotations   )event_classT_JSON_DICT)	dataclassN)runtimec                  N    e Zd ZU dZded<   ded<   ded<   d Zed	             Zd
S )DatabaseWithObjectStoresz2
    Database with an array of object stores.
    strnamefloatversionztyping.List[ObjectStore]object_storesc                r    t                      }| j        |d<   | j        |d<   d | j        D             |d<   |S )Nr   r   c                6    g | ]}|                                 S  to_json.0is     g/var/www/sysmax/venv/lib/python3.11/site-packages/selenium/webdriver/common/devtools/v112/indexed_db.py
<listcomp>z4DatabaseWithObjectStores.to_json.<locals>.<listcomp>"   s     HHH		HHH    objectStores)dictr   r   r   selfjsons     r   r   z DatabaseWithObjectStores.to_json   sA    vvyV,YHHT5GHHH^r   c                     | t          |d                   t          |d                   d |d         D                       S )Nr   r   c                B    g | ]}t                               |          S r   )ObjectStore	from_jsonr   s     r   r   z6DatabaseWithObjectStores.from_json.<locals>.<listcomp>*   s&    RRR;0033RRRr   r   )r   r   r   r   r   clsr   s     r   r#   z"DatabaseWithObjectStores.from_json%   sO    sT&\""$y/**RRT.=QRRR
 
 
 	
r   N__name__
__module____qualname____doc____annotations__r   classmethodr#   r   r   r   r
   r
      sn           III NNN ,+++   
 
 [
 
 
r   r
   c                  X    e Zd ZU dZded<   ded<   ded<   ded	<   d
 Zed             ZdS )r"   z
    Object store.
    r   r   KeyPathkey_pathboolauto_incrementztyping.List[ObjectStoreIndex]indexesc                    t                      }| j        |d<   | j                                        |d<   | j        |d<   d | j        D             |d<   |S )Nr   keyPathautoIncrementc                6    g | ]}|                                 S r   r   r   s     r   r   z'ObjectStore.to_json.<locals>.<listcomp>D   s     ===1199;;===r   r3   )r   r   r0   r   r2   r3   r   s     r   r   zObjectStore.to_json?   sX    vvyV-//11Y $ 3_=====Yr   c                     | t          |d                   t                              |d                   t          |d                   d |d         D                       S )Nr   r5   r6   c                B    g | ]}t                               |          S r   )ObjectStoreIndexr#   r   s     r   r   z)ObjectStore.from_json.<locals>.<listcomp>M   s'    LLLq%//22LLLr   r3   )r   r0   r2   r3   r   r/   r#   r1   r%   s     r   r#   zObjectStore.from_jsonG   sd    sT&\""&&tI77_ 566LLDOLLL	
 
 
 	
r   Nr'   r   r   r   r"   r"   .   s           III   +***   
 
 [
 
 
r   r"   c                  X    e Zd ZU dZded<   ded<   ded<   ded<   d	 Zed
             ZdS )r:   z
    Object store index.
    r   r   r/   r0   r1   uniquemulti_entryc                    t                      }| j        |d<   | j                                        |d<   | j        |d<   | j        |d<   |S )Nr   r5   r=   
multiEntry)r   r   r0   r   r=   r>   r   s     r   r   zObjectStoreIndex.to_jsonb   sJ    vvyV-//11YX!-\r   c           	          | t          |d                   t                              |d                   t          |d                   t          |d                             S )Nr   r5   r=   r@   )r   r0   r=   r>   r;   r%   s     r   r#   zObjectStoreIndex.from_jsonj   s^    sT&\""&&tI77X''T,/00	
 
 
 	
r   Nr'   r   r   r   r:   r:   Q   s|           III  LLL    
 
 [
 
 
r   r:   c                  r    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dS )Keyz
    Key.
    r   type_Nztyping.Optional[float]numbertyping.Optional[str]stringdatez!typing.Optional[typing.List[Key]]arrayc                    t                      }| j        |d<   | j        
| j        |d<   | j        
| j        |d<   | j        
| j        |d<   | j        d | j        D             |d<   |S )NtyperE   rG   rH   c                6    g | ]}|                                 S r   r   r   s     r   r   zKey.to_json.<locals>.<listcomp>   s     ===QQYY[[===r   rI   )r   rD   rE   rG   rH   rI   r   s     r   r   zKey.to_json   su    vvzV;"![DN;"![DN9 9DL:!==$*===DMr   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         D             nd           S )NrK   rE   rG   rH   rI   c                B    g | ]}t                               |          S r   )rC   r#   r   s     r   r   z!Key.from_json.<locals>.<listcomp>   s$    ;;;3==##;;;r   )rD   rE   rG   rH   rI   r$   r%   s     r   r#   zKey.from_json   s    sd6l##,4,<,<5h((($*2d*:*:3tH~&&&(.$tF|$$$D?F$;;T'];;;;TX
 
 
 	
r   )r(   r)   r*   r+   r,   rE   rG   rH   rI   r   r-   r#   r   r   r   rC   rC   t   s           JJJ &*F)))) $(F'''' $(D'''' 04E3333   
 
 [
 
 
r   rC   c                  `    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	dS )KeyRangez
    Key range.
    r1   
lower_open
upper_openNztyping.Optional[Key]lowerupperc                    t                      }| j        |d<   | j        |d<   | j        | j                                        |d<   | j        | j                                        |d<   |S )N	lowerOpen	upperOpenrS   rT   )r   rQ   rR   rS   r   rT   r   s     r   r   zKeyRange.to_json   sf    vv O[ O[:! J..00DM:! J..00DMr   c           	          | t          |d                   t          |d                   d|v r t                              |d                   nd d|v r t                              |d                   nd           S )NrV   rW   rS   rT   )rQ   rR   rS   rT   )r1   rC   r#   r%   s     r   r#   zKeyRange.from_json   s{    sD-..D-..29T//#--W...t29T//#--W...t	
 
 
 	
r   )
r(   r)   r*   r+   r,   rS   rT   r   r-   r#   r   r   r   rP   rP      s             #'E&&&& #'E&&&&   
 
 [
 
 
r   rP   c                  N    e Zd ZU dZded<   ded<   ded<   d Zed             ZdS )		DataEntryz
    Data entry.
    zruntime.RemoteObjectkeyprimary_keyvaluec                    t                      }| j                                        |d<   | j                                        |d<   | j                                        |d<   |S )Nr[   
primaryKeyr]   )r   r[   r   r\   r]   r   s     r   r   zDataEntry.to_json   sW    vvh&&((U!-5577\
**,,Wr   c                     | t           j                            |d                   t           j                            |d                   t           j                            |d                             S )Nr[   r_   r]   )r[   r\   r]   )r   RemoteObjectr#   r%   s     r   r#   zDataEntry.from_json   sd    s$..tE{;;,66tL7IJJ&00g??
 
 
 	
r   Nr'   r   r   r   rZ   rZ      st            &%%%     
 
 [
 
 
r   rZ   c                  V    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	dS )r/   z
    Key path.
    r   rD   NrF   rG   z!typing.Optional[typing.List[str]]rI   c                    t                      }| j        |d<   | j        
| j        |d<   | j        d | j        D             |d<   |S )NrK   rG   c                    g | ]}|S r   r   r   s     r   r   z#KeyPath.to_json.<locals>.<listcomp>   s    3331Q333r   rI   )r   rD   rG   rI   r   s     r   r   zKeyPath.to_json   sO    vvzV;"![DN:!33
333DMr   c                     | t          |d                   d|v rt          |d                   nd d|v rd |d         D             nd           S )NrK   rG   rI   c                ,    g | ]}t          |          S r   r   r   s     r   r   z%KeyPath.from_json.<locals>.<listcomp>   s    111a3q66111r   )rD   rG   rI   rg   r%   s     r   r#   zKeyPath.from_json   sk    sd6l##*2d*:*:3tH~&&&5<__114=1111$
 
 
 	
r   )
r(   r)   r*   r+   r,   rG   rI   r   r-   r#   r   r   r   r/   r/      s{           JJJ $(F'''' 04E3333   
 
 [
 
 
r   r/   security_originrF   storage_keydatabase_namer   object_store_namereturn0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c              #  h   K   t                      }| | |d<   |||d<   ||d<   ||d<   d|d}|V }dS )aC  
    Clears all entries from an object store.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :param database_name: Database name.
    :param object_store_name: Object store name.
    NsecurityOrigin
storageKeydatabaseNameobjectStoreNamezIndexedDB.clearObjectStoremethodparamsr   rh   ri   rj   rk   ru   cmd_dictr   s          r   clear_object_storery     sh       &&F"#2 *|*F> 1F. H >>DDDr   c              #  ^   K   t                      }| | |d<   |||d<   ||d<   d|d}|V }dS )z
    Deletes a database.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :param database_name: Database name.
    Nro   rp   rq   zIndexedDB.deleteDatabasers   rv   rh   ri   rj   ru   rx   r   s         r   delete_databaser|     s]       &&F"#2 *|*F>, H >>DDDr   	key_rangec              #     K   t                      }| | |d<   |||d<   ||d<   ||d<   |                                |d<   d|d}|V }dS )	a[  
    Delete a range of entries from an object store

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :param database_name:
    :param object_store_name:
    :param key_range: Range of entry keys to delete
    Nro   rp   rq   rr   keyRangez"IndexedDB.deleteObjectStoreEntriesrs   )r   r   )rh   ri   rj   rk   r}   ru   rx   r   s           r   delete_object_store_entriesr   8  s~        &&F"#2 *|*F> 1F"**,,F:6 H >>DDDr   c               #     K   ddi} | V }dS )z'
    Disables events from backend.
    rt   zIndexedDB.disableNr   rx   r   s     r   disabler   W  s$      
 	%H >>DDDr   c               #     K   ddi} | V }dS )z&
    Enables events from backend.
    rt   zIndexedDB.enableNr   r   s     r   enabler   a  s$      
 	$H >>DDDr   
index_name
skip_countint	page_sizetyping.Optional[KeyRange]Vtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[typing.List[DataEntry], bool]]c              #    K   t                      }| | |d<   |||d<   ||d<   ||d<   ||d<   ||d<   ||d<   ||                                |d	<   d
|d}	|	V }
d |
d         D             t          |
d                   fS )a  
    Requests data from object store or index.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :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.
    Nro   rp   rq   rr   	indexName	skipCountpageSizer   zIndexedDB.requestDatars   c                B    g | ]}t                               |          S r   )rZ   r#   r   s     r   r   z request_data.<locals>.<listcomp>  s&    HHHA		Q		HHHr   objectStoreDataEntrieshasMore)r   r   r1   )rh   ri   rj   rk   r   r   r   r}   ru   rx   r   s              r   request_datar   k  s      4 &&F"#2 *|*F> 1F$F;$F;"F:&..00z) H >>DHH.F)GHHHT)_ r   Ftyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[float, float]]c              #     K   t                      }| | |d<   |||d<   ||d<   ||d<   d|d}|V }t          |d                   t          |d	                   fS )
aG  
    Gets metadata of an object store.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :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.
    Nro   rp   rq   rr   zIndexedDB.getMetadatars   entriesCountkeyGeneratorValue)r   r   rw   s          r   get_metadatar     s      $ &&F"#2 *|*F> 1F) H >>Dd>"##d&'(( r   Dtyping.Generator[T_JSON_DICT, T_JSON_DICT, DatabaseWithObjectStores]c              #     K   t                      }| | |d<   |||d<   ||d<   d|d}|V }t                              |d                   S )aR  
    Requests database with given name in given frame.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :param database_name: Database name.
    :returns: Database with an array of object stores.
    Nro   rp   rq   zIndexedDB.requestDatabasers   databaseWithObjectStores)r   r
   r#   r{   s         r   request_databaser     ss       &&F"#2 *|*F>- H >>D#--d3M.NOOOr   <typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]]c              #  t   K   t                      }| | |d<   |||d<   d|d}|V }d |d         D             S )a  
    Requests database names for given security origin.

    :param security_origin: *(Optional)* At least and at most one of securityOrigin, storageKey must be specified. Security origin.
    :param storage_key: *(Optional)* Storage key.
    :returns: Database names for origin.
    Nro   rp   zIndexedDB.requestDatabaseNamesrs   c                ,    g | ]}t          |          S r   rg   r   s     r   r   z*request_database_names.<locals>.<listcomp>  s    222qCFF222r   databaseNamesrv   )rh   ri   ru   rx   r   s        r   request_database_namesr     sh       &&F"#2 *|2 H >>D22D12222r   )NNNN)
rh   rF   ri   rF   rj   r   rk   r   rl   rm   )NNN)rh   rF   ri   rF   rj   r   rl   rm   )NNNNN)rh   rF   ri   rF   rj   r   rk   r   r}   rP   rl   rm   )rl   rm   )NNNNNNNN)rh   rF   ri   rF   rj   r   rk   r   r   r   r   r   r   r   r}   r   rl   r   )
rh   rF   ri   rF   rj   r   rk   r   rl   r   )rh   rF   ri   rF   rj   r   rl   r   )NN)rh   rF   ri   rF   rl   r   )
__future__r   utilr   r   dataclassesr   enumtyping r   r
   r"   r:   rC   rP   rZ   r/   ry   r|   r   r   r   r   r   r   r   r   r   r   <module>r      s%   # " " " " " * * * * * * * * ! ! ! ! ! !         
 
 
 
 
 
 
 
< 
 
 
 
 
 
 
 
D 
 
 
 
 
 
 
 
D (
 (
 (
 (
 (
 (
 (
 (
V !
 !
 !
 !
 !
 !
 !
 !
H 
 
 
 
 
 
 
 
: 
 
 
 
 
 
 
 
@ 15,0!!%	    : 15,0!    4 15,0!!%"    >       15,0!!%/3. . . . .d 15,0!!%	! ! ! ! !J 15,0!P P P P P8 15,03 3 3 3 3 3 3r   