
    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    l/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/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                  j    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 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_metadatac                   t               }| j                  j                         |d<   | j                  |d<   | j                  j                         |d<   | j
                  j                         |d<   | j                  |d<   | j                  |d<   | j                  D cg c]  }|j                          c}|d<   |S c c}w )Nr4   r5   serviceWorkerRegistrationIdr7   	eventName
instanceIdeventMetadata)	r/   r4   r   r5   r6   r7   r8   r9   r:   )r   r   is      r   r   zBackgroundServiceEvent.to_jsonS   s    v NN224[X.2.Q.Q.Y.Y.[*+,,..0Y OO[!--\6:6I6I J J_ !Ks   B<c                f    | 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}      S c c}w )	Nr4   r5   r<   r7   r=   r>   r?   )r4   r5   r6   r7   r8   r9   r:   )r   TimeSinceEpochr   r,   r	   RegistrationIDr   r+   )r   r   r@   s      r   r   z BackgroundServiceEvent.from_json^   s    ,,66tK7HItH~&+9+H+H+R+RSWXuSv+w))$y/:4,-D./@D_@UV1M33A6V
 	
 Ws   
B.N)r   r    r!   r1   r   r)   r   r   r   r   r3   r3   <   sR     &% 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   rG   cmd_dictr   s       r   start_observingrK   k   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.stopObservingrE   NrH   rI   s       r   stop_observingrN   |   s6      &F)F93H >DrL   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.setRecordingrE   NrH   )should_recordr7   rG   rJ   r   s        r   set_recordingrR      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.clearEventsrE   NrH   rI   s       r   clear_eventsrT      s6      &F)F91H >DrL   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   )rX   r7   )rW   r   r   r   s     r   r   zRecordingStateChanged.from_json   s.    d=12))$y/:
 	
r   N)r   r   returnrV   r   r    r!   r"   r1   r)   r   r   r   r   rV   rV      s'     
 
r   rV   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)r_   )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])rQ   rW   r7   r   r[   rb   )
__future__r   utilr   r   dataclassesr   enumtyping r   r	   Enumr   r+   r3   rK   rN   rR   rT   rV   r^   r   r   r   <module>rj      s   # * !    $)) * 
 
 
, +
 +
 +
\	7"	7" 
8(	7" 67

 
  8
 ?@

 
  A
r   