o
    ;iP                     @   sB   d dl Z d dlZd dlmZ d dlmZmZ eG dd dZdS )    N)	dataclass)AnyDictc                   @   sx   e Zd ZU eeef ed< eeef ed< ededd fddZededefdd	Z	ed
eeef defddZ
dS )
DecodedJwtheaderpayloadtokenreturnc                 C   sV   |  d\}}}t|d d}t|d d}t|}t|}t||S )N.z==zutf-8)splitbase64urlsafe_b64decodedecodejsonloadsr   )r   
header_b64payload_b64_header_jsonpayload_jsonr   r    r   J/home/ubuntu/.local/lib/python3.10/site-packages/modal/_utils/jwt_utils.pydecode_without_verification   s   


z&DecodedJwt.decode_without_verificationdatac                 C   s   t |  d S )z7Encodes data to Base64 URL-safe format without padding.   =)r   urlsafe_b64encodeencoderstripr   )r   r   r   r   _base64url_encode   s   zDecodedJwt._base64url_encodefieldsc                 C   s6   t tddd}t t| }| d| dS )z/Encodes an Unsecured JWT (without a signature).noneJWT)algtypr
   )r   r   r   dumps)r   r   r   r   r   r   encode_without_signature!   s   z#DecodedJwt.encode_without_signatureN)__name__
__module____qualname__r   strr   __annotations__staticmethodr   r   r%   r   r   r   r   r      s   
  r   )r   r   dataclassesr   typingr   r   r   r   r   r   r   <module>   s   