o
    ҷhC                     @  s  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	 d	ZeG d
d dZeG dd dZeG dd dZeG dd dZeG dd dZeG dd dZ					d<d=d d!Z				d>d?d"d#Z						d@dAd%d&ZdBd'd(ZdBd)d*Z									dCdDd1d2Z					d<dEd4d5Z				d>dFd7d8Z			dGdHd:d;ZdS )I    )annotations   )event_classT_JSON_DICT)	dataclassN)runtime)storagec                   @  s>   e Zd ZU dZded< ded< ded< dd	 Zed
d ZdS )DatabaseWithObjectStoresz2
    Database with an array of object stores.
    strnamefloatversionztyping.List[ObjectStore]object_storesc                 C  s2   t  }| j|d< | j|d< dd | jD |d< |S )Nr   r   c                 S     g | ]}|  qS  to_json.0ir   r   e/var/www/html/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v117/indexed_db.py
<listcomp>#       z4DatabaseWithObjectStores.to_json.<locals>.<listcomp>objectStores)dictr   r   r   selfjsonr   r   r   r      s
   

z DatabaseWithObjectStores.to_jsonc                 C  s,   | t |d t|d dd |d D dS )Nr   r   c                 S     g | ]}t |qS r   )ObjectStore	from_jsonr   r   r   r   r   +       z6DatabaseWithObjectStores.from_json.<locals>.<listcomp>r   )r   r   r   r
   r   clsr   r   r   r   r    &   s
   

z"DatabaseWithObjectStores.from_jsonN__name__
__module____qualname____doc____annotations__r   classmethodr    r   r   r   r   r	      s   
 r	   c                   @  sF   e Zd ZU dZded< ded< ded< ded	< d
d Zedd ZdS )r   z
    Object store.
    r
   r   KeyPathkey_pathboolauto_incrementztyping.List[ObjectStoreIndex]indexesc                 C  s@   t  }| j|d< | j |d< | j|d< dd | jD |d< |S )Nr   keyPathautoIncrementc                 S  r   r   r   r   r   r   r   r   E   r   z'ObjectStore.to_json.<locals>.<listcomp>r0   )r   r   r-   r   r/   r0   r   r   r   r   r   @   s   

zObjectStore.to_jsonc                 C  s8   | t |d t|d t|d dd |d D dS )Nr   r1   r2   c                 S  r   r   )ObjectStoreIndexr    r   r   r   r   r   N   r!   z)ObjectStore.from_json.<locals>.<listcomp>r0   )r   r-   r/   r0   r
   r,   r    r.   r#   r   r   r   r    H   s   

zObjectStore.from_jsonNr%   r   r   r   r   r   /      
 r   c                   @  sF   e Zd ZU dZded< ded< ded< ded< d	d
 Zedd ZdS )r3   z
    Object store index.
    r
   r   r,   r-   r.   uniquemulti_entryc                 C  s6   t  }| j|d< | j |d< | j|d< | j|d< |S )Nr   r1   r6   
multiEntry)r   r   r-   r   r6   r7   r   r   r   r   r   c   s   


zObjectStoreIndex.to_jsonc                 C  s2   | t |d t|d t|d t|d dS )Nr   r1   r6   r8   )r   r-   r6   r7   r4   r#   r   r   r   r    k   s   


zObjectStoreIndex.from_jsonNr%   r   r   r   r   r3   R   r5   r3   c                   @  s^   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d Z	e
dd ZdS )Keyz
    Key.
    r
   type_Nztyping.Optional[float]numbertyping.Optional[str]stringdatez!typing.Optional[typing.List[Key]]arrayc                 C  sn   t  }| j|d< | jd ur| j|d< | jd ur| j|d< | jd ur&| j|d< | jd ur5dd | jD |d< |S )Ntyper;   r=   r>   c                 S  r   r   r   r   r   r   r   r      r   zKey.to_json.<locals>.<listcomp>r?   )r   r:   r;   r=   r>   r?   r   r   r   r   r      s   







zKey.to_jsonc                 C  st   | 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 r6dd |d D dS d dS )	Nr@   r;   r=   r>   r?   c                 S  r   r   )r9   r    r   r   r   r   r      r!   z!Key.from_json.<locals>.<listcomp>)r:   r;   r=   r>   r?   r"   r#   r   r   r   r       s   
zKey.from_json)r&   r'   r(   r)   r*   r;   r=   r>   r?   r   r+   r    r   r   r   r   r9   u   s   
 r9   c                   @  sN   e Zd ZU dZded< ded< dZded< dZded< d	d
 Zedd Z	dS )KeyRangez
    Key range.
    r.   
lower_open
upper_openNztyping.Optional[Key]lowerupperc                 C  sN   t  }| j|d< | j|d< | jd ur| j |d< | jd ur%| j |d< |S )N	lowerOpen	upperOpenrD   rE   )r   rB   rC   rD   r   rE   r   r   r   r   r      s   



zKeyRange.to_jsonc                 C  sP   | t |d t |d d|v rt|d nd d|v r$t|d dS d dS )NrF   rG   rD   rE   )rB   rC   rD   rE   )r.   r9   r    r#   r   r   r   r       s   

zKeyRange.from_json)
r&   r'   r(   r)   r*   rD   rE   r   r+   r    r   r   r   r   rA      s   
 
rA   c                   @  s>   e Zd ZU dZded< ded< ded< dd Zedd	 Zd
S )	DataEntryz
    Data entry.
    zruntime.RemoteObjectkeyprimary_keyvaluec                 C  s4   t  }| j |d< | j |d< | j |d< |S )NrI   
primaryKeyrK   )r   rI   r   rJ   rK   r   r   r   r   r      s
   zDataEntry.to_jsonc                 C  s2   | t j|d t j|d t j|d dS )NrI   rL   rK   )rI   rJ   rK   )r   RemoteObjectr    r#   r   r   r   r       s
   zDataEntry.from_jsonNr%   r   r   r   r   rH      s   
 rH   c                   @  sF   e Zd ZU dZded< dZded< dZded< d	d
 Zedd Z	dS )r,   z
    Key path.
    r
   r:   Nr<   r=   z!typing.Optional[typing.List[str]]r?   c                 C  sF   t  }| j|d< | jd ur| j|d< | jd ur!dd | jD |d< |S )Nr@   r=   c                 S  s   g | ]}|qS r   r   r   r   r   r   r      s    z#KeyPath.to_json.<locals>.<listcomp>r?   )r   r:   r=   r?   r   r   r   r   r      s   



zKeyPath.to_jsonc                 C  sH   | t |d d|v rt |d nd d|v r dd |d D dS d dS )Nr@   r=   r?   c                 S     g | ]}t |qS r   r
   r   r   r   r   r      r   z%KeyPath.from_json.<locals>.<listcomp>)r:   r=   r?   rO   r#   r   r   r   r       s   
zKeyPath.from_json)
r&   r'   r(   r)   r*   r=   r?   r   r+   r    r   r   r   r   r,      s   
 	r,   security_originr<   storage_keystorage_bucket&typing.Optional[storage.StorageBucket]database_namer
   object_store_namereturn0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                 c  s`    t  }| dur| |d< |dur||d< |dur| |d< ||d< ||d< d|d}|V }dS )	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   rP   rQ   rR   rT   rU   r_   cmd_dictr   r   r   r   clear_object_store  s   
rc   c                 c  sX    t  }| dur| |d< |dur||d< |dur| |d< ||d< d|d}|V }dS )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.
    NrX   rY   rZ   r[   zIndexedDB.deleteDatabaser]   r`   rP   rQ   rR   rT   r_   rb   r   r   r   r   delete_database$  s   
re   	key_rangec           	      c  sl    t  }| dur| |d< |dur||d< |dur| |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, 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
    NrX   rY   rZ   r[   r\   keyRangez"IndexedDB.deleteObjectStoreEntriesr]   r`   )	rP   rQ   rR   rT   rU   rf   r_   rb   r   r   r   r   delete_object_store_entriesA  s   
rh   c                  c      ddi} | V }dS )z'
    Disables events from backend.
    r^   zIndexedDB.disableNr   rb   r   r   r   r   disabled     
rk   c                  c  ri   )z&
    Enables events from backend.
    r^   zIndexedDB.enableNr   rj   r   r   r   enablen  rl   rm   
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	                 c  s    t  }	| dur| |	d< |dur||	d< |dur| |	d< ||	d< ||	d< ||	d< ||	d< ||	d	< |dur<| |	d
< d|	d}
|
V }dd |d D t|d fS )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.
    NrX   rY   rZ   r[   r\   	indexName	skipCountpageSizerg   zIndexedDB.requestDatar]   c                 S  r   r   )rH   r    r   r   r   r   r     r!   z request_data.<locals>.<listcomp>objectStoreDataEntrieshasMore)r   r   r.   )rP   rQ   rR   rT   rU   rn   ro   rq   rf   r_   rb   r   r   r   r   request_datax  s,   
ry   Ftyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[float, float]]c                 c  st    t  }| dur| |d< |dur||d< |dur| |d< ||d< ||d< d|d}|V }t|d	 t|d
 fS )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.
    NrX   rY   rZ   r[   r\   zIndexedDB.getMetadatar]   entriesCountkeyGeneratorValue)r   r   r   ra   r   r   r   get_metadata  s"   

r}   Dtyping.Generator[T_JSON_DICT, T_JSON_DICT, DatabaseWithObjectStores]c                 c  sb    t  }| dur| |d< |dur||d< |dur| |d< ||d< d|d}|V }t|d S )	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.
    NrX   rY   rZ   r[   zIndexedDB.requestDatabaser]   databaseWithObjectStores)r   r   r	   r    rd   r   r   r   request_database  s   r   <typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]]c                 c  s^    t  }| dur| |d< |dur||d< |dur| |d< d|d}|V }d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, 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.
    NrX   rY   rZ   zIndexedDB.requestDatabaseNamesr]   c                 S  rN   r   rO   r   r   r   r   r     r   z*request_database_names.<locals>.<listcomp>databaseNamesr`   )rP   rQ   rR   r_   rb   r   r   r   r   request_database_names  s   r   )NNNNN)rP   r<   rQ   r<   rR   rS   rT   r
   rU   r
   rV   rW   )NNNN)
rP   r<   rQ   r<   rR   rS   rT   r
   rV   rW   )NNNNNN)rP   r<   rQ   r<   rR   rS   rT   r
   rU   r
   rf   rA   rV   rW   )rV   rW   )	NNNNNNNNN)rP   r<   rQ   r<   rR   rS   rT   r
   rU   r
   rn   r
   ro   rp   rq   rp   rf   rr   rV   rs   )rP   r<   rQ   r<   rR   rS   rT   r
   rU   r
   rV   rz   )
rP   r<   rQ   r<   rR   rS   rT   r
   rV   r~   )NNN)rP   r<   rQ   r<   rR   rS   rV   r   )
__future__r   utilr   r   dataclassesr   enumtyping r   r   r	   r   r3   r9   rA   rH   r,   rc   re   rh   rk   rm   ry   r}   r   r   r   r   r   r   <module>   s   ""+$ !
#

6) 