ƃWfddlmZddlZddlmZmZddlmZmZddl m Z m Z ddl m Z ddlmZddlmZer6dd l mZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZ ddlZn #e$rdZYnwxYw ddlm Z m!Z!m"Z"m#Z#m$Z%ddl&m'Z'm(Z(n#e$r e dwxYw ddl)Z)n#e$r e dwxYwdZ*Gdde Z+dZ,GddeZ-dZ.dZ/dZ0dS))absolute_importN)Hub_should_send_default_pii)capture_internal_exceptionsevent_from_exception) Integration DidNotEnable)SentryWsgiMiddleware)RequestExtractor)MYPY)_ScopedResponse)Any)Dict)ImmutableTypeConversionDict)ImmutableMultiDict) FileStorage)Union)Callable)EventProcessor)RequestFlask_request_ctx_stack_app_ctx_stack __version__)got_request_exceptionrequest_startedzFlask is not installedzblinker is not installed)endpointurlc4eZdZdZdZddZedZdS)FlaskIntegrationflaskNrc\|tvrtd|dtd||_dS)Nz%Invalid value for transaction_style: z (must be in ))TRANSACTION_STYLE_VALUES ValueErrortransaction_style)selfr&s }/builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib/python3.11/site-packages/sentry_sdk/integrations/flask.py__init__zFlaskIntegration.__init__;sJ $< < <*$$$&>&>&>@ "3c ttttjddd}n<#t t f$r(tdtwxYw|dkrtdtj ttj ttjfd}|t_dS)N.zUnparsable Flask version: {})r z Flask 0.10 or newer is required.ctjt ||St fd||S)Ncg|Ri|SN)akwold_appr's r(zNFlaskIntegration.setup_once..sentry_patched_wsgi_app..Ys!9P9P9P9PR9P9Pr*)rcurrentget_integrationr r )r'environstart_responser5s` r(sentry_patched_wsgi_appz.sentry_patched_wsgi_appTs^{**+;<<DwtWn===Q'(P(P(P(P(PQQ r*)tuplemapint FLASK_VERSIONsplitr% TypeErrorr formatrconnect_request_startedr_capture_exceptionr__call__)versionr;r5s @r( setup_oncezFlaskIntegration.setup_onceDs UC]%8%=%=bqb%ABBCCGGI& U U U=DD]SSTT T U W  ABB B 0111%&8999.     1s eZdZdZdZdZdZdZdZdZ dZ d S) FlaskRequestExtractorc|jjSr1)rRr9r's r(envzFlaskRequestExtractor.env} |##r*c|jjSr1)rRcookiesres r(rizFlaskRequestExtractor.cookiesrgr*c4|jSr1)rRget_datares r(raw_datazFlaskRequestExtractor.raw_data|$$&&&r*c|jjSr1)rRformres r(rozFlaskRequestExtractor.forms |  r*c|jjSr1)rRfilesres r(rqzFlaskRequestExtractor.filess |!!r*c|jjSr1)rRis_jsonres r(rszFlaskRequestExtractor.is_jsonrgr*c4|jSr1)rRget_jsonres r(jsonzFlaskRequestExtractor.jsonrmr*c|jSr1)content_length)r'files r( size_of_filez"FlaskRequestExtractor.size_of_files ""r*N) rIrJrKrfrirlrorqrsrvrzr2r*r(rcrc|s$$$$$$'''!!!"""$$$'''#####r*rccfd}|S)Nc:}||St5t||dddn #1swxYwYtr5t5t |dddn #1swxYwY|Sr1)rrcextract_into_eventr_add_user_to_event)eventhintrRr`s r(innerz,_make_request_event_processor..inners.,.. ?L ( * * E E !' * * = =e D D D E E E E E E E E E E E E E E E $ % % *,.. * *"5))) * * * * * * * * * * * * * * * s##A  AA4BBBr2)rPr`r^rs ` r(rYrYs#& Lr*c tj}|tdS|j}t ||jddd\}}|||dS)Nr!F)typehandled)client_options mechanism)r)rr7r8r clientroptions capture_event)r[ exceptionr\r]rrrs r(rErEsx +C +,,4ZF&~"u55KE4 e$'''''r*ctdStj}|dSt5|di} |d|n#t $rYnwxYw |d|jn#t$rYnwxYw |d|j|d|jn#t$rYnwxYwddddS#1swxYwYdS)Nuseridemailusername) flask_login current_userr setdefaultget_idAttributeErrorrrVr)rr user_infos r(r~r~s  #D | $ & &  $$VR00    t{{}} 5 5 5 5    D     $* 5 5 5 5    D    T] ; ; ;  TZ 8 8 8 8    D ?                  s}C;(A)(C;) A63C;5A66C;:BC; B# C;"B##C;'6CC; C+(C;*C++C;;C?C?)1 __future__rrWsentry_sdk.hubrrsentry_sdk.utilsrrsentry_sdk.integrationsrr sentry_sdk.integrations.wsgir $sentry_sdk.integrations._wsgi_commonr sentry_sdk._typesr r typingrrwerkzeug.datastructuresrrrrrrr ImportErrorr!rrrrrr? flask.signalsrrblinkerr$r rDrcrYrEr~r2r*r(rs&&&&&&88888888NNNNNNNN==============AAAAAA"""""" 1<<<<<<CCCCCC::::::333333000000KKK 1111 ,/ 0 0013NNNN333 ,1 2 223/'1'1'1'1'1{'1'1'1T1118#####,###D0((($)))))s*.A33A=<A=BB)-B22C