
    g$                       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 G d de	      Z
 G d d	ej                        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	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 ddZ	 	 	 	 	 	 d dZ	 	 	 	 ddZ	 	 	 	 	 	 d!dZy)"    )annotations   )event_classT_JSON_DICT)	dataclassNc                  8     e Zd ZddZedd       Z fdZ xZS )AuthenticatorIdc                    | S N selfs    c/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/web_authn.pyto_jsonzAuthenticatorId.to_json   s        c                     | |      S r   r   clsjsons     r   	from_jsonzAuthenticatorId.from_json       4yr   c                >    dj                  t        | 	               S )NzAuthenticatorId({}))formatsuper__repr__)r   	__class__s    r   r   zAuthenticatorId.__repr__   s    $++EG,<,>??r   )returnstr)r   r   r   r	   )__name__
__module____qualname__r   classmethodr   r   __classcell__)r   s   @r   r	   r	      s(      @ @r   r	   c                  *    e Zd ZdZdZd Zed        Zy)AuthenticatorProtocolu2fctap2c                    | j                   S r   valuer   s    r   r   zAuthenticatorProtocol.to_json       zzr   c                     | |      S r   r   r   s     r   r   zAuthenticatorProtocol.from_json    r   r   N)r   r    r!   U2FCTAP2r   r"   r   r   r   r   r%   r%      s%    
CE  r   r%   c                  6    e Zd ZdZdZdZdZdZd Ze	d        Z
y)	AuthenticatorTransportusbnfcblecableinternalc                    | j                   S r   r)   r   s    r   r   zAuthenticatorTransport.to_json,   r+   r   c                     | |      S r   r   r   s     r   r   z AuthenticatorTransport.from_json/   r   r   N)r   r    r!   USBNFCBLECABLEINTERNALr   r"   r   r   r   r   r0   r0   %   s4    
C
C
CEH  r   r0   c                  p    e Zd ZU ded<   ded<   dZded<   dZded<   dZded	<   dZded
<   d Ze	d        Z
y)VirtualAuthenticatorOptionsr%   protocolr0   	transportNztyping.Optional[bool]has_resident_keyhas_user_verificationautomatic_presence_simulationis_user_verifiedc                f   t               }| j                  j                         |d<   | j                  j                         |d<   | j                  | j                  |d<   | j
                  | j
                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   |S )Nr?   r@   hasResidentKeyhasUserVerificationautomaticPresenceSimulationisUserVerified)dictr?   r   r@   rA   rB   rC   rD   r   r   s     r   r   z#VirtualAuthenticatorOptions.to_jsonH   s    v==002Z NN224[  ,%)%:%:D!"%%1*.*D*DD&'--9262T2TD./  ,%)%:%:D!"r   c                    | t         j                  |d         t        j                  |d         d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d               S d       S )Nr?   r@   rF   rG   rH   rI   )r?   r@   rA   rB   rC   rD   )r%   r   r0   boolr   s     r   r   z%VirtualAuthenticatorOptions.from_jsonV   s    *44T*5EF,66tK7HI=MQU=UT$'7"89[_G\`dGd$t,A'B"CjnWtx|W|$t4Q/R*S  CG=MQU=UT$'7"89
 	
 \`
 	
r   )r   r    r!   __annotations__rA   rB   rC   rD   r   r"   r   r   r   r   r>   r>   4   s`    ##%% /3+2 4807 <@!#8? /3+2 
 
r   r>   c                  h    e Zd ZU ded<   ded<   ded<   ded<   dZd	ed
<   dZd	ed<   d Zed        Zy)
Credentialr   credential_idrM   is_resident_credentialprivate_keyint
sign_countNztyping.Optional[str]rp_iduser_handlec                    t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   | j
                  | j
                  |d<   | j                  | j                  |d<   |S )NcredentialIdisResidentCredential
privateKey	signCountrpId
userHandle)rJ   rQ   rR   rS   rU   rV   rW   rK   s     r   r   zCredential.to_jsonx   s    v#11^'+'B'B#$!--\ OO[::!::DL'!%!1!1Dr   c                     | t        |d         t        |d         t        |d         t        |d         d|v rt        |d         nd d|v rt        |d               S d       S )NrY   rZ   r[   r\   r]   r^   )rQ   rR   rS   rU   rV   rW   )r   rM   rT   r   s     r   r   zCredential.from_json   s}    d>23#'-C(D#ED./4,-'-~#d6l#43?43GD./
 	
 NR
 	
r   )	r   r    r!   rN   rV   rW   r   r"   r   r   r   r   rP   rP   b   sP       
 O #'E& )-K%,
 
 
r   rP   c               #     K   ddi} | }yw)z~
    Enable the WebAuthn domain and start intercepting credential storage and
    retrieval with a virtual authenticator.
    methodzWebAuthn.enableNr   cmd_dictr   s     r   enablerd      s      	#H >D   
c               #     K   ddi} | }yw)z&
    Disable the WebAuthn domain.
    ra   zWebAuthn.disableNr   rb   s     r   disablerg      s     
 	$H >Dre   c              #     K   t               }| j                         |d<   d|d}|}t        j                  |d         S w)zW
    Creates and adds a virtual authenticator.

    :param options:
    :returns: 
    optionsz WebAuthn.addVirtualAuthenticatorra   paramsauthenticatorId)rJ   r   r	   r   )ri   rk   rc   r   s       r   add_virtual_authenticatorrm      sM      &F)F94H >D$$T*;%<==s   ?Ac              #  X   K   t               }| j                         |d<   d|d}|}yw)zH
    Removes the given authenticator.

    :param authenticator_id:
    rl   z#WebAuthn.removeVirtualAuthenticatorrj   NrJ   r   authenticator_idrk   rc   r   s       r   remove_virtual_authenticatorrr      s9      &F 0 8 8 :F7H >D   (*c              #  ~   K   t               }| j                         |d<   |j                         |d<   d|d}|}yw)zr
    Adds the credential to the specified authenticator.

    :param authenticator_id:
    :param credential:
    rl   
credentialzWebAuthn.addCredentialrj   Nro   )rq   ru   rk   rc   r   s        r   add_credentialrv      sL      &F 0 8 8 :F%--/F<*H >Ds   ;=c              #     K   t               }| j                         |d<   ||d<   d|d}|}t        j                  |d         S w)z
    Returns a single credential stored in the given virtual authenticator that
    matches the credential ID.

    :param authenticator_id:
    :param credential_id:
    :returns: 
    rl   rY   zWebAuthn.getCredentialrj   ru   rJ   r   rP   r   rq   rQ   rk   rc   r   s        r   get_credentialrz      sY      &F 0 8 8 :F*F>*H >D\ 233s   AAc              #     K   t               }| j                         |d<   d|d}|}|d   D cg c]  }t        j                  |       c}S c c}w w)z}
    Returns all the credentials stored in the given virtual authenticator.

    :param authenticator_id:
    :returns: 
    rl   zWebAuthn.getCredentialsrj   credentialsrx   )rq   rk   rc   r   is        r   get_credentialsr~      s]      &F 0 8 8 :F+H >D-1--@AJ  #AAAs   .AAAc              #  b   K   t               }| j                         |d<   ||d<   d|d}|}yw)zn
    Removes a credential from the authenticator.

    :param authenticator_id:
    :param credential_id:
    rl   rY   zWebAuthn.removeCredentialrj   Nro   ry   s        r   remove_credentialr     sC      &F 0 8 8 :F*F>-H >D   -/c              #  X   K   t               }| j                         |d<   d|d}|}yw)z]
    Clears all the credentials from the specified device.

    :param authenticator_id:
    rl   zWebAuthn.clearCredentialsrj   Nro   rp   s       r   clear_credentialsr     s9      &F 0 8 8 :F-H >Drs   c              #  b   K   t               }| j                         |d<   ||d<   d|d}|}yw)z
    Sets whether User Verification succeeds or fails for an authenticator.
    The default is true.

    :param authenticator_id:
    :param is_user_verified:
    rl   rI   zWebAuthn.setUserVerifiedrj   Nro   )rq   rD   rk   rc   r   s        r   set_user_verifiedr   ,  sD      &F 0 8 8 :F/F,H >Dr   )r   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])ri   r>   r   z;typing.Generator[T_JSON_DICT, T_JSON_DICT, AuthenticatorId])rq   r	   r   r   )rq   r	   ru   rP   r   r   )rq   r	   rQ   r   r   z6typing.Generator[T_JSON_DICT, T_JSON_DICT, Credential])rq   r	   r   zCtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[Credential]])rq   r	   rQ   r   r   r   )rq   r	   rD   rM   r   r   )
__future__r   utilr   r   dataclassesr   enumtypingr   r	   Enumr%   r0   r>   rP   rd   rg   rm   rr   rv   rz   r~   r   r   r   r   r   r   <module>r      sU   # * !  	@c 	@	DII 	TYY  *
 *
 *
Z *
 *
 *
Z>,>	B>&)	7") 
8(4)44 
>4.B)B	JB&) 
8()	7") 
8r   