
    g                    f   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e G 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y)    )annotations   )event_classT_JSON_DICT)	dataclassN)network)service_workerc                  >    e Zd ZdZdZdZdZdZdZdZ	d Z
ed	        Zy
)ServiceNamez
    The Background Service that will be associated with the commands/events.
    Every Background Service operates independently, but they share the same
    API.
    backgroundFetchbackgroundSyncpushMessagingnotificationspaymentHandlerperiodicBackgroundSyncc                    | j                   S N)value)selfs    m/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v129/background_service.pyto_jsonzServiceName.to_json   s    zz    c                     | |      S r    clsjsons     r   	from_jsonzServiceName.from_json    s    4yr   N)__name__
__module____qualname____doc__BACKGROUND_FETCHBACKGROUND_SYNCPUSH_MESSAGINGNOTIFICATIONSPAYMENT_HANDLERPERIODIC_BACKGROUND_SYNCr   classmethodr   r   r   r   r   r      sB    
 )&O$N#M&O7  r   r   c                  <    e Zd ZU dZded<   ded<   d Zed        Zy)EventMetadatazJ
    A key-value pair for additional event information to pass along.
    strkeyr   c                V    t               }| j                  |d<   | j                  |d<   |S )Nr-   r   )dictr-   r   )r   r   s     r   r   zEventMetadata.to_json.   s(    vhhU

Wr   c                F     | t        |d         t        |d               S )Nr-   r   )r-   r   )r,   r   s     r   r   zEventMetadata.from_json4   s'    DK d7m$
 	
r   N)r   r    r!   r"   __annotations__r   r)   r   r   r   r   r+   r+   %   s,     
HJ 
 
r   r+   c                  t    e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   d Zed        Zy)BackgroundServiceEventznetwork.TimeSinceEpoch	timestampr,   originzservice_worker.RegistrationIDservice_worker_registration_idr   service
event_nameinstance_idztyping.List[EventMetadata]event_metadatastorage_keyc                   t               }| j                  j                         |d<   | j                  |d<   | j                  j                         |d<   | j
                  j                         |d<   | j                  |d<   | j                  |d<   | j                  D cg c]  }|j                          c}|d<   | j                  |d<   |S c c}w )	Nr4   r5   serviceWorkerRegistrationIdr7   	eventName
instanceIdeventMetadata
storageKey)
r/   r4   r   r5   r6   r7   r8   r9   r:   r;   )r   r   is      r   r   zBackgroundServiceEvent.to_jsonV   s    v NN224[X.2.Q.Q.Y.Y.[*+,,..0Y OO[!--\6:6I6I J J_!--\ !Ks   Cc                    | t         j                  j                  |d         t        |d         t        j
                  j                  |d         t        j                  |d         t        |d         t        |d         |d   D cg c]  }t        j                  |       c}t        |d         	      S c c}w )
Nr4   r5   r=   r7   r>   r?   r@   rA   )r4   r5   r6   r7   r8   r9   r:   r;   )r   TimeSinceEpochr   r,   r	   RegistrationIDr   r+   )r   r   rB   s      r   r   z BackgroundServiceEvent.from_jsonb   s    ,,66tK7HItH~&+9+H+H+R+RSWXuSv+w))$y/:4,-D./@D_@UV1M33A6VD./	
 		
 Ws   
B;N)r   r    r!   r1   r   r)   r   r   r   r   r3   r3   <   sZ     &% K %BA  O  /. 
 

 

r   r3   c              #  X   K   t               }| j                         |d<   d|d}|}yw)zE
    Enables event updates for the service.

    :param service:
    r7   z BackgroundService.startObservingmethodparamsNr/   r   r7   rI   cmd_dictr   s       r   start_observingrM   p   s6      &F)F94H >D   (*c              #  X   K   t               }| j                         |d<   d|d}|}yw)zF
    Disables event updates for the service.

    :param service:
    r7   zBackgroundService.stopObservingrG   NrJ   rK   s       r   stop_observingrP      s6      &F)F93H >DrN   c              #  b   K   t               }| |d<   |j                         |d<   d|d}|}yw)za
    Set the recording state for the service.

    :param should_record:
    :param service:
    shouldRecordr7   zBackgroundService.setRecordingrG   NrJ   )should_recordr7   rI   rL   r   s        r   set_recordingrT      s@      &F*F>)F92H >Ds   -/c              #  X   K   t               }| j                         |d<   d|d}|}yw)zF
    Clears all stored data for the service.

    :param service:
    r7   zBackgroundService.clearEventsrG   NrJ   rK   s       r   clear_eventsrV      s6      &F)F91H >DrN   z'BackgroundService.recordingStateChangedc                  8    e Zd ZU dZded<   ded<   edd       Zy)	RecordingStateChangedzK
    Called when the recording state for the service has been updated.
    boolis_recordingr   r7   c                Z     | t        |d         t        j                  |d               S )NisRecordingr7   )rZ   r7   )rY   r   r   r   s     r   r   zRecordingStateChanged.from_json   s.    d=12))$y/:
 	
r   N)r   r   returnrX   r   r    r!   r"   r1   r)   r   r   r   r   rX   rX      s'     
 
r   rX   z0BackgroundService.backgroundServiceEventReceivedc                  .    e Zd ZU dZded<   edd       Zy)BackgroundServiceEventReceivedz
    Called with all existing backgroundServiceEvents when enabled, and all new
    events afterwards if enabled and recording.
    r3   background_service_eventc                @     | t         j                  |d               S )NbackgroundServiceEvent)ra   )r3   r   r   s     r   r   z(BackgroundServiceEventReceived.from_json   s#    %;%E%EdKcFd%e
 	
r   N)r   r   r]   r`   r^   r   r   r   r`   r`      s!     54
 
r   r`   )r7   r   r]   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])rS   rY   r7   r   r]   rd   )
__future__r   utilr   r   dataclassesr   enumtyping r   r	   Enumr   r+   r3   rM   rP   rT   rV   rX   r`   r   r   r   <module>rl      s   # * !    $)) * 
 
 
, 0
 0
 0
f	7"	7" 
8(	7" 67

 
  8
 ?@

 
  A
r   