Ë
    S>{ið=  ã                   ón  — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZ d d	lmZmZmZmZmZ d d
lmZ d dlmZ d dlmZmZ d dlmZ er7d dlmZ d dlm Z  d dlm!Z! d dlm"Z" d dlm#Z# d dlm$Z$m%Z%m&Z&  e!de"de f   ¬«      Z'dZ(dZ)d„ Z*d„ Z+d„ Z, G d„ de«      Z-d„ Z.d„ Z/d „ Z0d!„ Z1y)"é    N)Údeepcopy)Ú	timedelta)Úenviron)Úcontinue_trace)ÚOP)ÚHubÚ_should_send_default_pii)ÚTRANSACTION_SOURCE_COMPONENT)ÚAnnotatedValueÚcapture_internal_exceptionsÚevent_from_exceptionÚloggerÚTimeoutThread)ÚIntegration)Ú_filter_headers)Údatetime_utcnowÚreraise)ÚTYPE_CHECKING)Údatetime)ÚAny)ÚTypeVar)ÚCallable)ÚOptional)ÚEventProcessorÚEventÚHintÚF.)ÚboundiÜ  g     @�@c                 ó   ‡ — ˆ fd„}|S )Nc                  óÖ  •— t         j                  }|j                  t        «      }|€ ‰	| i |¤ŽS |j                  }t        «       5  |j                  «       5 }|j                  «        d d d «       t        j                  «       }|r<t        |«      r1t        ||j                  dddœ¬«      \  }}|j                  ||¬«       d d d «        ‰	| i |¤ŽS # 1 sw Y   ŒkxY w# 1 sw Y   ŒxY w)NÚ
aws_lambdaF©ÚtypeÚhandled©Úclient_optionsÚ	mechanism©Úhint)r   ÚcurrentÚget_integrationÚAwsLambdaIntegrationÚclientr   Úconfigure_scopeÚclear_breadcrumbsÚsysÚexc_infoÚallr   ÚoptionsÚcapture_event)
ÚargsÚkwargsÚhubÚintegrationr-   Úscoper1   Úsentry_eventr)   Ú
init_errors
            €ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sentry_sdk/integrations/aws_lambda.pyÚsentry_init_errorz+_wrap_init_error.<locals>.sentry_init_error(   sè   ø€ ô �k‰kˆØ×)Ñ)Ô*>Ó?ˆØÐÙ˜tÐ. vÑ.Ð.ð —‘ˆä(Ó*ñ 	;Ø×$Ñ$Ó&ð *¨%Ø×'Ñ'Ô)÷*ô —|‘|“~ˆHÙœC œMÜ%9ØØ#)§>¡>Ø'3ÀÑFô&Ñ"�˜dð
 ×!Ñ! ,°TÐ!Ô:÷	;ñ ˜4Ð* 6Ñ*Ð*÷*ð *ú÷	;ð 	;ús%   ÁCÁCÁ)ACÃC	ÃCÃC(© )r;   r=   s   ` r<   Ú_wrap_init_errorr?   &   s   ø€ ô+ð4 Ðó    c                 ó   ‡ — ˆ fd„}|S )Nc           
      ó‚  •— t        | t        «      r| d   }t        | «      }n| }d}t        |t        «      si }t        j
                  }|j                  t        «      }|€ ‰| |g|¢­i |¤ŽS |j                  }|j                  «       }	|j                  «       5 }
d }t        «       5  |
j                  «        |
j                  t        |||	«      «       |
j                  d|j                   j#                  d«      d   «       |dkD  r$|
j                  dd«       |
j                  d|«       |j$                  r<|	t&        kD  r3|	t&        z
  t(        z  }t+        ||	t(        z  «      }|j-                  «        d d d «       |j/                  d	«      }|€i }t1        |t2        j4                  |j6                  t8        ¬
«      }|j;                  || |dœ¬«      5  	  ‰| |g|¢­i |¤Ž|r|j=                  «        cd d d «       cd d d «       S # 1 sw Y   Œ’xY w# t>        $ rP tA        jB                  «       }tE        ||jF                  dddœ¬«      \  }}|jI                  ||¬«       tK        |Ž  Y nw xY w	 |r)|j=                  «        n# |r|j=                  «        w w xY wd d d «       n# 1 sw Y   nxY wd d d «       y # 1 sw Y   y xY w)Nr   é   Ú
aws_regionú:é   Úbatch_requestTÚ
batch_sizeÚheaders)ÚopÚnameÚsource)Ú	aws_eventÚaws_context)Úcustom_sampling_contextr!   Fr"   r%   r(   )&Ú
isinstanceÚlistÚlenÚdictr   r*   r+   r,   r-   Úget_remaining_time_in_millisÚ
push_scoper   r/   Úadd_event_processorÚ_make_request_event_processorÚset_tagÚinvoked_function_arnÚsplitÚtimeout_warningÚTIMEOUT_WARNING_BUFFERÚMILLIS_TO_SECONDSr   ÚstartÚgetr   r   ÚFUNCTION_AWSÚfunction_namer
   Ústart_transactionÚstopÚ	Exceptionr0   r1   r   r3   r4   r   )rM   rN   r5   r6   Úrequest_datarH   r7   r8   r-   Úconfigured_timer9   Útimeout_threadÚwaiting_timerI   Útransactionr1   r:   r)   Úhandlers                     €r<   Úsentry_handlerz%_wrap_handler.<locals>.sentry_handlerG   sÔ  ø€ ô �i¤Ô&Ø$ Q™<ˆLÜ˜Y›‰Jà$ˆLØˆJä˜,¬Ô-ð ˆLä�k‰kˆØ×)Ñ)Ô*>Ó?ˆØÐÙ˜9 kÐC°DÒC¸FÑCÐCð —‘ˆØ%×BÑBÓDˆà�^‰^Óð A	. Ø!ˆNÜ,Ó.ñ +Ø×'Ñ'Ô)Ø×)Ñ)Ü1Ø$ k°?óôð
 —‘Ø  +×"BÑ"B×"HÑ"HÈÓ"MÈaÑ"Pôð  ’>Ø—M‘M /°4Ô8Ø—M‘M ,°
Ô;ð
  ×/Ò/Ø'Ô*@Ò@ð (Ô*@Ñ@Ü)ñ$*�Lô &3Ø$Ø'Ô*;Ñ;ó&�Nð #×(Ñ(Ô*÷=+ð@ #×&Ñ& yÓ1ˆGàˆØ�ä(ØÜ—?‘?Ø ×.Ñ.Ü3ô	ˆKð ×&Ñ&Øà!*Ø#.ñ)ð 'ó ñ .ð.Ù" 9¨kÐK¸DÒKÀFÑKñ &Ø&×+Ñ+Ô-÷).ð .÷[A	.ñ A	.÷+ð +ûôh !ò 'Ü"Ÿ|™|›~�HÜ)=Ø Ø'-§~¡~Ø+7ÀEÑ"Jô*Ñ&�L $ð
 ×%Ñ% l¸Ð%Ô>Ü˜XÓ&ð'úð 'á%Ø&×+Ñ+Õ-øñ &Ø&×+Ñ+Õ-ð &ú÷'.÷ .ñ .ú÷[A	.÷ A	.ñ A	.ús{   ÂJ5Â&CHÅ2AJ5ÇJ ÇHÇJ Ç0	J5ÈH	ÈJ5ÈAI(É%I?É'I(É(I?É,J É?JÊJ Ê	J5Ê J)	Ê%J5Ê5J>r>   )rj   rk   s   ` r<   Ú_wrap_handlerrl   E   s   ø€ ôd.ðL Ðr@   c                  ó°   — t        «       5  t        j                  } | j                  t        «      }|�| j                  «        d d d «       y # 1 sw Y   y xY w©N)r   r   r*   r+   r,   Úflush)r7   r8   s     r<   Ú_drain_queuerp   °   sH   € ä	$Ó	&ñ Ü�k‰kˆØ×)Ñ)Ô*>Ó?ˆØÐ"ð �I‰IŒK÷÷ ñ ús   ‹8AÁAc                   ó(   — e Zd ZdZdd„Zed„ «       Zy)r,   r!   c                 ó   — || _         y rn   )r[   )Úselfr[   s     r<   Ú__init__zAwsLambdaIntegration.__init__¾   s
   € à.ˆÕr@   c                  ó~  ‡‡‡— t        «       } | st        j                  d«       y t        | d«      st        j                  d«       y t        | d«      }|rI| j                  Šˆfd„}|| _        | j
                  Šˆfd„}|| _        | j                  Šˆfd„}|| _        y t        | j                  j                  «      | j                  _	        | j                  Šˆfd„}|| _        d	„ } || j                  j                  «      | j                  _
         || j                  j                  «      | j                  _        y )
NzfNot running in AWS Lambda environment, AwsLambdaIntegration disabled (could not find bootstrap module)Úhandle_event_requestzjNot running in AWS Lambda environment, AwsLambdaIntegration disabled (could not find handle_event_request)Úhandle_http_requestc                 ó2   •— t        | «      }  ‰| g|¢­i |¤ŽS rn   ©rl   )Úrequest_handlerr5   r6   Úold_handle_event_requests      €r<   Úsentry_handle_event_requestzDAwsLambdaIntegration.setup_once.<locals>.sentry_handle_event_requestÚ   s"   ø€ ä"/°Ó"@�Ù/°ÐQÀ$ÒQÈ&ÑQÐQr@   c                 ó2   •— t        | «      }  ‰| g|¢­i |¤ŽS rn   ry   )rz   r5   r6   Úold_handle_http_requests      €r<   Úsentry_handle_http_requestzCAwsLambdaIntegration.setup_once.<locals>.sentry_handle_http_requestã   s"   ø€ ä"/°Ó"@�Ù.¨ÐPÀÒPÈÑPÐPr@   c                  ó(   •— t        «         ‰| i |¤ŽS rn   ©rp   )r5   r6   Úold_to_jsons     €r<   Úsentry_to_jsonz7AwsLambdaIntegration.setup_once.<locals>.sentry_to_jsonï   s   ø€ ä”Ù" DÐ3¨FÑ3Ð3r@   c                 ó4   •— t        |«      } ‰| |g|¢­i |¤ŽS rn   ry   )Úlambda_runtime_clientrz   r5   r6   r{   s       €r<   r|   zDAwsLambdaIntegration.setup_once.<locals>.sentry_handle_event_requestü   s1   ø€ ô #0°Ó"@�Ù/Ø)¨?ðØ=AòØEKñð r@   c                 ó   ‡ — ˆ fd„}|S )Nc                  ó(   •— t        «         ‰| i |¤ŽS rn   r�   )r5   r6   Úfs     €r<   ÚinnerzKAwsLambdaIntegration.setup_once.<locals>._wrap_post_function.<locals>.inner  s   ø€ ä ”NÙ˜dÐ- fÑ-Ð-r@   r>   )rˆ   r‰   s   ` r<   Ú_wrap_post_functionz<AwsLambdaIntegration.setup_once.<locals>._wrap_post_function	  s   ø€ ô.ð
 �r@   )Úget_lambda_bootstrapr   ÚwarningÚhasattrrv   rw   Úto_jsonr?   ÚLambdaRuntimeClientÚpost_init_errorÚpost_invocation_resultÚpost_invocation_error)	Úlambda_bootstrapÚpre_37r|   r   rƒ   rŠ   r{   r~   r‚   s	         @@@r<   Ú
setup_oncezAwsLambdaIntegration.setup_onceÂ   sK  ú€ ô 0Ó1ÐÙÜ�N‰NðRôð äÐ'Ð)?Ô@Ü�N‰NðVôð äÐ)Ð+@ÓAˆáØ'7×'LÑ'LÐ$ôRð
 5PÐÔ1à&6×&JÑ&JÐ#ôQð
 4NÐÔ0ð
 +×2Ñ2ˆKô4ð
 (6ÐÕ$äCSØ ×4Ñ4×DÑDóDÐ×0Ñ0Ô@ð (8×'LÑ'LÐ$ôð 5PÐÔ1ò
ñ $Ø$×8Ñ8×OÑOóð ×0Ñ0ÔGñ $Ø$×8Ñ8×NÑNóð ×0Ñ0ÕFr@   N)F)Ú__name__Ú
__module__Ú__qualname__Ú
identifierrt   Ústaticmethodr•   r>   r@   r<   r,   r,   »   s"   „ Ø€Jó/ð ñXó ñXr@   r,   c                  ó<  — dt         j                  v rt         j                  d   S dt         j                  v ret         j                  d   } t        | d«      r,t        | j                  d«      r| j                  j                  S t        | d«      r| j                  S | S y )NÚ	bootstrapÚ__main__Úawslambdaricmain)r0   Úmodulesr�   rž   rœ   )Úmodules    r<   r‹   r‹     sŠ   € ð( ”c—k‘kÑ!Ü�{‰{˜;Ñ'Ð'Ø	”s—{‘{Ñ	"Ü—‘˜ZÑ(ˆä�6Ð-Ô.´7Ø×#Ñ# [ô4
ð ×*Ñ*×4Ñ4Ð4Ü�V˜[Ô)à×#Ñ#Ð#ð ˆàr@   c                 ó2   ‡ ‡‡— t        «       }|fˆˆ ˆfd„	}|S )Nc                 ó@  •— ‰j                  «       }‰|z
  }| j                  di «      }‰j                  ‰j                  ‰j                  ‰j
                  ||dœ|d<   t        ‰|«      ‰j                  ‰j                  dœ|d<   | j                  di «      }d‰v r‰d   |d<   t        ‰‰«      |d	<   d
‰v r‰d
   |d<   d‰v rt        ‰d   «      |d<   t        «       r‹| j                  di «      }‰j                  d«      }|€i }|j                  d«      }	|	�|j                  d|	«       |j                  d«      }
|
�|j                  d|
«       d‰v r?‰j                  dd«      |d<   n)‰j                  dd «      rt        j                  «       |d<   t        |«      | d<   | S )NÚextra)ra   Úfunction_versionrY   Úaws_request_idÚexecution_duration_in_millisÚremaining_time_in_millisÚlambda)ÚurlÚ	log_groupÚ
log_streamzcloudwatch logsÚrequestÚ
httpMethodÚmethodr©   ÚqueryStringParametersÚquery_stringrI   ÚuserÚidentityÚuserArnÚidÚsourceIpÚ
ip_addressÚbodyÚ Údata)rT   Ú
setdefaultra   r¤   rY   r¥   Ú_get_cloudwatch_logs_urlÚlog_group_nameÚlog_stream_namer_   Ú_get_urlr   r	   r   Úremoved_because_raw_datar   )r:   r)   Ú
start_timeÚremaining_time_in_milisÚexec_durationr£   r¬   Ú	user_infor²   r´   ÚiprN   rM   Úconfigured_timeouts              €€€r<   Úevent_processorz6_make_request_event_processor.<locals>.event_processorI  sÈ  ø€ à"-×"JÑ"JÓ"LÐØ*Ð-DÑDˆà×'Ñ'¨°Ó4ˆà(×6Ñ6Ø +× <Ñ <Ø$/×$DÑ$DØ)×8Ñ8Ø,9Ø(?ñ
ˆˆh‰ô ,¨K¸ÓDØ$×3Ñ3Ø%×5Ñ5ñ$
ˆÐÑ ð ×"Ñ" 9¨bÓ1ˆà˜9Ñ$Ø )¨,Ñ 7ˆG�HÑä! )¨[Ó9ˆ�‰à" iÑ/Ø&/Ð0GÑ&HˆG�NÑ#à˜	Ñ!Ü!0°¸9Ñ1EÓ!FˆG�IÑä#Ô%Ø$×/Ñ/°¸Ó;ˆIà —}‘} ZÓ0ˆHØÐØ�à—‘˜iÓ(ˆBØˆ~Ø×$Ñ$ T¨2Ô.à—‘˜jÓ)ˆBØˆ~Ø×$Ñ$ \°2Ô6à˜Ñ"Ø"+§-¡-°¸Ó";�˜’à�}‰}˜V TÔ*ô #1×"IÑ"IÓ"K�˜‘ä"*¨7Ó"3ˆ�YÑàÐr@   )r   )rM   rN   rÅ   rÀ   rÆ   s   ```  r<   rW   rW   E  s   ú€ ä Ó"€Jà7A÷ ;ðz Ðr@   c                 ó   — | j                  dd «      }| j                  d«      }|€i }|j                  dd «      }|j                  dd «      }|r|r|rdj                  |||«      S dj                  |j                  «      S )NÚpathrI   ÚHostzX-Forwarded-Protoz	{}://{}{}zawslambda:///{})r_   Úformatra   )rM   rN   rÈ   rI   ÚhostÚprotos         r<   r¾   r¾   ‰  s~   € à�=‰=˜ Ó&€Dà�m‰m˜IÓ&€GØ€Øˆà�;‰;�v˜tÓ$€DØ�K‰KÐ+¨TÓ2€EÙ‘™$Ø×!Ñ! %¨¨tÓ4Ð4Ø×#Ñ# K×$=Ñ$=Ó>Ð>r@   c                 ó2  — d}t        j                  dd«      }dj                  |j                  d«      rdnd|| j                  | j
                  |t        d¬	«      z
  j                  |«      t        «       t        d
¬	«      z   j                  |«      ¬«      }|S )zË
    Generates a CloudWatchLogs console URL based on the context object

    Arguments:
        aws_context {Any} -- context from lambda handler

    Returns:
        str -- AWS Console URL to logs.
    z%Y-%m-%dT%H:%M:%SZÚ
AWS_REGIONr¸   z�https://console.{domain}/cloudwatch/home?region={region}#logEventViewer:group={log_group};stream={log_stream};start={start_time};end={end_time}zcn-zamazonaws.cnzaws.amazon.comrC   )Úsecondsé   )ÚdomainÚregionrª   r«   rÀ   Úend_time)	r   r_   rÊ   Ú
startswithr¼   r½   r   Ústrftimer   )rN   rÀ   ÚformatstringrÒ   r©   s        r<   r»   r»   ˜  s–   € ð (€LÜ�[‰[˜ rÓ*€Fð	-÷ �fØ!'×!2Ñ!2°5Ô!9‰~Ð?OØØ×,Ñ,Ø×.Ñ.Ø¤°1Ô!5Ñ5×?Ñ?ÀÓMÜ!Ó#¤i¸Ô&:Ñ:×DÑDÀ\ÓRð ó ð	 ð €Jr@   )2r0   Úcopyr   r   r   Úosr   Úsentry_sdk.apir   Úsentry_sdk.constsr   Úsentry_sdk.hubr   r	   Úsentry_sdk.tracingr
   Úsentry_sdk.utilsr   r   r   r   r   Úsentry_sdk.integrationsr   Ú$sentry_sdk.integrations._wsgi_commonr   Úsentry_sdk._compatr   r   Úsentry_sdk._typesr   Útypingr   r   r   r   r   r   r   r   r\   r]   r?   rl   rp   r,   r‹   rW   r¾   r»   r>   r@   r<   ú<module>rã      s§   ðÛ 
Ý Ý Ý å )Ý  ß 8Ý ;÷õ õ 0Ý @ß 7Ý +áÝ!ÝÝÝÝç=Ñ=á�˜8 C¨ HÑ-Ô.€Að Ð ØÐ òò>hòVô`˜;ô `òF$òNAòH?ór@   