
    gU                     
   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  G d d	ej                        Ze G d
 d             Z	 	 	 	 	 	 d!dZ	 d"	 	 	 d#dZ	 d"	 	 	 	 	 d$dZ	 d"	 	 	 d%dZ	 	 	 	 d&dZ	 	 	 	 d'dZ	 	 	 	 d'dZ	 	 	 	 d'dZ	 	 	 	 d'dZ ed      e G d d                    Z ed      e G d d                    Z ed      e G d d                    Z ed      e G d d                     Zy)(    )annotations   )event_classT_JSON_DICT)	dataclassN)browser)networkc                  R    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZd Zed        Zy)StorageTypez)
    Enum of possible storage types.
    appcachecookiesfile_systems	indexeddblocal_storageshader_cachewebsqlservice_workerscache_storageallotherc                    | j                   S N)value)selfs    a/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/storage.pyto_jsonzStorageType.to_json    s    zz    c                     | |      S r    clsjsons     r   	from_jsonzStorageType.from_json#   s    4yr   N)__name__
__module____qualname____doc__APPCACHECOOKIESFILE_SYSTEMS	INDEXEDDBLOCAL_STORAGESHADER_CACHEWEBSQLSERVICE_WORKERSCACHE_STORAGEALL_OTHERr   classmethodr#   r   r   r   r   r      sY     HG!LI#M!LF'O#MDE  r   r   c                  <    e Zd ZU dZded<   ded<   d Zed        Zy)	UsageForTypez#
    Usage for a storage type.
    r   storage_typefloatusagec                r    t               }| j                  j                         |d<   | j                  |d<   |S )NstorageTyper8   )dictr6   r   r8   )r   r"   s     r   r   zUsageForType.to_json3   s4    v"//779]

Wr   c                Z     | t         j                  |d         t        |d               S )Nr:   r8   )r6   r8   )r   r#   r7   r    s     r   r#   zUsageForType.from_json9   s.    $..tM/BCW&
 	
r   N)r$   r%   r&   r'   __annotations__r   r3   r#   r   r   r   r5   r5   (   s/      L 
 
r   r5   c              #  F   K   t               }| |d<   ||d<   d|d}|}yw)z
    Clears storage for origin.

    :param origin: Security origin.
    :param storage_types: Comma separated list of StorageType to clear.
    originstorageTypeszStorage.clearDataForOriginmethodparamsNr;   )r?   storage_typesrC   cmd_dictr"   s        r   clear_data_for_originrG   A   s9      &FF8*F>.H >Ds   !c              #     K   t               }| | j                         |d<   d|d}|}|d   D cg c]!  }t        j                  j	                  |      # c}S c c}w w)z
    Returns all browser cookies.

    :param browser_context_id: *(Optional)* Browser context to use when called on the browser endpoint.
    :returns: Array of cookie objects.
    browserContextIdzStorage.getCookiesrA   r   )r;   r   r	   Cookier#   )browser_context_idrC   rF   r"   is        r   get_cookiesrM   U   sf      &F%%7%?%?%A!"&H >D15iAAGNN$$Q'AAAs   0A &AA c              #     K   t               }| D cg c]  }|j                          c}|d<   ||j                         |d<   d|d}|}yc c}w w)z
    Sets given cookies.

    :param cookies: Cookies to be set.
    :param browser_context_id: *(Optional)* Browser context to use when called on the browser endpoint.
    r   NrI   zStorage.setCookiesrA   r;   r   )r   rK   rC   rL   rF   r"   s         r   set_cookiesrP   i   s_      &F.566F9%%7%?%?%A!"&H >D 7s   AA*Ac              #  \   K   t               }| | j                         |d<   d|d}|}yw)z
    Clears cookies.

    :param browser_context_id: *(Optional)* Browser context to use when called on the browser endpoint.
    NrI   zStorage.clearCookiesrA   rO   )rK   rC   rF   r"   s       r   clear_cookiesrR   ~   s?      &F%%7%?%?%A!"(H >Ds   *,c              #     K   t               }| |d<   d|d}|}t        |d         t        |d         |d   D cg c]  }t        j                  |       c}fS c c}w w)a  
    Returns usage and quota in bytes.

    :param origin: Security origin.
    :returns: A tuple with the following items:

        0. **usage** - Storage usage (bytes).
        1. **quota** - Storage quota (bytes).
        2. **usageBreakdown** - Storage usage per type (bytes).
    r?   zStorage.getUsageAndQuotarA   r8   quotausageBreakdown)r;   r7   r5   r#   )r?   rC   rF   r"   rL   s        r   get_usage_and_quotarV      sv      &FF8,H >Dd7md7m,01A,BCq			"C  	Ds   :A!A	A!c              #  <   K   t               }| |d<   d|d}|}yw)z
    Registers origin to be notified when an update occurs to its cache storage list.

    :param origin: Security origin.
    r?   z"Storage.trackCacheStorageForOriginrA   NrD   r?   rC   rF   r"   s       r   track_cache_storage_for_originrY      s/      &FF86H >D   c              #  <   K   t               }| |d<   d|d}|}yw)zv
    Registers origin to be notified when an update occurs to its IndexedDB.

    :param origin: Security origin.
    r?   zStorage.trackIndexedDBForOriginrA   NrD   rX   s       r   track_indexed_db_for_originr\      s/      &FF83H >DrZ   c              #  <   K   t               }| |d<   d|d}|}yw)zq
    Unregisters origin from receiving notifications for cache storage.

    :param origin: Security origin.
    r?   z$Storage.untrackCacheStorageForOriginrA   NrD   rX   s       r    untrack_cache_storage_for_originr^      s/      &FF88H >DrZ   c              #  <   K   t               }| |d<   d|d}|}yw)zm
    Unregisters origin from receiving notifications for IndexedDB.

    :param origin: Security origin.
    r?   z!Storage.untrackIndexedDBForOriginrA   NrD   rX   s       r   untrack_indexed_db_for_originr`      s/      &FF85H >DrZ   z"Storage.cacheStorageContentUpdatedc                  8    e Zd ZU dZded<   ded<   edd       Zy)CacheStorageContentUpdatedz0
    A cache's contents have been modified.
    strr?   
cache_namec                F     | t        |d         t        |d               S )Nr?   	cacheName)r?   rd   rc   r    s     r   r#   z$CacheStorageContentUpdated.from_json   s(    tH~&4,-
 	
r   N)r"   r   returnrb   r$   r%   r&   r'   r=   r3   r#   r   r   r   rb   rb      s%     KO
 
r   rb   zStorage.cacheStorageListUpdatedc                  .    e Zd ZU dZded<   edd       Zy)CacheStorageListUpdatedz)
    A cache has been added/deleted.
    rc   r?   c                ,     | t        |d               S Nr?   )r?   rg   r    s     r   r#   z!CacheStorageListUpdated.from_json      tH~&
 	
r   N)r"   r   rh   rk   ri   r   r   r   rk   rk           K
 
r   rk   zStorage.indexedDBContentUpdatedc                  B    e Zd ZU dZded<   ded<   ded<   edd       Zy)	IndexedDBContentUpdatedz@
    The origin's IndexedDB object store has been modified.
    rc   r?   database_nameobject_store_namec                `     | t        |d         t        |d         t        |d               S )Nr?   databaseNameobjectStoreName)r?   rr   rs   rg   r    s     r   r#   z!IndexedDBContentUpdated.from_json  s6    tH~&d>23!$'8"9:
 	
r   N)r"   r   rh   rq   ri   r   r   r   rq   rq     s,     K
 
r   rq   zStorage.indexedDBListUpdatedc                  .    e Zd ZU dZded<   edd       Zy)IndexedDBListUpdatedzA
    The origin's IndexedDB database list has been modified.
    rc   r?   c                ,     | t        |d               S rm   rg   r    s     r   r#   zIndexedDBListUpdated.from_json1  rn   r   N)r"   r   rh   rx   ri   r   r   r   rx   rx   (  ro   r   rx   )r?   rc   rE   rc   rh   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]r   )rK   )typing.Optional[browser.BrowserContextID]rh   zGtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[network.Cookie]])r   z typing.List[network.CookieParam]rK   r{   rh   rz   )rK   r{   rh   rz   )r?   rc   rh   zatyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[float, float, typing.List[UsageForType]]])r?   rc   rh   rz   )
__future__r   utilr   r   dataclassesr   enumtyping r   r	   Enumr   r5   rG   rM   rP   rR   rV   rY   r\   r^   r`   rb   rk   rq   rx   r   r   r   <module>r      s   # * !    $)) 0 
 
 
0 
8* IMBEB	NB, IM1E 
8, IME	7$	h6	7"	7"	7"	7" 12

 
  3
" ./

 
  0
 ./

 
  0
( +,

 
  -
r   