Ë
    ÑÕ¯i	  ã                   óþ   — d dl Z d dlZd dlZd dlZd dlmZ ej                  d    dk  rd dlmZ nd dl	mZ dZ
dZg d¢ZdZ G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)é    N)Úshop_urlé   )ÚurljoinÚHS256zBearer )ÚissÚdestÚsubÚjtiÚsidé
   c                   ó   — e Zd Zy)ÚSessionTokenErrorN©Ú__name__Ú
__module__Ú__qualname__© ó    úH/var/www/html/venv/lib/python3.12/site-packages/shopify/session_token.pyr   r      ó   „ Ør   r   c                   ó   — e Zd Zy)ÚInvalidIssuerErrorNr   r   r   r   r   r      r   r   r   c                   ó   — e Zd Zy)ÚMismatchedHostsErrorNr   r   r   r   r   r      r   r   r   c                   ó   — e Zd Zy)ÚTokenAuthenticationErrorNr   r   r   r   r   r       r   r   r   c                 óL   — t        | «      }t        |||«      }t        |«       |S ©N)Ú_extract_session_tokenÚ_decode_session_tokenÚ_validate_issuer)Úauthorization_headerÚapi_keyÚsecretÚsession_tokenÚdecoded_payloads        r   Údecode_from_headerr'   $   s)   € Ü*Ð+?Ó@€MÜ+¨M¸7ÀFÓK€OÜ�_Ô%àÐr   c                 óf   — | j                  t        «      st        d«      ‚| t        t        «      d  S )NzFThe HTTP_AUTHORIZATION_HEADER provided does not contain a Bearer token)Ú
startswithÚPREFIXr   Úlen)r"   s    r   r   r   ,   s-   € Ø×*Ñ*¬6Ô2Ü&Ð'oÓpÐpà¤¤F£ Ð.Ð.r   c           	      óü   — 	 t        j                  | ||t        gt        dt        i¬«      S # t         j
                  j                  $ r2}t        j                  t        t        |«      «      |«       Y d }~y d }~ww xY w)NÚrequire)ÚaudienceÚ
algorithmsÚleewayÚoptions)ÚjwtÚdecodeÚ	ALGORITHMÚLEEWAY_SECONDSÚREQUIRED_FIELDSÚ
exceptionsÚ
PyJWTErrorÚsixÚ
raise_fromr   Ústr)r%   r#   r$   Ú	exceptions       r   r    r    3   sm   € ðEÜ�z‰zØØØÜ!�{ô "Ø¤Ð0ô	
ð 		
øô �>‰>×$Ñ$ò EÜ�‰Ô(¬¨Y«Ó8¸)×DÑDûðEús   ‚), ¬A;Á	(A6Á6A;c                 ó0   — t        | «       t        | «       y r   )Ú_validate_issuer_hostnameÚ_validate_issuer_and_dest_match)r&   s    r   r!   r!   C   s   € Ü˜oÔ.Ü# OÕ4r   c                 ób   — t        | d   d«      }t        j                  |«      st        d«      ‚y )Nr   Ú/zInvalid issuer)r   r   Úsanitize_shop_domainr   )r&   Úissuer_roots     r   r>   r>   H   s2   € Ü˜/¨%Ñ0°#Ó6€Kä×(Ñ(¨Ô5Ü Ð!1Ó2Ð2ð 6r   c                 ó`   — t        | d   d«      }t        | d   d«      }||k7  rt        d«      ‚y )Nr   rA   r   z'The issuer and destination do not match)r   r   )r&   rC   Ú	dest_roots      r   r?   r?   O   s=   € Ü˜/¨%Ñ0°#Ó6€KÜ˜¨Ñ/°Ó5€Ià�iÒÜ"Ð#LÓMÐMð  r   )r2   Úrer9   ÚsysÚshopify.utilsr   Úversion_infoÚurlparser   Úurllib.parser4   r*   r6   r5   Ú	Exceptionr   r   r   r   r'   r   r    r!   r>   r?   r   r   r   Ú<module>rM      s–   ðÛ 
Û 	Û 
Û 
å "à×Ñ�AÑ˜ÒÞ å$ð €	Ø	€Ú6€Ø€ô	˜	ô 	ô	Ð*ô 	ô	Ð,ô 	ô	Ð0ô 	òò/òEò 5ò
3óNr   