§
    xÅj6  ã                   óP  — d dl mZ d dlZd dlmZmZ d dlmZmZ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mZmZ 	  ed	¦  «        Zn# e$ r  ed
¦  «        ‚w xY wd dlmZ er&d dlmZmZmZmZ d dlmZmZm Z m!Z! d dl"m#Z# d dl$m%Z%m&Z&  G d„ de¦  «        Z'dd„Z(dd„Z)dd„Z*dS )é    )Úimport_moduleN)Úcapture_eventÚ
get_client)ÚDidNotEnableÚIntegrationÚ_check_minimum_version)Úrequest_body_within_bounds)Úignore_logger)Úshould_send_default_pii)Úcapture_internal_exceptionsÚensure_integration_enabledÚevent_from_exceptionÚhas_data_collection_enabledÚpackage_versionzariadne.graphqlzariadne is not installed)ÚTYPE_CHECKING)ÚAnyÚDictÚListÚOptional)ÚGraphQLErrorÚGraphQLResultÚGraphQLSchemaÚQueryParser)ÚDocumentNode)ÚEventÚEventProcessorc                   ó*   — e Zd ZdZedd„¦   «         ZdS )ÚAriadneIntegrationÚariadneÚreturnNc                  óˆ   — t          d¦  «        } t          t          | ¦  «         t          d¦  «         t	          ¦   «          d S )Nr   )r   r   r   r
   Ú_patch_graphql)Úversions    úPC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/ariadne.pyÚ
setup_oncezAriadneIntegration.setup_once+   s@   € å! )Ñ,Ô,ˆÝÕ1°7Ñ;Ô;Ð;å�iÑ Ô Ð åÑÔÐÐÐó    ©r    N)Ú__name__Ú
__module__Ú__qualname__Ú
identifierÚstaticmethodr%   © r&   r$   r   r   (   s7   € € € € € Ø€Jàðð ð ñ „\ðð ð r&   r   r    c                  ó’  ‡‡‡— t           j        Št           j        Št           j        Št	          t
          ‰¦  «        	 	 	 	 	 	 	 	 dˆfd	„¦   «         } t	          t
          ‰¦  «        	 	 	 	 	 	 	 	 dˆfd„¦   «         }t	          t
          ‰¦  «        	 	 	 	 	 	 	 	 dˆfd„¦   «         }| t           _        |t           _        |t           _        d S )NÚcontext_valueúOptional[Any]Úquery_parserúOptional[QueryParser]Údatar   r    r   c                 óŒ   •— t          |¦  «        }t          j        ¦   «                              |¦  «          ‰| ||¦  «        }|S )N)Ú_make_request_event_processorÚ
sentry_sdkÚget_isolation_scopeÚadd_event_processor)r/   r1   r3   Úevent_processorÚresultÚold_parse_querys        €r$   Ú_sentry_patched_parse_queryz3_patch_graphql.<locals>._sentry_patched_parse_query:   sG   ø€ õ 8¸Ñ=Ô=ˆÝÔ&Ñ(Ô(×<Ò<¸_ÑMÔMÐMà � °¸dÑCÔCˆØˆr&   ÚerrorsúList[GraphQLError]ÚargsÚkwargsr   c           	      ó¢  •—  ‰	| g|¢R i |¤Ž}t          |d         ¦  «        }t          j        ¦   «                              |¦  «         t	          ¦   «         }|                     ¦   «         rdt          ¦   «         5  | D ]:}t          ||j        t          j
        ddœ¬¦  «        \  }}t          ||¬¦  «         Œ;	 d d d ¦  «         n# 1 swxY w Y   |S ©Né   F)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)Ú_make_response_event_processorr6   r7   r8   r   Ú	is_activer   r   Úoptionsr   r+   r   )
r=   r?   r@   r:   r9   ÚclientÚerrorÚeventrH   Úold_handle_errorss
            €r$   Ú%_sentry_patched_handle_graphql_errorsz=_patch_graphql.<locals>._sentry_patched_handle_graphql_errorsF   s7  ø€ ð #Ð" 6Ð;¨DÐ;Ð;Ð;°FÐ;Ð;ˆå8¸À¼ÑCÔCˆÝÔ&Ñ(Ô(×<Ò<¸_ÑMÔMÐMå‘”ˆØ×ÒÑÔð 	4Ý,Ñ.Ô.ð 
4ð 
4Ø#ð 	4ð 	4�EÝ"6ØØ'-¤~å$6Ô$AØ',ð#ð #ð#ñ #ô #‘K�E˜4õ " %¨dÐ3Ñ3Ô3Ð3Ð3ð	4ð
4ð 
4ð 
4ñ 
4ô 
4ð 
4ð 
4ð 
4ð 
4ð 
4ð 
4øøøð 
4ð 
4ð 
4ð 
4ð ˆs   Á9>CÃCÃCr:   c           	      ó°  •—  ‰	| g|¢R i |¤Ž}t          |d         ¦  «        }t          j        ¦   «                              |¦  «         t	          ¦   «         }|                     ¦   «         rkt          ¦   «         5  | j        pg D ]:}t          ||j	        t          j        ddœ¬¦  «        \  }}t          ||¬¦  «         Œ;	 d d d ¦  «         n# 1 swxY w Y   |S rB   )rI   r6   r7   r8   r   rJ   r   r=   r   rK   r   r+   r   )
r:   r?   r@   Úquery_resultr9   rL   rM   rN   rH   Úold_handle_query_results
            €r$   Ú#_sentry_patched_handle_query_resultz;_patch_graphql.<locals>._sentry_patched_handle_query_result_   s?  ø€ ð /Ð.¨vÐG¸ÐGÐGÐGÀÐGÐGˆå8¸Àa¼ÑIÔIˆÝÔ&Ñ(Ô(×<Ò<¸_ÑMÔMÐMå‘”ˆØ×ÒÑÔð 	4Ý,Ñ.Ô.ð 
4ð 
4Ø#œ]Ð0¨bð 	4ð 	4�EÝ"6ØØ'-¤~å$6Ô$AØ',ð#ð #ð#ñ #ô #‘K�E˜4õ " %¨dÐ3Ñ3Ô3Ð3Ð3ð	4ð
4ð 
4ð 
4ñ 
4ô 
4ð 
4ð 
4ð 
4ð 
4ð 
4ð 
4øøøð 
4ð 
4ð 
4ð 
4ð Ðs   Á9ACÃCÃC)r/   r0   r1   r2   r3   r   r    r   )r=   r>   r?   r   r@   r   r    r   )r:   r   r?   r   r@   r   r    r   )Úariadne_graphqlÚparse_queryÚhandle_graphql_errorsÚhandle_query_resultr   r   )r<   rP   rT   rO   rS   r;   s      @@@r$   r"   r"   5   sH  øøø€ Ý%Ô1€OÝ'Ô=ÐÝ-ÔAÐåÕ 2°OÑDÔDð	Ø&ð	à-ð	ð ð	ð 
ð		ð 	ð 	ð 	ð 	ñ EÔDð	õ  Õ 2Ð4EÑFÔFðØ$ðØ-2ðØ>Cðà	ðð ð ð ð ñ GÔFðõ0  Õ 2Ð4KÑLÔLðØðØ#ðØ/4ðà	ðð ð ð ð ñ MÔLðð0 #>…OÔØ,Q…OÔ)Ø*M…OÔ'Ð'Ð'r&   r3   r   r   c                 ó   ‡ — dˆ fd„}|S )z*Add request data and api_target to events.rN   r   rH   údict[str, Any]r    c                 óî  •‡‡— t          ‰t          ¦  «        s| S t          ¦   «         5  	 t          ‰                     d¦  «        pi                      dd¦  «        ¦  «        }n%# t
          t          f$ r | cY cd d d ¦  «         S w xY wt          j        ¦   «         j	        }t          |¦  «        r±|d         d         }|d         Š|d         ot          t          ¦   «         |¦  «        Š‰s‰r@|                      di ¦  «        }d|d	<   ˆˆfd
„‰                     ¦   «         D ¦   «         |d<   n°|                      di ¦  «                             d¦  «        r	| d         d= n}t          ¦   «         r=t          t          ¦   «         |¦  «        r!|                      di ¦  «        }d|d	<   ‰|d<   n2|                      di ¦  «                             d¦  «        r	| d         d= d d d ¦  «         n# 1 swxY w Y   | S )NÚheaderszContent-Lengthr   Údata_collectionÚgraphqlÚ	variablesÚdocumentÚrequestÚ
api_targetc                 ó<   •— i | ]\  }}|d k    s‰r|dk    s‰¯||“ŒS )Úqueryr_   r-   )Ú.0ÚkeyÚvalueÚcollect_documentÚcollect_variabless      €€r$   ú
<dictcomp>z@_make_request_event_processor.<locals>.inner.<locals>.<dictcomp>—   sJ   ø€ ð ,ð ,ð ,á&˜C Ø 7šN˜NÐ.>˜NØ  KÒ/Ð/Ð3DÐ/ð ˜Uð 0Ð/Ð/r&   r3   )Ú
isinstanceÚdictr   ÚintÚgetÚ	TypeErrorÚ
ValueErrorr6   r   rK   r   r	   Ú
setdefaultÚitemsr   )	rN   rH   Úcontent_lengthrF   Ú
dc_graphqlÚrequest_inforh   ri   r3   s	         @@€r$   Úinnerz,_make_request_event_processor.<locals>.inner€   sŸ  øøø€ Ý˜$¥Ñ%Ô%ð 	ØˆLå(Ñ*Ô*ð $	-ð $	-ðÝ!$Ø—X’X˜iÑ(Ô(Ð.¨B×3Ò3Ð4DÀaÑHÔHñ"ô "��øõ �zÐ*ð ð ð Ø��ð$	-ð $	-ð $	-ð $	-ñ $	-ô $	-ð $	-ð $	-ð
øøøå'Ô2Ñ4Ô4Ô<ˆNå*¨>Ñ:Ô:ð -Ø+Ð,=Ô>¸yÔI�
Ø$.¨{Ô$;Ð!Ø#-Øô$ð $Oå0µ±´¸~ÑNÔNð !ð $ð 
1Ð'8ð 
1Ø#(×#3Ò#3°I¸rÑ#BÔ#B�LØ1:�L Ñ.ð,ð ,ð ,ð ,ð ,à*.¯*ª*©,¬,ð,ñ ,ô ,�L Ñ(Ð(ð —Y’Y˜y¨"Ñ-Ô-×1Ò1°&Ñ9Ô9ð 1Ø˜iÔ(¨Ð0øå(Ñ*Ô*ð -Õ/IÝ‘”˜nñ0ô 0ð -ð  %×/Ò/°	¸2Ñ>Ô>�Ø-6�˜\Ñ*Ø'+�˜VÑ$Ð$à—’˜9 bÑ)Ô)×-Ò-¨fÑ5Ô5ð -Ø˜)Ô$ VÐ,ðI$	-ð $	-ð $	-ñ $	-ô $	-ð $	-ð $	-ð $	-ð $	-ð $	-ð $	-øøøð $	-ð $	-ð $	-ð $	-ðL ˆs5   ©G*«8A$Á#G*Á$BÁ7G*ÂBÂEG*Ç*G.Ç1G.©rN   r   rH   rZ   r    r   r-   )r3   rv   s   ` r$   r5   r5   }   s)   ø€ ð*ð *ð *ð *ð *ð *ðX €Lr&   ÚresponseúDict[str, Any]c                 ó   ‡ — dˆ fd„}|S )z2Add response data to the event's response context.rN   r   rH   rZ   r    c                 óH  •— t          j        ¦   «         j        }t          ¦   «         5  t	          |¦  «        rd|d         d         v }nt          ¦   «         }|r2‰                     d¦  «        r|                      di ¦  «        }d‰i|d<   d d d ¦  «         n# 1 swxY w Y   | S )NÚoutgoing_responser]   Úhttp_bodiesr=   Úcontextsr3   rx   )r6   r   rK   r   r   r   rn   rq   )rN   rH   rF   Úcollect_responser~   rx   s        €r$   rv   z-_make_response_event_processor.<locals>.inner²   sú   ø€ Ý#Ô.Ñ0Ô0Ô8ˆÝ(Ñ*Ô*ð 	ð 	Ý*¨>Ñ:Ô:ð =à'Ø%Ð&7Ô8¸ÔGðHð !Ð õ
 $;Ñ#<Ô#<Ð àð  H§L¢L°Ñ$:Ô$:ð Ø ×+Ò+¨J¸Ñ;Ô;�à˜Hð(�˜Ñ$ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆs   ¨A#BÂBÂBrw   r-   )rx   rv   s   ` r$   rI   rI   ¯   s(   ø€ ðð ð ð ð ð ð& €Lr&   r'   )r3   r   r    r   )rx   ry   r    r   )+Ú	importlibr   r6   r   r   Úsentry_sdk.integrationsr   r   r   Ú$sentry_sdk.integrations._wsgi_commonr	   Úsentry_sdk.integrations.loggingr
   Úsentry_sdk.scoper   Úsentry_sdk.utilsr   r   r   r   r   rU   ÚImportErrorÚtypingr   r   r   r   r   Úariadne.typesr   r   r   r   Úgraphql.language.astr   Úsentry_sdk._typesr   r   r   r"   r5   rI   r-   r&   r$   ú<module>r‹      s<  ðØ #Ð #Ð #Ð #Ð #Ð #à Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ KÐ KÐ KÐ KÐ KÐ KØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð ð ð3ð $�mÐ$5Ñ6Ô6€O€OøØð 3ð 3ð 3Ø
ˆ,Ð1Ñ
2Ô
2Ð2ð3øøøð !Ð  Ð  Ð  Ð  Ð  àð 8Ø0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ðð ð ð ð ð ð ð ð ð ð ð ð 2Ð1Ð1Ð1Ð1Ð1à7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ð
ð 
ð 
ð 
ð 
˜ñ 
ô 
ð 
ðENð ENð ENð ENðP/ð /ð /ð /ðdð ð ð ð ð s   ¾A
 Á
A