Ë
    S>{iG9  ã                   óè  — d dl 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 d dlmZ d dlmZ d d	lmZmZ d d
lmZmZmZmZ d dlmZ 	 d dlmc 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+m,Z, er,d dl.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 d dl5m6Z6m7Z7 d dl*m8Z8 d dl9m:Z:m;Z; d dlm<Z<  ed«        G d„ de«      Z=d„ Z> G d„ de!«      Z? G d„ de?«      Z@d„ ZAd „ ZBd!„ ZCd"„ ZDd#„ ZEy# e-$ r	  ed«      ‚w xY w)$é    N)Úcached_property©Úisawaitable)Úconfigure_scopeÚ
start_span)ÚOP)ÚIntegrationÚDidNotEnable)Úignore_logger)Ú_get_installed_modules)ÚHubÚ_should_send_default_pii)Úcapture_internal_exceptionsÚevent_from_exceptionÚloggerÚparse_version)ÚTYPE_CHECKING)ÚSchema)ÚSchemaExtension)Úshould_skip_tracing)ÚSentryTracingExtensionÚSentryTracingExtensionSync)Úasync_base_viewÚsync_base_viewz#strawberry-graphql is not installed)ÚAnyÚCallableÚDictÚ	GeneratorÚListÚOptional)ÚGraphQLErrorÚGraphQLResolveInfo)ÚGraphQLHTTPResponse)ÚExecutionContextÚExecutionResult)ÚEventProcessorzstrawberry.executionc                   ó(   — e Zd ZdZdd„Zed„ «       Zy)ÚStrawberryIntegrationÚ
strawberryNc                 óN   — |dvrt        dj                  |«      «      ‚|| _        y )N)NFTz6Invalid value for async_execution: "{}" (must be bool))Ú
ValueErrorÚformatÚasync_execution)Úselfr-   s     ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sentry_sdk/integrations/strawberry.pyÚ__init__zStrawberryIntegration.__init__-   s3   € àÐ"5Ñ5ÜØH×OÑOØ#óóð ð
  /ˆÕó    c                  óÈ   — t        «       } t        | d   «      }|€t        dj                  |«      «      ‚|dk  rt        d«      ‚t	        «        t        «        t        «        y )Nzstrawberry-graphqlz)Unparsable strawberry-graphql version: {})r   éÑ   é   z-strawberry-graphql 0.209.5 or newer required.)r   r   r
   r,   Ú_patch_schema_initÚ_patch_executeÚ_patch_views)Úinstalled_packagesÚversions     r/   Ú
setup_oncez StrawberryIntegration.setup_once7   se   € ô 4Ó5ÐÜÐ 2Ð3GÑ HÓIˆàˆ?ÜØ;×BÑBÀ7ÓKóð ð �[Ò ÜÐNÓOÐOäÔÜÔÜ�r1   ©N)Ú__name__Ú
__module__Ú__qualname__Ú
identifierr0   Ústaticmethodr:   © r1   r/   r(   r(   *   s    „ Ø€Jó/ð ñó ñr1   r(   c                  óF   ‡— t         j                  Šˆfd„} | t         _        y )Nc                 ó¶  •— t         j                  j                  t        «      }|€ ‰| g|¢­i |¤ŽS |j	                  d«      xs g }|j
                  �|j
                  }n*t        |«      }t        j                  d|rdnd|rdnd«       |D �cg c]  }|t        t        fvr|‘Œ }}|j                  |rt        nt        «       ||d<    ‰| g|¢­i |¤ŽS c c}w )NÚ
extensionszfAssuming strawberry is running %s. If not, initialize it as StrawberryIntegration(async_execution=%s).ÚasyncÚsyncÚFalseÚTrue)r   ÚcurrentÚget_integrationr(   Úgetr-   Ú_guess_if_using_asyncr   ÚinfoÚStrawberrySentryAsyncExtensionÚStrawberrySentrySyncExtensionÚappendÚSentryAsyncExtensionÚSentrySyncExtension)r.   ÚargsÚkwargsÚintegrationrD   Úshould_use_async_extensionÚ	extensionÚold_schema_inits          €r/   Ú_sentry_patched_schema_initz7_patch_schema_init.<locals>._sentry_patched_schema_initN   sø   ø€ ä—k‘k×1Ñ1Ô2GÓHˆØÐÙ" 4Ð9¨$Ò9°&Ñ9Ð9à—Z‘Z Ó-Ò3°ˆ
à×&Ñ&Ð2Ø)4×)DÑ)DÑ&ô *?¸zÓ)JÐ&ä�K‰KØxÙ5‘¸6Ù5‘¸6ôð (ö
àØÜ2Ô4QÐRñSò ð
ˆ
ð 
ð 	×ÑÙ$>Õ ÔDWô	
ð  *ˆˆ|Ñá˜tÐ5 dÒ5¨fÑ5Ð5ùò
s   ÂC)r   r0   )rY   rX   s    @r/   r5   r5   J   s   ø€ ä—o‘o€Oô#6ðJ 2„F…Or1   c                   óR   — e Zd Zddœd„Zed„ «       Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zy)rQ   N©Úexecution_contextc                ó   — |r|| _         y y r;   r[   )r.   r\   s     r/   r0   zSentryAsyncExtension.__init__w   s   € ñ Ø%6ˆDÕ"ð r1   c                 óÈ   — | j                  | j                  j                  «      }| j                  j                  r&dj	                  | j                  j                  |«      S |S )Nz{}:{})Ú
hash_queryr\   ÚqueryÚoperation_namer,   )r.   Ú
query_hashs     r/   Ú_resource_namez#SentryAsyncExtension._resource_name€   sP   € ð —_‘_ T×%;Ñ%;×%AÑ%AÓBˆ
à×!Ñ!×0Ò0Ø—>‘> $×"8Ñ"8×"GÑ"GÈÓTÐTàÐr1   c                 óf   — t        j                  |j                  d«      «      j                  «       S )Nzutf-8)ÚhashlibÚmd5ÚencodeÚ	hexdigest)r.   r`   s     r/   r_   zSentryAsyncExtension.hash_queryŠ   s#   € ä�{‰{˜5Ÿ<™<¨Ó0Ó1×;Ñ;Ó=Ð=r1   c              #   ó\  K  — | j                   j                  | _        d}t        j                  }| j                   j
                  j                  «       j                  d«      rd}t        j                  }nE| j                   j
                  j                  «       j                  d«      rd}t        j                  }|}| j                  r|dj                  | j                  «      z  }t        j                  j                  d| j                  |dœ¬«       t        «       5 }|j                  r#|j                  j!                  ||¬«      | _        nt%        ||¬«      | _        d d d «       | j"                  j'                  d	|«       | j"                  j'                  d
| j                  «       | j"                  j'                  d| j                   j
                  «       | j"                  j'                  d| j(                  «       d –— | j"                  j+                  «        y # 1 sw Y   ŒÀxY w­w)Nr`   ÚmutationÚsubscriptionz {}zgraphql.operation)ra   Úoperation_type)ÚcategoryÚdata©ÚopÚdescriptionzgraphql.operation.typezgraphql.operation.namezgraphql.documentzgraphql.resource_name)r\   ra   Ú_operation_namer   ÚGRAPHQL_QUERYr`   ÚstripÚ
startswithÚGRAPHQL_MUTATIONÚGRAPHQL_SUBSCRIPTIONr,   r   rI   Úadd_breadcrumbr   ÚspanÚstart_childÚgraphql_spanr   Úset_datarc   Úfinish)r.   rl   rp   rq   Úscopes        r/   Úon_operationz!SentryAsyncExtension.on_operationŽ   sÈ  è ø€ à#×5Ñ5×DÑDˆÔà ˆÜ×Ñˆà×!Ñ!×'Ñ'×-Ñ-Ó/×:Ñ:¸:ÔFØ'ˆNÜ×$Ñ$‰BØ×#Ñ#×)Ñ)×/Ñ/Ó1×<Ñ<¸^ÔLØ+ˆNÜ×(Ñ(ˆBà$ˆØ×ÒØ˜5Ÿ<™<¨×(<Ñ(<Ó=Ñ=ˆKä�‰×"Ñ"Ø(à"&×"6Ñ"6Ø"0ñð 	#ô 	
ô Óð 	O %Ø�zŠzØ$)§J¡J×$:Ñ$:Ø {ð %;ó %�Õ!ô %/°"À+Ô$N�Ô!÷	Oð 	×Ñ×"Ñ"Ð#;¸^ÔLØ×Ñ×"Ñ"Ð#;¸T×=QÑ=QÔRØ×Ñ×"Ñ"Ð#5°t×7MÑ7M×7SÑ7SÔTØ×Ñ×"Ñ"Ð#:¸D×<OÑ<OÔPãà×Ñ× Ñ Õ"÷	Oð 	Oüs    ‚DH,ÄAH Å!B?H,È H)È%H,c              #   ó¨   K  — | j                   j                  t        j                  d¬«      | _        d –— | j                  j                  «        y ­w)NÚ
validationro   )r{   rz   r   ÚGRAPHQL_VALIDATEÚvalidation_spanr}   ©r.   s    r/   Úon_validatez SentryAsyncExtension.on_validate¹   sF   è ø€ à#×0Ñ0×<Ñ<Ü×"Ñ"°ð  =ó  
ˆÔó 	à×Ñ×#Ñ#Õ%ùó   ‚AAc              #   ó¨   K  — | j                   j                  t        j                  d¬«      | _        d –— | j                  j                  «        y ­w)NÚparsingro   )r{   rz   r   ÚGRAPHQL_PARSEÚparsing_spanr}   r„   s    r/   Úon_parsezSentryAsyncExtension.on_parseÃ   sF   è ø€ à ×-Ñ-×9Ñ9Ü×Ñ¨Yð :ó 
ˆÔó 	à×Ñ× Ñ Õ"ùr†   c                 ó   — t        ||«      S r;   )Ústrawberry_should_skip_tracing)r.   Ú_nextrM   s      r/   r   z(SentryAsyncExtension.should_skip_tracingÍ   s   € ä-¨e°TÓ:Ð:r1   c              �   óV   K  —  |||g|¢­i |¤Ž}t        |«      r
|ƒ d {  –—† }|S 7 Œ­wr;   r   )r.   rŽ   ÚrootrM   rS   rT   Úresults          r/   Ú_resolvezSentryAsyncExtension._resolveÑ   s5   è ø€ á�t˜TÐ3 DÒ3¨FÑ3ˆä�vÔØ!—\ˆFàˆð "ús   ‚) '¡)c              �   óÚ  K  — | j                  ||«      r  | j                  |||g|¢­i |¤Žƒ d {  –—† S dj                  |j                  |j                  «      }| j
                  j                  t        j                  dj                  |«      ¬«      5 }|j                  d|j                  «       |j                  d|j                  j                  «       |j                  d|«       |j                  ddj                  t        t        |j                  j                  «       «      «      «        | j                  |||g|¢­i |¤Žƒ d {  –—† cd d d «       S 7 �Œ*7 Œ# 1 sw Y   y xY w­w©	Nz{}.{}zresolving {}ro   zgraphql.field_namezgraphql.parent_typezgraphql.field_pathzgraphql.pathú.)r   r’   r,   Úparent_typeÚ
field_namer{   rz   r   ÚGRAPHQL_RESOLVEr|   ÚnameÚjoinÚmapÚstrÚpathÚas_list©r.   rŽ   r�   rM   rS   rT   Ú
field_pathry   s           r/   ÚresolvezSentryAsyncExtension.resolveÚ   s7  è ø€ à×#Ñ# E¨4Ô0Ø&˜Ÿ™ u¨d°DÐJ¸4ÒJÀ6ÑJ×JÐJà—^‘^ D×$4Ñ$4°d·o±oÓFˆ
à×Ñ×*Ñ*Ü×!Ñ!¨~×/DÑ/DÀZÓ/Pð +ó 
ð 	KàØ�M‰MÐ.°·±Ô@Ø�M‰MÐ/°×1AÑ1A×1FÑ1FÔGØ�M‰MÐ.°
Ô;Ø�M‰M˜.¨#¯(©(´3´s¸D¿I¹I×<MÑ<MÓ<OÓ3PÓ*QÔRà&˜Ÿ™ u¨d°DÐJ¸4ÒJÀ6ÑJ×J÷	Kñ 	Kð	 Kùð Kø÷	Kð 	Küs;   ‚.E+°E±A$E+ÂB7EÅEÅEÅE+ÅEÅE(Å$E+)r<   r=   r>   r0   r   rc   r_   r   r…   r‹   r   r’   r¡   rA   r1   r/   rQ   rQ   v   sE   „ ð ô7ð ñó ðò>ò)#òV&ò#ò;òóKr1   rQ   c                   ó   — e Zd Zd„ Zy)rR   c                 ó|  — | j                  ||«      r |||g|¢­i |¤ŽS dj                  |j                  |j                  «      }| j                  j                  t        j                  dj                  |«      ¬«      5 }|j                  d|j                  «       |j                  d|j                  j                  «       |j                  d|«       |j                  ddj                  t        t        |j                  j                  «       «      «      «        |||g|¢­i |¤Žcd d d «       S # 1 sw Y   y xY wr”   )r   r,   r–   r—   r{   rz   r   r˜   r|   r™   rš   r›   rœ   r�   rž   rŸ   s           r/   r¡   zSentrySyncExtension.resolveí   s  € à×#Ñ# E¨4Ô0Ù˜˜tÐ5 dÒ5¨fÑ5Ð5à—^‘^ D×$4Ñ$4°d·o±oÓFˆ
à×Ñ×*Ñ*Ü×!Ñ!¨~×/DÑ/DÀZÓ/Pð +ó 
ð 	6àØ�M‰MÐ.°·±Ô@Ø�M‰MÐ/°×1AÑ1A×1FÑ1FÔGØ�M‰MÐ.°
Ô;Ø�M‰M˜.¨#¯(©(´3´s¸D¿I¹I×<MÑ<MÓ<OÓ3PÓ*QÔRá˜˜tÐ5 dÒ5¨fÑ5÷	6÷ 	6ò 	6ús   Â B(D2Ä2D;N)r<   r=   r>   r¡   rA   r1   r/   rR   rR   ì   s   „ ó6r1   rR   c                  óˆ   ‡‡— t         j                  Št         j                  Šˆfd„} ˆfd„}| t         _        |t         _        y )Nc               Ÿ   óT  •K  — t         j                  }|j                  t        «      }|€ ‰| i |¤Žƒ d {  –—† S  ‰| i |¤Žƒ d {  –—† }d|v rF|j                  r:|j                  «       5 }t        |d   «      }|j                  |«       d d d «       |S |S 7 Œ`7 ŒR# 1 sw Y   |S xY w­w©Nr\   ©r   rI   rJ   r(   Úerrorsr   Ú_make_request_event_processorÚadd_event_processor)rS   rT   ÚhubrU   r‘   r~   Úevent_processorÚold_execute_asyncs          €r/   Ú_sentry_patched_execute_asyncz5_patch_execute.<locals>._sentry_patched_execute_async  s¶   øè ø€ ä�k‰kˆØ×)Ñ)Ô*?Ó@ˆØÐÙ*¨DÐ;°FÑ;×;Ð;á(¨$Ð9°&Ñ9×9ˆà &Ñ(¨V¯]ª]Ø×$Ñ$Ó&ð ;¨%Ü"?ØÐ.Ñ/ó#�ð ×)Ñ)¨/Ô:÷	;ð ˆˆvˆð <øà9ø÷;ð ˆüs9   ƒ3B(¶B·B(ÁBÁ$B(Á+ BÂB(ÂB(ÂB%Â B(c                  ó$  •— t         j                  }|j                  t        «      }|€ ‰| i |¤ŽS  ‰| i |¤Ž}d|v rF|j                  r:|j                  «       5 }t        |d   «      }|j                  |«       d d d «       |S |S # 1 sw Y   |S xY wr¦   r§   )rS   rT   r«   rU   r‘   r~   r¬   Úold_execute_syncs          €r/   Ú_sentry_patched_execute_syncz4_patch_execute.<locals>._sentry_patched_execute_sync  s£   ø€ ä�k‰kˆØ×)Ñ)Ô*?Ó@ˆØÐÙ# TÐ4¨VÑ4Ð4á! 4Ð2¨6Ñ2ˆà &Ñ(¨V¯]ª]Ø×$Ñ$Ó&ð ;¨%Ü"?ØÐ.Ñ/ó#�ð ×)Ñ)¨/Ô:÷	;ð ˆˆvˆ÷;ð ˆús   Á BÂB)Ústrawberry_schemaÚexecuteÚexecute_sync)r®   r±   r­   r°   s     @@r/   r6   r6   ÿ   s9   ù€ ä)×1Ñ1ÐÜ(×5Ñ5Ðôô$ð$ !>ÔÔØ%AÔÕ"r1   c                  óä   ‡‡‡— t         j                  j                  Št        j                  j                  Šˆˆfd„} ˆˆfd„}d„ Š| t         j                  _        |t        j                  _        y )Nc                 ó.   •—  ‰| ||«        ‰| ||«       y r;   rA   )r.   r¨   Úresponse_dataÚ_sentry_patched_handle_errorsÚold_async_view_handle_errorss      €€r/   Ú(_sentry_patched_async_view_handle_errorsz>_patch_views.<locals>._sentry_patched_async_view_handle_errors1  s   ø€ á$ T¨6°=ÔAÙ% d¨F°MÕBr1   c                 ó.   •—  ‰| ||«        ‰| ||«       y r;   rA   )r.   r¨   r·   r¸   Úold_sync_view_handle_errorss      €€r/   Ú'_sentry_patched_sync_view_handle_errorsz=_patch_views.<locals>._sentry_patched_sync_view_handle_errors6  s   ø€ á# D¨&°-Ô@Ù% d¨F°MÕBr1   c           	      óÐ  — t         j                  }|j                  t        «      }|€y |sy |j	                  «       5 }t        |«      }|j                  |«       d d d «       t        «       5  |D ]U  }t        ||j                  r|j                  j                  nd |j                  ddœ¬«      \  }}	|j                  ||	¬«       ŒW 	 d d d «       y # 1 sw Y   ŒxxY w# 1 sw Y   y xY w)NF)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)r   rI   rJ   r(   r   Ú_make_response_event_processorrª   r   r   ÚclientÚoptionsr?   Úcapture_event)
r.   r¨   r·   r«   rU   r~   r¬   ÚerrorÚeventrÃ   s
             r/   r¸   z3_patch_views.<locals>._sentry_patched_handle_errors;  sã   € ä�k‰kˆØ×)Ñ)Ô*?Ó@ˆØÐØáØà× Ñ Ó"ð 	7 eÜ<¸]ÓKˆOØ×%Ñ% oÔ6÷	7ô )Ó*ñ 
	4Øò 	4�Ü2ØØ9<¿º 3§:¡:×#5Ò#5Èà +× 6Ñ 6Ø#(ñô‘��tð ×!Ñ! %¨dÐ!Õ3ñ	4÷
	4ð 
	4÷		7ð 	7ú÷
	4ð 
	4ús   ¼CÁ+ACÃCÃC%)r   ÚAsyncBaseHTTPViewÚ_handle_errorsr   ÚSyncBaseHTTPView)rº   r½   r¸   r¹   r¼   s     @@@r/   r7   r7   ,  s^   ú€ ä#2×#DÑ#D×#SÑ#SÐ Ü"0×"AÑ"A×"PÑ"PÐõCõ
Cò
4ð6 	1ô ×%Ñ%Ô4ð 	0ô ×#Ñ#Õ2r1   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó€  •— t        «       5  t        «       rv| j                  di «      }d|d<   |j                  d«      sUd‰j                  i|d<   ‰j
                  r‰j
                  |d   d<   ‰j                  r‰j                  |d   d<   n	 | d   d= d d d «       | S # t        t        f$ r Y Œw xY w# 1 sw Y   | S xY w)NÚrequestÚgraphqlÚ
api_targetrn   r`   Ú	variablesÚoperationName)	r   r   Ú
setdefaultrK   r`   rÒ   ra   ÚKeyErrorÚ	TypeError)rÉ   rÃ   Úrequest_datar\   s      €r/   Úinnerz,_make_request_event_processor.<locals>.inner`  sÜ   ø€ ä(Ó*ñ 	Ü'Ô)Ø$×/Ñ/°	¸2Ó>�Ø-6�˜\Ñ*à#×'Ñ'¨Ô/Ø,3Ð5F×5LÑ5LÐ+M�L Ñ(à(×2Ò2Ø<M×<WÑ<W˜ VÑ,¨[Ñ9Ø(×7Ò7ð .×<Ñ<ð % VÑ,Ø+òð
Ø˜iÑ(¨Ð0÷#	ð* ˆøô !¤)Ð,ò Ùðú÷%	ð* ˆús*   ŒBB3ÂBÂB0Â-B3Â/B0Â0B3Â3B=rA   )r\   rØ   s   ` r/   r©   r©   ]  s   ø€ ôð2 €Lr1   c                 ó   ‡ — ˆ fd„}|S )Nc                 óŽ   •— t        «       5  t        «       r| j                  di «      }d‰i|d<   d d d «       | S # 1 sw Y   | S xY w)NÚcontextsrn   Úresponse)r   r   rÔ   )rÉ   rÃ   rÛ   r·   s      €r/   rØ   z-_make_response_event_processor.<locals>.inner  sN   ø€ ä(Ó*ñ 	?Ü'Ô)Ø ×+Ñ+¨J¸Ó;�Ø(.°Ð'>�˜Ñ$÷	?ð
 ˆ÷	?ð
 ˆús	   Œ$:ºArA   )r·   rØ   s   ` r/   rÄ   rÄ   |  s   ø€ ôð €Lr1   c                 óh   — t         | v ryt        | v ryt        h d£t        t	        «       «      z  «      S )NTF>   ÚfastapiÚlitestarÚstarliteÚ	starlette)rN   rO   ÚboolÚsetr   )rD   s    r/   rL   rL   ‹  s6   € ä%¨Ñ3ØÜ	&¨*Ñ	4ØäÚ8¼3Ô?UÓ?WÓ;XÑXóð r1   )Fre   Ú	functoolsr   Úinspectr   Ú
sentry_sdkr   r   Úsentry_sdk.constsr   Úsentry_sdk.integrationsr	   r
   Úsentry_sdk.integrations.loggingr   Úsentry_sdk.integrations.modulesr   Úsentry_sdk.hubr   r   Úsentry_sdk.utilsr   r   r   r   Úsentry_sdk._typesr   Ústrawberry.schema.schemaÚschemar²   r)   r   Ústrawberry.extensionsr   Ú#strawberry.extensions.tracing.utilsr   r�   Ústrawberry.extensions.tracingr   rN   r   rO   Ústrawberry.httpr   r   ÚImportErrorÚtypingr   r   r   r   r   r    rÐ   r!   r"   r#   Ústrawberry.typesr$   r%   r&   r(   r5   rQ   rR   r6   r7   r©   rÄ   rL   rA   r1   r/   ú<module>r÷      sÛ   ðÛ Ý %Ý ß 2Ý  ß =Ý 9Ý Bß 8÷ó õ ,ð>ß8Ð8Ý!Ý5Ýi÷÷ @ñ ßE×Eß8Ý3ßBÝ0ñ Ð$Ô %ô˜Kô ò@)2ôXsK˜?ô sKôl6Ð.ô 6ò&*BòZ.òbò>ó	øð_ ò >Ù
Ð<Ó
=Ð=ð>ús   Á+C# Ã#C1