Ë
    Ü_Ëi¶  ã                  ó„   — d Z ddlmZ ddlmZmZmZmZ ddlZddl	m
Z
 ddlmZmZ erddlmZ ddlmZ dd	lmZ d
Zdd„Zy)z#MONGODB-AWS Authentication helpers.é    )Úannotations)ÚTYPE_CHECKINGÚAnyÚMappingÚTypeN©ÚBinary)ÚConfigurationErrorÚOperationFailure)Ú_ReadableBuffer)ÚAsyncConnection)ÚMongoCredentialFc              ƒ  óô  K  — 	 ddl }ddlm}m}  |d«       |j                  dk  rt        d«      ‚ G d„ d	|j                  «      }	  ||j                  | j                  | j                  | j                  j                  «      «      }|j                  d«      }d
d|dœ}	|j                  d|	«      ƒ d{  –—† }
|
}t        d«      D ]@  }|j                  |d   «      }d
|
d   |dœ}|j                  d|«      ƒ d{  –—† }|d   sŒ@ y y# t        $ r}t        d«      |‚d}~ww xY w7 Œr7 Œ-# |j                   $ r)} |d«       t#        |› d|j$                  › d�«      d‚d}~wt&        $ r
  |d«       ‚ w xY w­w)zAuthenticate using MONGODB-AWS.r   NzhMONGODB-AWS authentication requires pymongo-auth-aws: install with: python -m pip install 'pymongo[aws]')Úset_cached_credentialsÚset_use_cached_credentialsTé	   z@MONGODB-AWS authentication requires MongoDB version 4.4 or laterc                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)ú)_authenticate_aws.<locals>.AwsSaslContextc                ó   — t         S )z#Return the bson.binary.Binary type.r   )Úselfs    ú`/var/www/pod-logistic/pod-api/venv/lib/python3.12/site-packages/pymongo/asynchronous/auth_aws.pyÚbinary_typez5_authenticate_aws.<locals>.AwsSaslContext.binary_type6   s   € äˆMó    c                ó,   — t        j                  |«      S )zEncode a dictionary to BSON.)ÚbsonÚencode)r   Údocs     r   Úbson_encodez5_authenticate_aws.<locals>.AwsSaslContext.bson_encode:   s   € ä—;‘;˜sÓ#Ð#r   c                ó,   — t        j                  |«      S )zDecode BSON to a dictionary.)r   Údecode)r   Údatas     r   Úbson_decodez5_authenticate_aws.<locals>.AwsSaslContext.bson_decode>   s   € ä—;‘;˜tÓ$Ð$r   N)ÚreturnzType[Binary])r   úMapping[str, Any]r#   Úbytes)r!   r   r#   r$   )Ú__name__Ú
__module__Ú__qualname__r   r   r"   © r   r   ÚAwsSaslContextr   4   s   „ ó	ó	$ô	%r   r*   é   zMONGODB-AWS)Ú	saslStartÚ	mechanismÚpayloadz	$externalé
   r.   ÚconversationId)ÚsaslContinuer0   r.   Údonez (pymongo-auth-aws version ú))Úpymongo_auth_awsÚImportErrorr
   Úpymongo_auth_aws.authr   r   Úmax_wire_versionr*   ÚAwsCredentialÚusernameÚpasswordÚmechanism_propertiesÚaws_session_tokenÚstepÚcommandÚrangeÚPyMongoAuthAwsErrorr   Ú__version__Ú	Exception)ÚcredentialsÚconnr4   Úer   r   r*   ÚctxÚclient_payloadÚclient_firstÚserver_firstÚresÚ_ÚcmdÚexcs                  r   Ú_authenticate_awsrN       sª  è ø€ ðÛ÷ñ
 ˜tÔ$à×Ñ˜qÒ Ü Ð!cÓdÐdô%Ð)×8Ñ8ô %ð"ÙØ×*Ñ*Ø×$Ñ$Ø×$Ñ$Ø×0Ñ0×BÑBóó
ˆð Ÿ™ $›ˆØ%&°]È~Ñ^ˆØ!Ÿ\™\¨+°|ÓD×DˆØˆä�r“ò 
	ˆAØ ŸX™X c¨)¡nÓ5ˆNà !Ø".Ð/?Ñ"@Ø)ñˆCð
 Ÿ™ [°#Ó6×6ˆCØ�6‹{áñ
	øôW ò Ü ðAó
ð ð	ûðúðP Eøð 7ùð ×/Ñ/ò á˜tÔ$äØˆeÐ.Ð/?×/KÑ/KÐ.LÈAÐNó
àð	ûô ò á˜tÔ$Øðüsƒ   ‚E8„D ˆ?E8ÁA-D, Â5D(Â6AD, Ã<D*Ã=	D, ÄD, ÄE8Ä	D, Ä
E8Ä	D%ÄD Ä D%Ä%E8Ä(D, Ä*D, Ä,E5Ä;$EÅE5Å5E8)rC   r   rD   r   r#   ÚNone)Ú__doc__Ú
__future__r   Útypingr   r   r   r   r   Úbson.binaryr	   Úpymongo.errorsr
   r   Úbson.typingsr   Úpymongo.asynchronous.poolr   Úpymongo.auth_sharedr   Ú_IS_SYNCrN   r)   r   r   ú<module>rY      s3   ðñ *Ý "ç 4Ó 4ã Ý ß ?áÝ,Ý9Ý3à€ôDr   