
    f$                        d Z ddlZddlZddlZddlZddlmZ i ej        ej        ej	        ej
        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej         ej!        ej"        ej#        ej$        ej%        ej&        Z'ej        ej        ej        ej        ej        ej	        ej        ej!        ej#        d	Z(ej        ej        ej        ej%        ej        ej        ej        ej        ej	        ej        ej        ej!        ej#        ej        ej        dZ)d Z*d Z+ddZ,d	 Z-d
 Z.ddZ/d Z0d Z1d Z2d Z3 G d dej4        j5        j6                  Z7dS )z)Internal utilities common to all modules.    N)
exceptions)	i  i  i  i  i  i  i  i  i  )                        	   
                  c                    | t          j                    S t          | t           j                  r.t          j        | j                  }| |urt          d          | S t          d                    t          |                               )z3Returns a reference to an initialized App instance.NzKIllegal app argument. App instance not initialized via the firebase module.zTIllegal app argument. Argument must be of type  firebase_admin.App, but given "{0}".)firebase_adminget_app
isinstanceAppname
ValueErrorformattype)appinitialized_apps     O/var/www/html/Alfredo/env/lib/python3.11/site-packages/firebase_admin/_utils.py_get_initialized_appr   O   s    
{%'''#~)** (0::o%% D E E E

 ==CVDII=N=NP P P    c                 L    t          |           } |                     ||          S N)r   _get_service)r   r   initializers      r   get_app_servicer%   `   s%    
s
#
#CD+...r    c                     | j         t          |           S | j         }|j                                        }|j        }t          ||          \  }}d}|r || ||          }|r|nt          | ||          S )ag  Constructs a ``FirebaseError`` from the given requests error.

    This can be used to handle errors returned by Google Cloud Platform (GCP) APIs.

    Args:
        error: An error raised by the requests module while making an HTTP call to a GCP API.
        handle_func: A function that can be used to handle platform errors in a custom way. When
            specified, this function will be called with three arguments. It has the same
            signature as ```_handle_func_requests``, but may return ``None``.

    Returns:
        FirebaseError: A ``FirebaseError`` that can be raised to the user code.
    N)responsehandle_requests_errorcontentdecodestatus_code_parse_platform_error_handle_func_requests)errorhandle_funcr'   r)   r+   
error_dictmessageexcs           r   #handle_platform_error_from_requestsr3   e   s     ~$U+++~H%%''G&K/EEJ
C 6k%*55L330LLLr    c                 &   t          | t                    s)t          j        d                    |           |           S |                     d          }|                     d          }t          |          }t          |          } ||          S )zConstructs a ``FirebaseError`` from the given operation error.

    Args:
        error: An error returned by a long running operation.

    Returns:
        FirebaseError: A ``FirebaseError`` that can be raised to the user code.
    5Unknown error while making a remote service call: {0}r1   causecoder1   )r1   )r   dictr   UnknownErrorr   get_rpc_code_to_error_code_error_code_to_exception_type)r.   rpc_coder1   
error_codeerr_types        r   handle_operation_errorrA      s     eT"" &KRRSXYY   	 yy  Hii	""G(22J,Z88H8G$$$$r    c                 N    |                     d          }t          | ||          S )a|  Constructs a ``FirebaseError`` from the given GCP error.

    Args:
        error: An error raised by the requests module while making an HTTP call.
        message: A message to be included in the resulting ``FirebaseError``.
        error_dict: Parsed GCP error response.

    Returns:
        FirebaseError: A ``FirebaseError`` that can be raised to the user code or None.
    status)r;   r(   )r.   r1   r0   r8   s       r   r-   r-      s'     >>(##D 666r    c                    t          | t          j        j                  r)t          j        d                    |           |           S t          | t          j        j                  r)t          j        d                    |           |           S | j        )t          j	        d                    |           |           S |st          | j        j                  }|st          |           }t          |          } ||| | j                  S )ao  Constructs a ``FirebaseError`` from the given requests error.

    This method is agnostic of the remote service that produced the error, whether it is a GCP
    service or otherwise. Therefore, this method does not attempt to parse the error response in
    any way.

    Args:
        error: An error raised by the requests module while making an HTTP call.
        message: A message to be included in the resulting ``FirebaseError`` (optional). If not
            specified the string representation of the ``error`` argument is used as the message.
        code: A GCP error code that will be used to determine the resulting error type (optional).
            If not specified the HTTP status code on the error response is used to determine a
            suitable error code.

    Returns:
        FirebaseError: A ``FirebaseError`` that can be raised to the user code.
    z'Timed out while making an API call: {0}r6   z%Failed to establish a connection: {0}Nr5   )r1   r7   http_response)r   requestsr   TimeoutDeadlineExceededErrorr   ConnectionErrorUnavailableErrorr'   r:   _http_status_to_error_coder+   strr=   )r.   r1   r8   r@   s       r   r(   r(      s!   $ %,455 /=DDUKK   	 %,<== *;BB5II   	 ~&KRRSXYY   	  F)%.*DEE e**,T22H8G5OOOOr    c                 L    t                               | t          j                  S )z-Maps an HTTP status to a platform error code.)_HTTP_STATUS_TO_ERROR_CODEr;   r   UNKNOWN)rC   s    r   rK   rK      s    %))&*2DEEEr    c                 L    t                               | t          j                  S )z*Maps an RPC code to a platform error code.)_RPC_CODE_TO_ERROR_CODEr;   r   rO   )r>   s    r   r<   r<      s    "&&x1CDDDr    c                 L    t                               | t          j                  S )z0Maps a platform error code to an exception type.)_ERROR_CODE_TO_EXCEPTION_TYPEr;   r   r:   )r8   s    r   r=   r=      s    (,,T:3JKKKr    c                    i }	 t          j        |           }t          |t                    r|}n# t          $ r Y nw xY w|                    di           }|                    d          }|sd                    ||           }||fS )a(  Parses an HTTP error response from a Google Cloud Platform API and extracts the error code
    and message fields.

    Args:
        content: Decoded content of the response body.
        status_code: HTTP status code.

    Returns:
        tuple: A tuple containing error code and message.
    r.   r1   z4Unexpected HTTP response with status: {0}; body: {1})jsonloadsr   r9   r   r;   r   )r)   r+   dataparsed_bodyr0   msgs         r   r,   r,      s     Dj))k4(( 	D    '2&&J
..
#
#C bDKKKY`aas?s   +0 
==c                       e Zd ZdZd Zd ZdS )EmulatorAdminCredentialsz Credentials for use with the firebase local emulator.

    This is used instead of user-supplied credentials or ADC.  It will silently do nothing when
    asked to refresh credentials.
    c                 f    t           j        j        j                            |            d| _        d S )Nowner)googleauthcredentialsCredentials__init__token)selfs    r   rb   z!EmulatorAdminCredentials.__init__   s)    +44T:::


r    c                     d S r"    )rd   requests     r   refreshz EmulatorAdminCredentials.refresh  s    r    N)__name__
__module____qualname____doc__rb   rh   rf   r    r   r[   r[      s<         
      r    r[   r"   )NN)8rl   rU   google.authr^   rF   r   r   INVALID_ARGUMENTInvalidArgumentErrorFAILED_PRECONDITIONFailedPreconditionErrorOUT_OF_RANGEOutOfRangeErrorUNAUTHENTICATEDUnauthenticatedErrorPERMISSION_DENIEDPermissionDeniedError	NOT_FOUNDNotFoundErrorABORTEDAbortedErrorALREADY_EXISTSAlreadyExistsErrorCONFLICTConflictErrorRESOURCE_EXHAUSTEDResourceExhaustedError	CANCELLEDCancelledError	DATA_LOSSDataLossErrorrO   r:   INTERNALInternalErrorUNAVAILABLErJ   DEADLINE_EXCEEDEDrH   rS   rN   rQ   r   r%   r3   rA   r-   r(   rK   r<   r=   r,   r_   r`   ra   r[   rf   r    r   <module>r      s   0 /           % % % % % %!!@!"J$F! Z7! 
 ?	!
  *"B! *2! 
/! z<! 1! !:#D! *3! *2! 
/! 1! J7!   *"B!! * 
	$		#		%						'		&				
 
  "# #$%"  &P P P"/ / /
M M M M8% % %*7 7 7%P %P %P %PPF F FE E EL L L
  :    v{6B     r    