bgi'ddlmZddlmZddlmZddlmZmZddl m Z m Z ddl m Z ddlmZmZddlmZmZ dd lmZmZmZdd lmZdd lmZdd lmZdd lmZddl m!Z!m"Z"m#Z#er0ddlm$Z$m%Z%m&Z&m'Z'm(Z(ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2ddlm3Z3ddl4m5Z5n#e6$r e dwxYwdZ7Gdde Z8Gdde Z9d)dZ:d)dZ;d*dZd%e?d!d"d&d'ddfd(Z@dS),) TYPE_CHECKING) BaseModel)OP)Hub_should_send_default_pii) DidNotEnable Integration)SentryAsgiMiddleware)SOURCE_FOR_STYLETRANSACTION_SOURCE_ROUTE)event_from_exceptiontransaction_from_function)RequestStarliteState)BaseRouteHandler)DefineMiddleware)get_plugin_for_value) HTTPRoute)ConnectionDataExtractoris_async_callableRef)AnyDictListOptionalUnion) ASGIAppHTTPReceiveMessage HTTPScopeMessage MiddlewareReceiveScopeSendWebSocketReceiveMessage)MiddlewareProtocol)EventzStarlite is not installedzgeneric Starlite requestc eZdZdfd ZxZS)SentryStarliteASGIMiddlewareapprcRt|ddddS)NFendpointasgi)r+unsafe_context_datatransaction_stylemechanism_type)super__init__)selfr+ __class__s q/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/sentry_sdk/integrations/starlite.pyr3z%SentryStarliteASGIMiddleware.__init__*s:  %(!      )r+r)__name__ __module__ __qualname__r3 __classcell__)r5s@r6r*r*)s=          r7r*c*eZdZdZeddZdS)StarliteIntegrationstarlitereturnNcZtttdS)N)patch_app_initpatch_middlewarespatch_http_route_handler7r6 setup_oncezStarliteIntegration.setup_once6s,!!!!!r7r?N)r8r9r: identifier staticmethodrErDr7r6r=r=3s7J"""\"""r7r=r?NcDtjd fd }|t_dS) a Replaces the Starlite class's `__init__` function in order to inject `after_exception` handlers and set the `SentryStarliteASGIMiddleware` as the outmost middleware in the stack. See: - https://starlite-api.github.io/starlite/usage/0-the-starlite-app/5-application-hooks/#after-exception - https://starlite-api.github.io/starlite/usage/7-middleware/0-middleware-intro/ r4rargsrkwargsr?Nc.|dg}|tgt|tr|n|gt jt _|ddpg}t g||d<|g|Ri|dS)Nafter_exception)rM middleware)popupdateexception_handler isinstancelistr* _run_asgi3__call__)r4rJrKrMrN old__init__s r6injection_wrapperz)patch_app_init..injection_wrapperGs **%6;; !"/488+OO)*   1M0W$-ZZ d339r <JzJ| D*4***6*****r7)r4rrJrrKrr?N)rr3)rWrVs @r6rArA=s;#K++++++$*Hr7cDtjdfd }|t_dS)Nr4rr?List[Middleware]c.d|DS)Nc,g|]}t|SrD)enable_span_for_middleware).0rNs r6 zIpatch_middlewares..resolve_middleware_wrapper..`s0    'z 2 2   r7rD)r4old__resolve_middleware_stacks r6resolve_middleware_wrapperz5patch_middlewares..resolve_middleware_wrapper_s/  ;;DAA    r7)r4rr?rY)rresolve_middleware)r`r_s @r6rBrB\s<$4$G!      +E'''r7rNr"ct|dr |tur|St|tr |jjn|j d fd }jd v}|r)t|tr ||j_n||_|S)NrUr4r'scoper$receiver#sendr%r?c8Ktj}|t}||jj|tj5}| d dfd }td t}|d k} | s|n} dfd } td t} | dk} | s| n}||| |d{VcdddS#1swxYwYdS||d{VS)Nop descriptionstarlite.middleware_namerJrrKr?2Union[HTTPReceiveMessage, WebSocketReceiveMessage]c Ktj}|tjt dt 5}|d|i|d{VcdddS#1swxYwYdSNr:rgrj)rcurrent start_spanrMIDDLEWARE_STARLITE_RECEIVEgetattrstrset_tag)rJrKhubspanmiddleware_namerds r6_sentry_receivezNenable_span_for_middleware.._create_span_call.._sentry_receives+C9$+G^S\\$R$R(> %?QQQ%,Wd%=f%=%======= >>>>>>>>>>>>>>>>>>s $A>>BBr8rwmessager!c Ktj}|tjt dt 5}|d|d{VcdddS#1swxYwYdSrm)rrnrorMIDDLEWARE_STARLITE_SENDrqrrrs)rxrtrurvres r6 _sentry_sendzKenable_span_for_middleware.._create_span_call.._sentry_sends+C6$+D.#d))$L$L(3 %?QQQ%)T']]222222 333333333333333333s 'BBBr{)rJrrKrr?rk)rxr!r?N) rrnget_integrationr=r5r8rorMIDDLEWARE_STARLITErsrqrr)r4rcrdrert integrationmiddleware_spanrw receive_namereceive_patched new_receiver{ send_name send_patchednew_sendrvold_calls `` @r6_create_span_callz5enable_span_for_middleware.._create_span_calltsk))*=>>  ""n5O) # J ''(BOTTT >  >,1 >I > > > > > > > 'w CLLII ".2C"C5DQoo' 3333333$D*c$ii@@ (N: /;E<<%XdE;IIIIIIIIG# J# J# J# J# J# J# J# J# J# J# J# J# J# J# J# J# J# JJ"$w======== =sBC;;C?C?)r) r4r'rcr$rdr#rer%r?N)hasattrr*rRrrNrUr8)rNrnot_yet_patchedrs @r6r\r\hs J + + 5 5 5*.//'(3<&,>",>+2,>=F,>NT,> ,>,>,>,>,>,>\'/DDO4 j"2 3 3 4->J ! * *"3J  r7cXtj d fd }|t_dS) Nr4rrcr rdr#rer%r?c Ktj}|t}| |||d{VS|5}d||}t dd| d}|d{V d fd } tj|_ | |  |||d{VcdddS#1swxYwYdS) Nr+)rcrdreT) parse_body parse_querybodyeventr(_Dict[str, Any]r?c d}|di}t dd|d<tr d|d<|d<d}|j|j}n.t |jt r |jj}n|j}|t|}dtd i}|st}dti}| ||| |S) N route_handlerrequest_bodyr7content_lengthcookiesdatasourcer-)r transactiontransaction_info) getlenrnamerRfnrvaluerr _DEFAULT_TRANSACTION_NAMEr rP) rrr request_infofunctx_nametx_infoextracted_request_data request_datarcs r6event_processorzHpatch_http_route_handle..handle_wrapper..event_processors % / : : $yyB77 14UYYw5L5L1M1M -.+--P.DY.OL+++7L( %1+0GG 0#66,(+1DD(+D#7==G#%5j%ABC7G')ABG (gPW r7)rr(rrr?r() rrnr|r=configure_scope request_classrrOrG_nameadd_event_processor) r4rcrdrertr~ sentry_scoperrrrr old_handles ` @@r6handle_wrapperz/patch_http_route_handle..handle_wrappersk+.+>+>?R+S+S  #D%$???????? ?  " "- @l+0<+E+EW4,F,,G&%<T&&&&& "*--f55D!%::::::L        >"5!?L   , ,_ = = =#D%$????????[- @- @- @- @- @- @- @- @- @- @- @- @- @- @- @- @- @- @sBC;;C?C?) r4rrcr rdr#rer%r?N)rhandle)rrs @r6rCrCsm!J5@5@"-5@8A5@IO5@ 5@5@5@5@5@5@n&Ir7rcr$Optional[Dict[str, Any]]cv|di}|sdSt|tr|St|tr|St |dr|St |}|r)t|js||SdS)Nuserasdict) rrRdictrrrrrto_dict)rc scope_userplugins r6retrieve_user_from_scopers62&&J t*d##*i((!   z8$$#  """ !* - -F *'77*~~j))) 4r7excrrctj}|tdSd}t rt |}|rVt |trA|5}| |dddn #1swxYwYt||j r |j j ndtj dd\}}|||dS)NF)typehandled)client_options mechanism)hint)rrnr|r=rrrRrrset_userr clientoptionsrG capture_event)rrcrrt user_inforrrs r6rQrQs4 +C .//7,0I!!4,U33 -Z 400-  " " -l  ! !) , , , - - - - - - - - - - - - - - -' -0ZAsz))T.9eLLKE4 e$'''''s3BBBrF)rNr"r?r")rcr$r?r)Atypingrpydanticrsentry_sdk.constsrsentry_sdk.hubrrsentry_sdk.integrationsrr sentry_sdk.integrations.asgir sentry_sdk.tracingr r sentry_sdk.utilsr rr>rrrstarlite.handlers.baserstarlite.middlewarerstarlite.plugins.baserstarlite.routes.httprstarlite.utilsrrrrrrrrstarlite.typesrrr r!r"r#r$r%r&r'sentry_sdk._typesr( ImportErrorrr*r=rArBr\rCr ExceptionrQrDr7r6rs.  88888888==============IIIIIIIILLLLLLLL41111111111777777444444::::::......NNNNNNNNNN,;;;;;;;;;;;;;;  0/////++++++444 ,2 3 3347     #7   """""+"""****> E E E EBBBBJ:&:&:&:&z$(9(W((T((((((s ABB*