o
    ҷhU                      @  sF  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	 d	ejZeG d
d dZd5ddZ	d6d7ddZ	d6d8ddZ	d6d9ddZd:dd Zd;d!d"Zd;d#d$Zd;d%d&Zd;d'd(Zed)eG d*d+ d+Zed,eG d-d. d.Zed/eG d0d1 d1Zed2eG d3d4 d4ZdS )<    )annotations   )event_classT_JSON_DICT)	dataclassN)browser)networkc                   @  sP   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d Zedd ZdS )StorageTypez)
    Enum of possible storage types.
    appcachecookiesfile_systems	indexeddblocal_storageshader_cachewebsqlservice_workerscache_storageallotherc                 C  s   | j S N)value)self r   a/var/www/html/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v85/storage.pyto_json    s   zStorageType.to_jsonc                 C  s   | |S r   r   clsjsonr   r   r   	from_json#   s   zStorageType.from_jsonN)__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	      s     r	   c                   @  s6   e Zd ZU dZded< ded< dd Zedd	 Zd
S )UsageForTypez#
    Usage for a storage type.
    r	   storage_typefloatusagec                 C  s"   t  }| j |d< | j|d< |S )NstorageTyper2   )dictr0   r   r2   )r   r   r   r   r   r   3   s   
zUsageForType.to_jsonc                 C  s   | t |d t|d dS )Nr3   r2   )r0   r2   )r	   r   r1   r   r   r   r   r   9   s   
zUsageForType.from_jsonN)r   r    r!   r"   __annotations__r   r.   r   r   r   r   r   r/   (   s   
 r/   originstrstorage_typesreturn0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                 c  s,    t  }| |d< ||d< d|d}|V }dS )z
    Clears storage for origin.

    :param origin: Security origin.
    :param storage_types: Comma separated list of StorageType to clear.
    r6   storageTypeszStorage.clearDataForOriginmethodparamsNr4   )r6   r8   r>   cmd_dictr   r   r   r   clear_data_for_originA   s   

rA   browser_context_id)typing.Optional[browser.BrowserContextID]Gtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[network.Cookie]]c                 c  s>    t  }| dur|  |d< d|d}|V }dd |d D S )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.
    NbrowserContextIdzStorage.getCookiesr<   c                 S  s   g | ]}t j|qS r   )r   Cookier   .0ir   r   r   
<listcomp>f   s    zget_cookies.<locals>.<listcomp>r   r4   r   rB   r>   r@   r   r   r   r   get_cookiesU   s   	rM   r    typing.List[network.CookieParam]c                 c  sB    t  }dd | D |d< |dur| |d< d|d}|V }dS )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.
    c                 S  s   g | ]}|  qS r   )r   rG   r   r   r   rJ   t   s    zset_cookies.<locals>.<listcomp>r   NrE   zStorage.setCookiesr<   rK   )r   rB   r>   r@   r   r   r   r   set_cookiesi   s   

rO   c                 c  s0    t  }| dur|  |d< d|d}|V }dS )z
    Clears cookies.

    :param browser_context_id: *(Optional)* Browser context to use when called on the browser endpoint.
    NrE   zStorage.clearCookiesr<   rK   rL   r   r   r   clear_cookies~   s   
rP   atyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[float, float, typing.List[UsageForType]]]c                 c  sH    t  }| |d< d|d}|V }t|d t|d dd |d D fS )	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).
    r6   zStorage.getUsageAndQuotar<   r2   quotac                 S  s   g | ]}t |qS r   )r/   r   rG   r   r   r   rJ      s    z'get_usage_and_quota.<locals>.<listcomp>usageBreakdown)r4   r1   r6   r>   r@   r   r   r   r   get_usage_and_quota   s   

rU   c                 c  $    t  }| |d< d|d}|V }dS )z
    Registers origin to be notified when an update occurs to its cache storage list.

    :param origin: Security origin.
    r6   z"Storage.trackCacheStorageForOriginr<   Nr?   rT   r   r   r   track_cache_storage_for_origin      
rW   c                 c  rV   )zv
    Registers origin to be notified when an update occurs to its IndexedDB.

    :param origin: Security origin.
    r6   zStorage.trackIndexedDBForOriginr<   Nr?   rT   r   r   r   track_indexed_db_for_origin   rX   rY   c                 c  rV   )zq
    Unregisters origin from receiving notifications for cache storage.

    :param origin: Security origin.
    r6   z$Storage.untrackCacheStorageForOriginr<   Nr?   rT   r   r   r    untrack_cache_storage_for_origin   rX   rZ   c                 c  rV   )zm
    Unregisters origin from receiving notifications for IndexedDB.

    :param origin: Security origin.
    r6   z!Storage.untrackIndexedDBForOriginr<   Nr?   rT   r   r   r   untrack_indexed_db_for_origin   rX   r[   z"Storage.cacheStorageContentUpdatedc                   @  s0   e Zd ZU dZded< ded< eddd	Zd
S )CacheStorageContentUpdatedz0
    A cache's contents have been modified.
    r7   r6   
cache_namer   r   r9   c                 C  s   | t |d t |d dS )Nr6   	cacheName)r6   r]   r7   r   r   r   r   r      s   

z$CacheStorageContentUpdated.from_jsonN)r   r   r9   r\   r   r    r!   r"   r5   r.   r   r   r   r   r   r\      s   
 r\   zStorage.cacheStorageListUpdatedc                   @  (   e Zd ZU dZded< ed
ddZd	S )CacheStorageListUpdatedz)
    A cache has been added/deleted.
    r7   r6   r   r   r9   c                 C     | t |d dS Nr6   )r6   r_   r   r   r   r   r        
z!CacheStorageListUpdated.from_jsonN)r   r   r9   rb   r`   r   r   r   r   rb     
   
 rb   zStorage.indexedDBContentUpdatedc                   @  s8   e Zd ZU dZded< ded< ded< edd	d
ZdS )IndexedDBContentUpdatedz@
    The origin's IndexedDB object store has been modified.
    r7   r6   database_nameobject_store_namer   r   r9   c                 C  s&   | t |d t |d t |d dS )Nr6   databaseNameobjectStoreName)r6   rh   ri   r_   r   r   r   r   r     s
   


z!IndexedDBContentUpdated.from_jsonN)r   r   r9   rg   r`   r   r   r   r   rg     s   
 rg   zStorage.indexedDBListUpdatedc                   @  ra   )IndexedDBListUpdatedzA
    The origin's IndexedDB database list has been modified.
    r7   r6   r   r   r9   c                 C  rc   rd   r_   r   r   r   r   r   1  re   zIndexedDBListUpdated.from_jsonN)r   r   r9   rl   r`   r   r   r   r   rl   (  rf   rl   )r6   r7   r8   r7   r9   r:   r   )rB   rC   r9   rD   )r   rN   rB   rC   r9   r:   )rB   rC   r9   r:   )r6   r7   r9   rQ   )r6   r7   r9   r:   )
__future__r   utilr   r   dataclassesr   enumtyping r   r   Enumr	   r/   rA   rM   rO   rP   rU   rW   rY   rZ   r[   r\   rb   rg   rl   r   r   r   r   <module>   sD   





