Ë
    lŸKjl  ã                  óz   — d Z ddlmZ ddlmZ ddlmZ ddlmZ erddlm	Z	 e G d„ d	«      «       Z
 G d
„ d«      Zy)zc
authlib.oauth2.rfc6749.endpoint
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Base class for OAuth2 endpoints.
é    )Úannotations)Ú	dataclass)ÚTYPE_CHECKING)ÚAnyé   )ÚOAuth2Requestc                  ó*   — e Zd ZU dZded<   dZded<   y)ÚEndpointRequestzåBase class for validated endpoint requests.

    This object is returned by :meth:`Endpoint.validate_request` and contains
    all validated information from the endpoint request. Subclasses add
    endpoint-specific fields.
    r   ÚrequestNr   Úclient)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   © ó    úp/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/authlib/oauth2/rfc6749/endpoint.pyr
   r
      s   … ñð ÓØ€FˆCÔr   r
   c                  ó^   — e Zd ZU dZdZded<   dd„Zd„ Zdd„Z	 	 	 	 dd„Z		 	 	 	 dd	„Z
dd
„Zy)ÚEndpointaŠ  Base class for OAuth2 endpoints.

    Supports two modes of operation:

    **Automatic mode** (non-interactive endpoints):
        Call ``server.create_endpoint_response(name)`` which validates the request
        and creates the response in one step.

    **Interactive mode** (endpoints requiring user confirmation):
        1. Call ``server.validate_endpoint_request(name)`` to get a validated request
        2. Handle user interaction (e.g., show confirmation page)
        3. Call ``server.create_endpoint_response(name, validated_request)`` to complete

    Subclasses must implement :meth:`validate_request` and :meth:`create_response`.
    Nz
str | NoneÚENDPOINT_NAMEc                ó   — || _         y ©N)Úserver)Úselfr   s     r   Ú__init__zEndpoint.__init__3   s	   € Øˆr   c                ó8   — | j                   j                  |«      S )z+Convert framework request to OAuth2Request.)r   Úcreate_oauth2_request©r   r   s     r   Úcreate_endpoint_requestz Endpoint.create_endpoint_request6   s   € à{‰{×0Ñ0°Ó9Ð9r   c                ó   — t        «       ‚)zâValidate the request and return a validated request object.

        :param request: The OAuth2Request to validate
        :returns: EndpointRequest with validated data
        :raises OAuth2Error: If validation fails
        ©ÚNotImplementedErrorr   s     r   Úvalidate_requestzEndpoint.validate_request:   s   € ô "Ó#Ð#r   c                ó   — t        «       ‚)züCreate the HTTP response from a validated request.

        :param validated_request: The validated EndpointRequest
        :returns: Tuple of (status_code, body, headers), or None if the
            application should provide its own response
        r"   )r   Úvalidated_requests     r   Úcreate_responsezEndpoint.create_responseC   s   € ô "Ó#Ð#r   c                óF   — | j                  |«      }| j                  |«      S )z¸Validate and respond in one step (non-interactive mode).

        :param request: The OAuth2Request to process
        :returns: Tuple of (status_code, body, headers), or None
        )r$   r'   )r   r   Ú	validateds      r   Úcreate_endpoint_responsez!Endpoint.create_endpoint_responseN   s%   € ð ×)Ñ)¨'Ó2ˆ	Ø×#Ñ# IÓ.Ð.r   c                ó$   — | j                  |«      S r   )r*   r   s     r   Ú__call__zEndpoint.__call__Y   s   € Ø×,Ñ,¨WÓ5Ð5r   r   )r   r   Úreturnr
   )r&   r
   r-   útuple[int, Any, list] | None)r   r   r-   r.   )r   r   r   r   r   r   r   r    r$   r'   r*   r,   r   r   r   r   r      sQ   … ñð" !%€M:Ó$óò:ó$ð	$Ø!0ð	$à	%ó	$ð	/Ø$ð	/à	%ó	/ô6r   r   N)r   Ú
__future__r   Údataclassesr   Útypingr   r   Úrequestsr   r
   r   r   r   r   Ú<module>r3      sA   ðñõ #å !Ý  Ý áÝ'ð ÷	ð 	ó ð	÷;6ò ;6r   