§
    xÅj  ã                   ó¤  — d dl Z d dlmZmZm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mZ d dlmZ d dlmZmZmZmZ 	 d dlmZ n# e$ r dZY nw xY w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! ee"ee"eedf         f         f         Z# G d„ de¦  «        Z$d"d„Z%ddde"fd„Z&	 	 	 	 d#d„Z'd$d„Z(	 	 	 	 	 	 d%d!„Z)dS )&é    N)ÚDidNotEnableÚIntegrationÚ_check_minimum_version)Úshould_send_default_pii)Úensure_integration_enabledÚevent_from_exceptionÚhas_data_collection_enabledÚparse_version)ÚAsyncTransportÚ	Transport)ÚTransportQueryError)ÚDocumentNodeÚVariableDefinitionNodeÚget_operation_astÚ	print_ast)ÚGraphQLRequestzgql is not installed)ÚTYPE_CHECKING)ÚAnyÚDictÚTupleÚUnion)ÚEventÚEventProcessor.c                   ó*   — e Zd ZdZedd„¦   «         ZdS )ÚGQLIntegrationÚgqlÚreturnNc                  ó~   — t          t          j        ¦  «        } t          t          | ¦  «         t          ¦   «          d S )N)r
   r   Ú__version__r   r   Ú_patch_execute)Úgql_versions    úLC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/gql.pyÚ
setup_oncezGQLIntegration.setup_once1   s3   € å#¥C¤OÑ4Ô4ˆÝ�~¨{Ñ;Ô;Ð;åÑÔÐÐÐó    ©r   N)Ú__name__Ú
__module__Ú__qualname__Ú
identifierÚstaticmethodr#   © r$   r"   r   r   .   s7   € € € € € Ø€Jàðð ð ñ „\ðð ð r$   r   Údocumentr   r   ÚEventDataTypec                 ó~  — t          j        ¦   «         j        }	 t          | ¦  «        }dt	          | ¦  «        i}|�\t          |¦  «        r|d         d         d         r
|j        |d<   nt          ¦   «         r
|j        |d<   |j        �|j        j	        |d<   |S # t          t          f$ r t          ¦   «         cY S w xY w)NÚqueryÚdata_collectionÚgraphqlÚ	variablesÚoperationName)Ú
sentry_sdkÚ
get_clientÚoptionsr   r   r	   Úvariable_definitionsr   ÚnameÚvalueÚAttributeErrorÚ	TypeErrorÚdict)r,   Úclient_optionsÚoperation_astÚdatas       r"   Ú_data_from_documentr@   9   sÜ   € ÝÔ*Ñ,Ô,Ô4€NðÝ)¨(Ñ3Ô3ˆØ!(­)°HÑ*=Ô*=Ð >ˆàÐ$Ý*¨>Ñ:Ô:ð GØ!Ð"3Ô4°YÔ?ÀÔLð KØ(5Ô(J�D˜Ñ%øÝ(Ñ*Ô*ð GØ$1Ô$F��[Ñ!àÔ!Ð-Ø(5Ô(:Ô(@��_Ñ%àˆøÝ�IÐ&ð ð ð Ý‰vŒvˆˆˆðøøøs   šA?B ÂB<Â;B<Ú	transportz Union[Transport, AsyncTransport]c                 ó4   — 	 | j         S # t          $ r Y dS w xY w)zg
    The RequestsHTTPTransport allows defining the HTTP method; all
    other transports use POST.
    ÚPOST)Úmethodr:   )rA   s    r"   Ú_transport_methodrE   N   s2   € ð
ØÔÐøÝð ð ð Øˆvˆvðøøøs   ‚	 ‰
–ú&Union[Transport, AsyncTransport, None]úDict[str, str]c                 óh   — | €i S dt          | ¦  «        i}	 | j        |d<   n# t          $ r Y nw xY w|S )NrD   Úurl)rE   rI   r:   )rA   Úrequest_infos     r"   Ú_request_info_from_transportrK   Y   sb   € ð ÐØˆ	ð 	Õ# IÑ.Ô.ð€LðØ'œmˆ�UÑÐøÝð ð ð Øˆðøøøð Ðs   —
" ¢
/®/c                  ó¢   ‡— t           j        j        Št          t          ‰¦  «        	 	 	 	 	 	 	 	 	 	 d
ˆfd	„¦   «         } | t           j        _        d S )NÚselfú
gql.Clientr,   r   Úargsr   Úkwargsr   c                 ó:  •— t          j        ¦   «         }|                     t          | |¦  «        ¦  «         	  ‰| |g|¢R i |¤ŽS # t          $ rJ}t          |t          j        ¦   «         j        dddœ¬¦  «        \  }}t          j        ||¦  «         |‚d }~ww xY w)Nr   F)ÚtypeÚhandled)r=   Ú	mechanism)	r4   Úget_isolation_scopeÚadd_event_processorÚ_make_gql_event_processorr   r   r5   r6   Úcapture_event)	rM   r,   rO   rP   ÚscopeÚeÚeventÚhintÚreal_executes	           €r"   Úsentry_patched_executez._patch_execute.<locals>.sentry_patched_executeq   sÇ   ø€ õ Ô.Ñ0Ô0ˆà×!Ò!Õ";¸DÀ(Ñ"KÔ"KÑLÔLÐLð	à�<  hÐ@°Ð@Ð@Ð@¸Ð@Ð@Ð@øÝ"ð 	ð 	ð 	Ý.ØÝ)Ô4Ñ6Ô6Ô>Ø#(°UÐ;Ð;ðñ ô ‰KˆE�4õ Ô$ U¨DÑ1Ô1Ð1ØˆGøøøøð	øøøs   ¹A Á
BÁABÂB)
rM   rN   r,   r   rO   r   rP   r   r   r   )r   ÚClientÚexecuter   r   )r^   r]   s    @r"   r    r    k   s‚   ø€ Ý”:Ô%€Lõ
  ¥°Ñ=Ô=ðØðà ðð ðð ð	ð
 
ðð ð ð ð ñ >Ô=ðð. 0…C„JÔÐÐr$   ÚclientrN   Údocument_or_requestú'Union[DocumentNode, gql.GraphQLRequest]r   c                 ó   ‡ ‡— dˆ ˆfd„}|S )Nr[   r   r\   údict[str, Any]r   c                 ór  •— 	 |d         d         j         }n# t          t          f$ r d }Y nw xY w|                      di ¦  «        }|                     ddit          ‰j        ¦  «        ¥¦  «         t          j        ¦   «         j	        }t          |¦  «        r“|d         d         d         r~t          �t          ‰	t          ¦  «        r‰	j        }n‰	}t          |¦  «        |d<   |                      d	i ¦  «        }|                     d
i ¦  «        }|                     d|i|dœ¦  «         nŒt          ¦   «         r~t          �t          ‰	t          ¦  «        r‰	j        }n‰	}t          |¦  «        |d<   |                      d	i ¦  «        }|                     d
i ¦  «        }|                     d|i|dœ¦  «         | S )NÚexc_infoé   ÚrequestÚ
api_targetr1   r0   r,   r?   ÚcontextsÚresponseÚerrors)r?   rR   )rm   r:   ÚKeyErrorÚ
setdefaultÚupdaterK   rA   r4   r5   r6   r	   r   Ú
isinstancer,   r@   r   )
r[   r\   rm   ri   r=   r,   rk   rl   ra   rb   s
           €€r"   Ú	processorz,_make_gql_event_processor.<locals>.processor�   s  ø€ ð	Ø˜*Ô% aÔ(Ô/ˆFˆFøÝ¥Ð)ð 	ð 	ð 	ØˆFˆFˆFð	øøøð ×"Ò" 9¨bÑ1Ô1ˆØ�Šà˜iðå.¨vÔ/?Ñ@Ô@ðñ	
ô 	
ð 	
õ $Ô.Ñ0Ô0Ô8ˆÝ& ~Ñ6Ô6ð )	ØÐ/Ô0°Ô;¸JÔGð Ý!Ð-µ*Ø'­ñ3ô 3Ð-ð  3Ô;�H�Hà2�Hå"5°hÑ"?Ô"?�˜‘Ø ×+Ò+¨J¸Ñ;Ô;�Ø#×.Ò.¨z¸2Ñ>Ô>�Ø—’à!)¨6Ð 2Ø (ðð ñô ð øõ %Ñ&Ô&ð 	ÝÐ)­jØ#¥^ñ/ô /Ð)ð /Ô7��à.�å1°(Ñ;Ô;ˆG�F‰OØ×'Ò'¨
°BÑ7Ô7ˆHØ×*Ò*¨:°rÑ:Ô:ˆHØ�OŠOà% vÐ.Ø$ðð ñô ð ð ˆs   ƒ —-¬-)r[   r   r\   re   r   r   r+   )ra   rb   rr   s   `` r"   rW   rW   Œ   s0   øø€ ð:ð :ð :ð :ð :ð :ð :ðx Ðr$   )r,   r   r   r-   )rA   rF   r   rG   r%   )ra   rN   rb   rc   r   r   )*r4   Úsentry_sdk.integrationsr   r   r   Úsentry_sdk.scoper   Úsentry_sdk.utilsr   r   r	   r
   r   Úgql.transportr   r   Úgql.transport.exceptionsr   r1   r   r   r   r   r   ÚImportErrorÚtypingr   r   r   r   r   Úsentry_sdk._typesr   r   Ústrr-   r   r@   rE   rK   r    rW   r+   r$   r"   ú<module>r|      sÇ  ðØ Ð Ð Ð Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð/Ø€J€J€Jðð ð ð ð ð ð ð ðð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ðà&Ð&Ð&Ð&Ð&Ð&Ð&øØð ð ð Øˆˆˆðøøøøøð ð /ð /ð /Ø
ˆ,Ð-Ñ
.Ô
.Ð.ð/øøøð !Ð  Ð  Ð  Ð  Ð  àð NØ.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.à7Ð7Ð7Ð7Ð7Ð7Ð7Ð7à˜˜e C¨Ð/EÀsÐ/JÔ)KÐ$KÔLÐLÔM€Mðð ð ð ð �[ñ ô ð ðð ð ð ð*Ð!Cð Èð ð ð ð ðØ7ðàðð ð ð ð$0ð 0ð 0ð 0ðB?Øð?Ø/Xð?àð?ð ?ð ?ð ?ð ?ð ?s/   ¢A ÁA ÁA ÁAÁA ÁAÁA ÁA'