{"version":3,"sources":["webpack://_N_E/./node_modules/@sentry/utils/esm/string.js","webpack://_N_E/./node_modules/@sentry/utils/esm/node.js","webpack://_N_E/./node_modules/@next/polyfill-module/dist/polyfill-module.js","webpack://_N_E/./node_modules/@sentry/utils/esm/object.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/inherits.js","webpack://_N_E/./node_modules/process/browser.js","webpack://_N_E/./node_modules/@sentry/utils/esm/misc.js","webpack://_N_E/./node_modules/@sentry/utils/esm/is.js","webpack://_N_E/(webpack)/webpack/harmony-module.js","webpack://_N_E/../../client/next.js","webpack://_N_E/../../../client/portal/index.tsx","webpack://_N_E/../../client/head-manager.ts","webpack://_N_E/./node_modules/@sentry/core/esm/version.js","webpack://_N_E/./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://_N_E/./node_modules/@sentry/utils/esm/syncpromise.js","webpack://_N_E/./node_modules/@sentry/types/esm/session.js","webpack://_N_E/./node_modules/@sentry/hub/esm/scope.js","webpack://_N_E/./node_modules/@sentry/utils/esm/logger.js","webpack://_N_E/./node_modules/@sentry/hub/esm/session.js","webpack://_N_E/./node_modules/@sentry/hub/esm/hub.js","webpack://_N_E/./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://_N_E/./node_modules/@sentry/utils/esm/supports.js","webpack://_N_E/./node_modules/@sentry/utils/esm/instrument.js","webpack://_N_E/./node_modules/@sentry/utils/esm/polyfill.js","webpack://_N_E/./node_modules/@sentry/utils/esm/error.js","webpack://_N_E/./node_modules/@sentry/utils/esm/dsn.js","webpack://_N_E/./node_modules/@sentry/core/esm/integration.js","webpack://_N_E/./node_modules/@sentry/core/esm/baseclient.js","webpack://_N_E/./node_modules/@sentry/types/esm/status.js","webpack://_N_E/./node_modules/@sentry/core/esm/transports/noop.js","webpack://_N_E/./node_modules/@sentry/types/esm/severity.js","webpack://_N_E/./node_modules/@sentry/core/esm/basebackend.js","webpack://_N_E/./node_modules/@sentry/browser/esm/tracekit.js","webpack://_N_E/./node_modules/@sentry/browser/esm/parsers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/eventbuilder.js","webpack://_N_E/./node_modules/@sentry/core/esm/request.js","webpack://_N_E/./node_modules/@sentry/core/esm/api.js","webpack://_N_E/./node_modules/@sentry/utils/esm/promisebuffer.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/base.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/fetch.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/xhr.js","webpack://_N_E/./node_modules/@sentry/browser/esm/backend.js","webpack://_N_E/./node_modules/@sentry/minimal/esm/index.js","webpack://_N_E/./node_modules/@sentry/browser/esm/helpers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://_N_E/./node_modules/@sentry/browser/esm/client.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/useragent.js","webpack://_N_E/./node_modules/@sentry/browser/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/core/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/utils/metadataBuilder.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/index.client.js","webpack://_N_E/./sentry.client.config.js","webpack://_N_E/./node_modules/@sentry/react/esm/sdk.js","webpack://_N_E/../../../next-server/lib/head-manager-context.ts","webpack://_N_E/../../client/index.tsx","webpack://_N_E/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://_N_E/./node_modules/next/dist/build/polyfills/object-assign.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/createClass.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://_N_E/../../client/performance-relayer.ts","webpack://_N_E/./node_modules/@babel/runtime/helpers/typeof.js","webpack://_N_E/./node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js","webpack://_N_E/./node_modules/@sentry/utils/esm/time.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://_N_E/./node_modules/tslib/tslib.es6.js","webpack://_N_E/(webpack)/webpack/global.js","webpack://_N_E/../../client/route-announcer.tsx","webpack://_N_E/(webpack)/web-vitals/web-vitals.es5.umd.min.js","webpack://_N_E/./node_modules/@sentry/utils/esm/stacktrace.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/extends.js","webpack://_N_E/./node_modules/@sentry/utils/esm/browser.js","webpack://_N_E/./node_modules/@sentry/utils/esm/memo.js","webpack://_N_E/../../../next-server/lib/runtime-config.ts","webpack://_N_E/../../client/page-loader.ts"],"names":["truncate","str","max","length","substr","snipLine","line","colno","newLine","ll","start","Math","end","min","slice","safeJoin","input","delimiter","Array","isArray","output","i","value","push","String","e","join","isMatchingPattern","pattern","test","indexOf","isNodeEnv","Object","prototype","toString","call","process","dynamicRequire","mod","request","require","trimStart","trimLeft","trimEnd","trimRight","Symbol","defineProperty","configurable","get","t","exec","this","flat","r","concat","apply","some","flatMap","map","Promise","finally","then","constructor","o","resolve","fill","source","name","replacementFactory","original","wrapped","defineProperties","__sentry_original__","enumerable","_Oo","urlEncode","object","keys","key","encodeURIComponent","getWalkSource","error","err","message","stack","hasOwnProperty","event_1","type","target","_oO","currentTarget","CustomEvent","detail","jsonSize","encodeURI","split","utf8Length","JSON","stringify","normalizeToSize","depth","maxSize","serialized","normalize","normalizeValue","_events","global","window","document","walk","memo","Infinity","normalized","serializeValue","undefined","toJSON","acc","memoize","innerKey","unmemoize","parse","extractExceptionKeysForMessage","exception","maxLength","sort","includedKeys","dropUndefinedKeys","val","e_1","_a","obj","rv","_b","_c","next","done","e_1_1","return","setPrototypeOf","module","exports","subClass","superClass","TypeError","create","writable","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","arguments","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","fallbackGlobalObject","getGlobalObject","self","uuid4","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","num","v","replace","c","random","parseUrl","url","match","query","fragment","host","path","protocol","relative","getEventDescription","event","values","event_id","consoleSandbox","callback","originalConsole","console","wrappedLevels","forEach","level","result","addExceptionTypeValue","addExceptionMechanism","mechanism","getLocationHref","location","href","oO","parseRetryAfterHeader","now","header","headerDelay","parseInt","isNaN","headerDate","Date","isError","wat","isInstanceOf","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","Boolean","isSyntheticEvent","base","_e","__webpack_modules__","931","originalModule","webpackPolyfill","children","l","__webpack_module_cache__","__nccwpck_require__","moduleId","threw","ab","__dirname","portalNode","React","forceUpdate","createPortal","updatePromise","mountedInstances","updateHead","head","promise","tags","h","components","titleComponent","headEl","headCountEl","headCount","Number","oldTags","j","newTags","newTag","k","oldTag","updateElements","DOMAttributeNames","acceptCharset","className","htmlFor","httpEquiv","noModule","reactElementToDOM","el","props","p","attr","dangerouslySetInnerHTML","originalFunctionToString","States","SDK_VERSION","FunctionToString","id","setupOnce","Function","_i","context","SessionStatus","RequestSessionStatus","SyncPromise","executor","_this","_state","PENDING","_handlers","_resolve","_setResult","RESOLVED","_reject","reason","REJECTED","state","is","_value","_executeHandlers","_attachHandler","handler","cachedHandlers","onfulfilled","onrejected","reject","_","all","collection","counter","resolvedCollection","item","index","catch","onfinally","isRejected","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","clone","scope","newScope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","addEventProcessor","setUser","user","update","_notifyScopeListeners","getUser","getRequestSession","setRequestSession","requestSession","setTags","setTag","setExtras","extras","setExtra","extra","setFingerprint","fingerprint","setLevel","setTransactionName","setTransaction","setContext","setSpan","span","getSpan","getTransaction","_d","transaction","spanRecorder","spans","setSession","session","getSession","captureContext","updatedScope","contexts","clear","addBreadcrumb","breadcrumb","maxBreadcrumbs","mergedBreadcrumb","timestamp","clearBreadcrumbs","applyToEvent","hint","trace","getTraceContext","transactionName","_applyFingerprint","breadcrumbs","_notifyEventProcessors","getGlobalEventProcessors","processors","processor","final","__SENTRY__","globalEventProcessors","addGlobalEventProcessor","PREFIX","Logger","_enabled","disable","enable","log","warn","logger","Session","errors","sid","started","duration","status","Ok","init","ip_address","ipAddress","did","email","username","release","environment","userAgent","close","Exited","toISOString","attrs","user_agent","SessionFlusher","transport","flushTimeout","_pendingAggregates","_isEnabled","_transport","_intervalId","setInterval","flush","_sessionAttrs","sendSessionAggregates","sessionAggregates","sendSession","getSessionAggregates","aggregates","clearInterval","incrementSessionStatusCount","getCurrentHub","getScope","_incrementSessionStatusCount","date","sessionStartedTrunc","setSeconds","aggregationCounts","Errored","errored","exited","Crashed","crashed","Hub","client","_version","_stack","getStackTop","bindClient","isOlderThan","setupIntegrations","pushScope","getStack","getClient","popScope","pop","withScope","captureException","eventId","_lastEventId","finalHint","syntheticException","originalException","_invokeClient","captureMessage","captureEvent","lastEventId","getOptions","beforeBreadcrumb","finalBreadcrumb","configureScope","oldHub","makeMain","getIntegration","integration","startSpan","_callExtensionMethod","startTransaction","customSamplingContext","traceHeaders","captureSession","endSession","_sendSessionUpdate","startSession","currentSession","method","carrier","getMainCarrier","sentry","extensions","hub","registry","getHubFromCarrier","setHubOnCarrier","hasHubOnCarrier","activeDomain","domain","active","registryHubTopStack","getHubFromActiveDomain","DEFAULT_IGNORE_ERRORS","InboundFilters","_options","clientOptions","options","_mergeOptions","_shouldDropEvent","_isSentryError","_isIgnoredError","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","ignoreInternal","ignoreErrors","_getPossibleEventMessages","denyUrls","allowUrls","whitelistUrls","blacklistUrls","stacktrace","frames_1","frames","filename","frames_2","supportsFetch","Headers","Request","Response","isNativeFetch","func","supportsReferrerPolicy","referrerPolicy","lastHref","handlers","instrumented","instrument","originalConsoleLevel","triggerHandlers","instrumentConsole","triggerDOMHandler","bind","globalDOMEventHandler","makeDOMEventHandler","addEventListener","proto","originalAddEventListener","listener","handlers_1","__sentry_instrumentation_handlers__","handlerForType","refCount","originalRemoveEventListener","handlers_2","instrumentDOM","requestKeys","requestValues","xhrproto","XMLHttpRequest","originalOpen","xhr","__sentry_xhr__","toUpperCase","__sentry_own_request__","onreadystatechangeHandler","readyState","status_code","requestPos","splice","args_1","body","endTimestamp","startTimestamp","onreadystatechange","readyStateArgs","originalSend","instrumentXHR","fetch","doc","createElement","sandbox","hidden","appendChild","contentWindow","removeChild","supportsNativeFetch","originalFetch","handlerData","fetchData","getFetchMethod","getFetchUrl","response","instrumentFetch","chrome","isChromePackagedApp","app","runtime","hasHistoryApi","history","pushState","replaceState","supportsHistory","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","from","to","instrumentHistory","_oldOnErrorHandler","onerror","msg","column","_oldOnUnhandledRejectionHandler","onunhandledrejection","addInstrumentationHandler","data","fetchArgs","debounceTimerID","lastCapturedEvent","globalListener","tagName","isContentEditable","shouldSkipDOMEvent","previous","current","shouldShortcircuitPreviousDebounce","__proto__","prop","_super","SentryError","_newTarget","DSN_REGEX","ERROR_MESSAGE","Dsn","_fromString","_fromComponents","_validate","withPassword","pass","port","projectId","publicKey","projectMatch","component","installedIntegrations","filterDuplicates","integrations","reduce","every","accIntegration","defaultIntegrations","userIntegrations","filter","userIntegration","integrationsNames","alwaysLastToRun","getIntegrationsToSetup","setupIntegration","Status","BaseClient","backendClass","_integrations","_processing","_backend","dsn","_dsn","_process","_getBackend","eventFromException","_captureEvent","promisedEvent","eventFromMessage","_sendSession","getDsn","_isClientProcessing","ready","getTransport","transportFlushed","enabled","_updateSessionFromEvent","exceptions","exceptions_1","exceptions_1_1","handled","headers","toLowerCase","ticked","interval","_prepareEvent","normalizeDepth","prepared","_applyClientOptions","_applyIntegrationsMetadata","finalScope","evt","_normalizeEvent","b","dist","maxValueLength","integrationsArray","sdk","_sendEvent","sendEvent","_processEvent","finalEvent","beforeSend","sampleRate","isTransaction","__sentry__","beforeSendResult","processedEvent","fromHttpCode","code","Success","RateLimit","Invalid","Failed","Unknown","Severity","NoopTransport","Skipped","BaseBackend","_setupTransport","_exception","_hint","_message","fromString","Debug","Info","Warning","Fatal","Critical","Log","UNKNOWN_FUNCTION","gecko","winjs","geckoEval","chromeEval","reactMinifiedRegexp","computeStackTrace","ex","popSize","framesToPop","parts","opera10Regex","opera11Regex","lines","element","extractMessage","computeStackTraceFromStacktraceProp","popFrames","submatch","isNative","isSafariExtension","isSafariWebExtension","columnNumber","computeStackTraceFromStackProp","failed","exceptionFromStacktrace","prepareFramesForEvent","eventFromStacktrace","localStack","firstFrameFunction","lastFrameFunction","frame","function","in_app","lineno","reverse","eventFromUnknownInput","domException","name_1","eventFromString","rejection","__serialized__","eventFromPlainObject","synthetic","attachStacktrace","getSdkMetadataForEnvelopeHeader","api","metadata","enhanceEventWithSdkInfo","sdkInfo","packages","sessionToSentryRequest","sent_at","getEnvelopeEndpointWithUrlEncodedAuth","eventToSentryRequest","eventType","useEnvelope","debug_meta","transactionSampling","samplingMethod","rate","req","getStoreEndpointWithUrlEncodedAuth","envelope","sample_rates","API","_dsnObject","getBaseApiEndpoint","getStoreEndpoint","_getIngestEndpoint","_encodedAuth","_getEnvelopeEndpoint","getStoreEndpointPath","getRequestHeaders","clientName","clientVersion","getReportDialogEndpoint","dialogOptions","endpoint","encodedOptions","auth","sentry_key","sentry_version","PromiseBuffer","_limit","_buffer","isReady","add","task","remove","drain","capturedSetTimeout","CATEGORY_MAPPING","attachment","BaseTransport","_rateLimits","_api","_metadata","_handleResponse","requestType","_handleRateLimit","_disabledUntil","category","_isRateLimited","e_2","rlHeader","raHeader","trim","parameters","delay","_f","e_2_1","FetchTransport","fetchImpl","getNativeFetchImplementation","_fetch","_sendRequest","sentryRequest","originalPayload","fetchParameters","assign","XHRTransport","getResponseHeader","open","setRequestHeader","send","BrowserBackend","transportOptions","callOnHub","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","wrap","fn","before","__sentry_wrapped__","sentryWrapped","wrappedArguments","arg","handleEvent","property","getOwnPropertyDescriptor","injectReportDialog","script","async","src","onLoad","onload","Breadcrumbs","dom","addSentryBreadcrumb","_consoleBreadcrumb","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","parsedLoc","parsedFrom","parsedTo","BrowserClient","showReportDialog","platform","DEFAULT_EVENT_TARGET","TryCatch","eventTarget","requestAnimationFrame","_wrapTimeFunction","_wrapRAF","_wrapXHR","_wrapEventTarget","originalCallback","eventName","wrappedEventHandler","originalEventHandler","xmlHttpRequestProps","wrapOptions","GlobalHandlers","_onErrorHandlerInstalled","_onUnhandledRejectionHandlerInstalled","stackTraceLimit","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","currentHub","hasIntegration","isFailedOwnDelivery","_eventFromIncompleteOnError","_enhanceEventWithInitialFrame","_eventFromRejectionWithPrimitive","groups","LinkedErrors","_key","limit","_handler","linkedErrors","_walkErrorTree","UserAgent","navigator","referrer","Referer","window_1","SENTRY_RELEASE","autoSessionTracking","clientClass","debug","initialScope","initAndBind","startSessionTracking","MetadataBuilder","_packageNames","addSdkMetadata","_getSdkInfo","_getPackages","pkgName","HeadManagerContext","__NEXT_VERSION","looseToArray","isFallback","prefix","__webpack_public_path__","envConfig","serverRuntimeConfig","publicRuntimeConfig","runtimeConfig","asPath","hasBasePath","delBasePath","pageLoader","PageLoader","register","headManager","appElement","router","page","hydrateProps","isDynamicRoute","querystring","URLSearchParams","_h","shallow","hash","Component","emitter","initialErr","appEntrypoint","CachedApp","onPerfEntry","uniqueID","entries","perfStartEntry","startTime","label","entryType","pageEntrypoint","CachedComponent","createRouter","initialProps","App","wrapApp","subscription","render","scroll","locale","locales","defaultLocale","domainLocales","isPreview","renderCtx","initial","renderingProps","renderError","doRender","renderErr","renderErrorProps","AppTree","appCtx","ctx","pathname","loadGetInitialProps","initProps","styleSheets","shouldHydrate","ReactDOM","markHydrateComplete","ST","performance","clearMarks","markRenderComplete","navStartEntries","measure","mark","AppContainer","makePublicRouterInstance","wrappedAppProps","appProps","lastAppProps","canceled","renderPromise","lastRenderReject","resolvePromise","currentStyleTags","currentHrefs","Set","tag","noscript","nonce","styleTag","onStart","elem","desiredHrefs","s","idx","referenceNode","targetTag","getComputedStyle","reactEl","renderReactElement","callbacks","Root","Head","_getPrototypeOf","getPrototypeOf","ReferenceError","default","_setPrototypeOf","_defineProperties","descriptor","Constructor","protoProps","staticProps","arr2","arrayLikeToArray","minLen","n","_typeof","assertThisInitialized","isRegistered","onReport","metric","userReportHandler","getCLS","getFID","getFCP","getLCP","getTTFB","iterator","dateTimestampSource","nowSeconds","platformPerformance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","threshold","performanceNow","dateNow","timeOriginDelta","abs","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","instance","extendStatics","d","__extends","__","__assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__values","m","__read","ar","__spread","149","g","RouteAnnouncer","useState","initialPathLoaded","useRef","useEffect","pageHeader","newRouteAnnouncement","setRouteAnnouncement","aria-live","role","style","border","clip","height","margin","overflow","padding","position","width","whiteSpace","wordWrap","599","floor","a","delta","isFinal","PerformanceObserver","supportedEntryTypes","includes","getEntries","observe","buffered","u","persisted","timeStamp","visibilityState","isUnloading","capture","disconnect","f","passive","hadRecentInput","takeRecords","processingStart","perfMetrics","onFirstInputDelay","cancelable","getEntriesByType","responseStart","defaultFunctionName","getFunctionName","_extends","htmlTreeAsString","currentElem","out","sepLength","nextStr","_htmlElementAsString","parentNode","classes","allowedAttrs","getAttribute","Memo","_hasWeakSet","WeakSet","_inner","has","delete","configValue","buildId","assetPrefix","promisedSsgManifest","promisedDevPagesManifest","routeLoader","getClientBuildManifest","manifest","parseRelativeUrl","route","normalizeRoute","getHrefForSlug","dataRoute","removePathTrailingSlash","addLocale","addBasePath","ssg","isDynamic","interpolatedRoute","interpolateAs","loadRoute","res","text","prefetch"],"mappings":"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","file":"static/chunks/main-ab9d21f0174f4f161232.js","sourcesContent":["import { isRegExp, isString } from './is';\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str, max) {\n if (max === void 0) { max = 0; }\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : str.substr(0, max) + \"...\";\n}\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line, colno) {\n var newLine = line;\n var ll = newLine.length;\n if (ll <= 150) {\n return newLine;\n }\n if (colno > ll) {\n // eslint-disable-next-line no-param-reassign\n colno = ll;\n }\n var start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n var end = Math.min(start + 140, ll);\n if (end > ll - 5) {\n end = ll;\n }\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n if (end < ll) {\n newLine += ' {snip}';\n }\n return newLine;\n}\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n var output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n }\n catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n//# sourceMappingURL=string.js.map","/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv() {\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName) {\n var mod;\n try {\n mod = dynamicRequire(module, moduleName);\n }\n catch (e) {\n // no-empty\n }\n try {\n var cwd = dynamicRequire(module, 'process').cwd;\n mod = dynamicRequire(module, cwd() + \"/node_modules/\" + moduleName);\n }\n catch (e) {\n // no-empty\n }\n return mod;\n}\n//# sourceMappingURL=node.js.map","\"trimStart\"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),\"trimEnd\"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),\"description\"in Symbol.prototype||Object.defineProperty(Symbol.prototype,\"description\",{configurable:!0,get:function(){var t=/\\((.*)\\)/.exec(this.toString());return t?t[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(t,r){return r=this.concat.apply([],this),t>1&&r.some(Array.isArray)?r.flat(t-1):r},Array.prototype.flatMap=function(t,r){return this.map(t,r).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(t){if(\"function\"!=typeof t)return this.then(t,t);var r=this.constructor||Promise;return this.then(function(o){return r.resolve(t()).then(function(){return o})},function(o){return r.resolve(t()).then(function(){throw o})})});\n","import { __values } from \"tslib\";\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive, isSyntheticEvent } from './is';\nimport { Memo } from './memo';\nimport { getFunctionName } from './stacktrace';\nimport { truncate } from './string';\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n var original = source[name];\n var wrapped = replacementFactory(original);\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __sentry_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n source[name] = wrapped;\n}\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object) {\n return Object.keys(object)\n .map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n .join('&');\n}\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nfunction getWalkSource(value) {\n if (isError(value)) {\n var error = value;\n var err = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n for (var i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n return err;\n }\n if (isEvent(value)) {\n var event_1 = value;\n var source = {};\n source.type = event_1.type;\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n source.target = isElement(event_1.target)\n ? htmlTreeAsString(event_1.target)\n : Object.prototype.toString.call(event_1.target);\n }\n catch (_oO) {\n source.target = '';\n }\n try {\n source.currentTarget = isElement(event_1.currentTarget)\n ? htmlTreeAsString(event_1.currentTarget)\n : Object.prototype.toString.call(event_1.currentTarget);\n }\n catch (_oO) {\n source.currentTarget = '';\n }\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event_1.detail;\n }\n for (var i in event_1) {\n if (Object.prototype.hasOwnProperty.call(event_1, i)) {\n source[i] = event_1;\n }\n }\n return source;\n }\n return value;\n}\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\nexport function normalizeToSize(object, \n// Default Node.js REPL depth\ndepth, \n// 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize) {\n if (depth === void 0) { depth = 3; }\n if (maxSize === void 0) { maxSize = 100 * 1024; }\n var serialized = normalize(object, depth);\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return serialized;\n}\n/**\n * Transform any non-primitive, BigInt, or Symbol-type value into a string. Acts as a no-op on strings, numbers,\n * booleans, null, and undefined.\n *\n * @param value The value to stringify\n * @returns For non-primitive, BigInt, and Symbol-type values, a string denoting the value's type, type and value, or\n * type and `description` property, respectively. For non-BigInt, non-Symbol primitives, returns the original value,\n * unchanged.\n */\nfunction serializeValue(value) {\n var type = Object.prototype.toString.call(value);\n // Node.js REPL notation\n if (typeof value === 'string') {\n return value;\n }\n if (type === '[object Object]') {\n return '[Object]';\n }\n if (type === '[object Array]') {\n return '[Array]';\n }\n var normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\n}\n/**\n * normalizeValue()\n *\n * Takes unserializable input and make it serializable friendly\n *\n * - translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * - serializes Error objects\n * - filter global objects\n */\nfunction normalizeValue(value, key) {\n if (key === 'domain' && value && typeof value === 'object' && value._events) {\n return '[Domain]';\n }\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n if (value === void 0) {\n return '[undefined]';\n }\n if (typeof value === 'function') {\n return \"[Function: \" + getFunctionName(value) + \"]\";\n }\n // symbols and bigints are considered primitives by TS, but aren't natively JSON-serilaizable\n if (typeof value === 'symbol') {\n return \"[\" + String(value) + \"]\";\n }\n if (typeof value === 'bigint') {\n return \"[BigInt: \" + String(value) + \"]\";\n }\n return value;\n}\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function walk(key, value, depth, memo) {\n if (depth === void 0) { depth = +Infinity; }\n if (memo === void 0) { memo = new Memo(); }\n // If we reach the maximum depth, serialize whatever has left\n if (depth === 0) {\n return serializeValue(value);\n }\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // If value implements `toJSON` method, call it and return early\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further\n var normalized = normalizeValue(value, key);\n if (isPrimitive(normalized)) {\n return normalized;\n }\n // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself\n var source = getWalkSource(value);\n // Create an accumulator that will act as a parent for all future itterations of that branch\n var acc = Array.isArray(value) ? [] : {};\n // If we already walked that branch, bail out, as it's circular reference\n if (memo.memoize(value)) {\n return '[Circular ~]';\n }\n // Walk all keys of the source\n for (var innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n }\n // Recursively walk through all the child nodes\n acc[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n }\n // Once walked through all the branches, remove the parent from memo storage\n memo.unmemoize(value);\n // Return accumulated values\n return acc;\n}\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function normalize(input, depth) {\n try {\n return JSON.parse(JSON.stringify(input, function (key, value) { return walk(key, value, depth); }));\n }\n catch (_oO) {\n return '**non-serializable**';\n }\n}\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) { maxLength = 40; }\n var keys = Object.keys(getWalkSource(exception));\n keys.sort();\n if (!keys.length) {\n return '[object has no keys]';\n }\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n return '';\n}\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val) {\n var e_1, _a;\n if (isPlainObject(val)) {\n var obj = val;\n var rv = {};\n try {\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (typeof obj[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(obj[key]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return rv;\n }\n if (Array.isArray(val)) {\n return val.map(dropUndefinedKeys);\n }\n return val;\n}\n//# sourceMappingURL=object.js.map","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import { isNodeEnv } from './node';\nimport { snipLine } from './string';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\n };\n return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment,\n };\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event) {\n if (event.message) {\n return event.message;\n }\n if (event.exception && event.exception.values && event.exception.values[0]) {\n var exception = event.exception.values[0];\n if (exception.type && exception.value) {\n return exception.type + \": \" + exception.value;\n }\n return exception.type || exception.value || event.event_id || '';\n }\n return event.event_id || '';\n}\n/** JSDoc */\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n var levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n if (!('console' in global)) {\n return callback();\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var originalConsole = global.console;\n var wrappedLevels = {};\n // Restore all wrapped console methods\n levels.forEach(function (level) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (level in global.console && originalConsole[level].__sentry_original__) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalConsole[level].__sentry_original__;\n }\n });\n // Perform callback manipulations\n var result = callback();\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n return result;\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event, value, type) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].value = event.exception.values[0].value || value || '';\n event.exception.values[0].type = event.exception.values[0].type || type || 'Error';\n}\n/**\n * Adds exception mechanism to a given event.\n * @param event The event to modify.\n * @param mechanism Mechanism of the mechanism.\n * @hidden\n */\nexport function addExceptionMechanism(event, mechanism) {\n if (mechanism === void 0) { mechanism = {}; }\n // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better?\n try {\n // @ts-ignore Type 'Mechanism | {}' is not assignable to type 'Mechanism | undefined'\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism = event.exception.values[0].mechanism || {};\n Object.keys(mechanism).forEach(function (key) {\n // @ts-ignore Mechanism has no index signature\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].mechanism[key] = mechanism[key];\n });\n }\n catch (_oO) {\n // no-empty\n }\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n try {\n return document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\nvar defaultRetryAfter = 60 * 1000; // 60 seconds\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\nexport function parseRetryAfterHeader(now, header) {\n if (!header) {\n return defaultRetryAfter;\n }\n var headerDelay = parseInt(\"\" + header, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n var headerDate = Date.parse(\"\" + header);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n return defaultRetryAfter;\n}\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\n}\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n//# sourceMappingURL=misc.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat) {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat) {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\n}\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\n}\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\n}\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat) {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n/**\n * Checks whether given value's is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat) {\n return Object.prototype.toString.call(wat) === '[object Object]';\n}\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat) {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n }\n catch (_e) {\n return false;\n }\n}\n//# sourceMappingURL=is.js.map","module.exports =\n/******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 931:\n/***/ (function(module) {\n\nmodule.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __nccwpck_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\tvar threw = true;\n/******/ \t\ttry {\n/******/ \t\t\t__webpack_modules__[moduleId](module, module.exports, __nccwpck_require__);\n/******/ \t\t\tthrew = false;\n/******/ \t\t} finally {\n/******/ \t\t\tif(threw) delete __webpack_module_cache__[moduleId];\n/******/ \t\t}\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat */\n/******/ \t\n/******/ \t__nccwpck_require__.ab = __dirname + \"/\";/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __nccwpck_require__(931);\n/******/ })()\n;","import initNext, * as next from './'\n\nwindow.next = next\n\ninitNext().catch(console.error)\n","import * as React from 'react'\nimport { createPortal } from 'react-dom'\n\ntype PortalProps = {\n children: React.ReactNode\n type: string\n}\n\nexport const Portal: React.FC = ({ children, type }) => {\n let portalNode = React.useRef(null)\n let [, forceUpdate] = React.useState<{}>()\n React.useEffect(() => {\n portalNode.current = document.createElement(type)\n document.body.appendChild(portalNode.current)\n forceUpdate({})\n return () => {\n if (portalNode.current) {\n document.body.removeChild(portalNode.current)\n }\n }\n }, [type])\n\n return portalNode.current ? createPortal(children, portalNode.current) : null\n}\n","export const DOMAttributeNames: Record = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv',\n noModule: 'noModule',\n}\n\nfunction reactElementToDOM({ type, props }: JSX.Element): HTMLElement {\n const el: HTMLElement = document.createElement(type)\n for (const p in props) {\n if (!props.hasOwnProperty(p)) continue\n if (p === 'children' || p === 'dangerouslySetInnerHTML') continue\n\n // we don't render undefined props to the DOM\n if (props[p] === undefined) continue\n\n const attr = DOMAttributeNames[p] || p.toLowerCase()\n if (\n type === 'script' &&\n (attr === 'async' || attr === 'defer' || attr === 'noModule')\n ) {\n ;(el as HTMLScriptElement)[attr] = !!props[p]\n } else {\n el.setAttribute(attr, props[p])\n }\n }\n\n const { children, dangerouslySetInnerHTML } = props\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || ''\n } else if (children) {\n el.textContent =\n typeof children === 'string'\n ? children\n : Array.isArray(children)\n ? children.join('')\n : ''\n }\n return el\n}\n\nfunction updateElements(type: string, components: JSX.Element[]): void {\n const headEl = document.getElementsByTagName('head')[0]\n const headCountEl: HTMLMetaElement = headEl.querySelector(\n 'meta[name=next-head-count]'\n ) as HTMLMetaElement\n if (process.env.NODE_ENV !== 'production') {\n if (!headCountEl) {\n console.error(\n 'Warning: next-head-count is missing. https://nextjs.org/docs/messages/next-head-count-missing'\n )\n return\n }\n }\n\n const headCount = Number(headCountEl.content)\n const oldTags: Element[] = []\n\n for (\n let i = 0, j = headCountEl.previousElementSibling;\n i < headCount;\n i++, j = j!.previousElementSibling\n ) {\n if (j!.tagName.toLowerCase() === type) {\n oldTags.push(j!)\n }\n }\n const newTags = (components.map(reactElementToDOM) as HTMLElement[]).filter(\n (newTag) => {\n for (let k = 0, len = oldTags.length; k < len; k++) {\n const oldTag = oldTags[k]\n if (oldTag.isEqualNode(newTag)) {\n oldTags.splice(k, 1)\n return false\n }\n }\n return true\n }\n )\n\n oldTags.forEach((t) => t.parentNode!.removeChild(t))\n newTags.forEach((t) => headEl.insertBefore(t, headCountEl))\n headCountEl.content = (headCount - oldTags.length + newTags.length).toString()\n}\n\nexport default function initHeadManager(): {\n mountedInstances: Set\n updateHead: (head: JSX.Element[]) => void\n} {\n let updatePromise: Promise | null = null\n\n return {\n mountedInstances: new Set(),\n updateHead: (head: JSX.Element[]) => {\n const promise = (updatePromise = Promise.resolve().then(() => {\n if (promise !== updatePromise) return\n\n updatePromise = null\n const tags: Record = {}\n\n head.forEach((h) => {\n if (\n // If the font tag is loaded only on client navigation\n // it won't be inlined. In this case revert to the original behavior\n h.type === 'link' &&\n h.props['data-optimized-fonts'] &&\n !document.querySelector(\n `style[data-href=\"${h.props['data-href']}\"]`\n )\n ) {\n h.props.href = h.props['data-href']\n h.props['data-href'] = undefined\n }\n const components = tags[h.type] || []\n components.push(h)\n tags[h.type] = components\n })\n\n const titleComponent = tags.title ? tags.title[0] : null\n let title = ''\n if (titleComponent) {\n const { children } = titleComponent.props\n title =\n typeof children === 'string'\n ? children\n : Array.isArray(children)\n ? children.join('')\n : ''\n }\n if (title !== document.title) document.title = title\n ;['meta', 'base', 'link', 'style', 'script'].forEach((type) => {\n updateElements(type, tags[type] || [])\n })\n }))\n },\n }\n}\n","export var SDK_VERSION = '6.4.1';\n//# sourceMappingURL=version.js.map","var originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\nvar FunctionToString = /** @class */ (function () {\n function FunctionToString() {\n /**\n * @inheritDoc\n */\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n FunctionToString.prototype.setupOnce = function () {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this.__sentry_original__ || this;\n return originalFunctionToString.apply(context, args);\n };\n };\n /**\n * @inheritDoc\n */\n FunctionToString.id = 'FunctionToString';\n return FunctionToString;\n}());\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n/** SyncPromise internal states */\nvar States;\n(function (States) {\n /** Pending */\n States[\"PENDING\"] = \"PENDING\";\n /** Resolved / OK */\n States[\"RESOLVED\"] = \"RESOLVED\";\n /** Rejected / Error */\n States[\"REJECTED\"] = \"REJECTED\";\n})(States || (States = {}));\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nvar SyncPromise = /** @class */ (function () {\n function SyncPromise(executor) {\n var _this = this;\n this._state = States.PENDING;\n this._handlers = [];\n /** JSDoc */\n this._resolve = function (value) {\n _this._setResult(States.RESOLVED, value);\n };\n /** JSDoc */\n this._reject = function (reason) {\n _this._setResult(States.REJECTED, reason);\n };\n /** JSDoc */\n this._setResult = function (state, value) {\n if (_this._state !== States.PENDING) {\n return;\n }\n if (isThenable(value)) {\n value.then(_this._resolve, _this._reject);\n return;\n }\n _this._state = state;\n _this._value = value;\n _this._executeHandlers();\n };\n // TODO: FIXME\n /** JSDoc */\n this._attachHandler = function (handler) {\n _this._handlers = _this._handlers.concat(handler);\n _this._executeHandlers();\n };\n /** JSDoc */\n this._executeHandlers = function () {\n if (_this._state === States.PENDING) {\n return;\n }\n var cachedHandlers = _this._handlers.slice();\n _this._handlers = [];\n cachedHandlers.forEach(function (handler) {\n if (handler.done) {\n return;\n }\n if (_this._state === States.RESOLVED) {\n if (handler.onfulfilled) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler.onfulfilled(_this._value);\n }\n }\n if (_this._state === States.REJECTED) {\n if (handler.onrejected) {\n handler.onrejected(_this._value);\n }\n }\n handler.done = true;\n });\n };\n try {\n executor(this._resolve, this._reject);\n }\n catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n SyncPromise.resolve = function (value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n };\n /** JSDoc */\n SyncPromise.reject = function (reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n };\n /** JSDoc */\n SyncPromise.all = function (collection) {\n return new SyncPromise(function (resolve, reject) {\n if (!Array.isArray(collection)) {\n reject(new TypeError(\"Promise.all requires an array as input.\"));\n return;\n }\n if (collection.length === 0) {\n resolve([]);\n return;\n }\n var counter = collection.length;\n var resolvedCollection = [];\n collection.forEach(function (item, index) {\n SyncPromise.resolve(item)\n .then(function (value) {\n resolvedCollection[index] = value;\n counter -= 1;\n if (counter !== 0) {\n return;\n }\n resolve(resolvedCollection);\n })\n .then(null, reject);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.then = function (onfulfilled, onrejected) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n _this._attachHandler({\n done: false,\n onfulfilled: function (result) {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n return;\n }\n try {\n resolve(onfulfilled(result));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: function (reason) {\n if (!onrejected) {\n reject(reason);\n return;\n }\n try {\n resolve(onrejected(reason));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) { return val; }, onrejected);\n };\n /** JSDoc */\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n resolve(val);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.toString = function () {\n return '[object SyncPromise]';\n };\n return SyncPromise;\n}());\nexport { SyncPromise };\n//# sourceMappingURL=syncpromise.js.map","/**\n * Session Status\n */\nexport var SessionStatus;\n(function (SessionStatus) {\n /** JSDoc */\n SessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n SessionStatus[\"Exited\"] = \"exited\";\n /** JSDoc */\n SessionStatus[\"Crashed\"] = \"crashed\";\n /** JSDoc */\n SessionStatus[\"Abnormal\"] = \"abnormal\";\n})(SessionStatus || (SessionStatus = {}));\nexport var RequestSessionStatus;\n(function (RequestSessionStatus) {\n /** JSDoc */\n RequestSessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n RequestSessionStatus[\"Errored\"] = \"errored\";\n /** JSDoc */\n RequestSessionStatus[\"Crashed\"] = \"crashed\";\n})(RequestSessionStatus || (RequestSessionStatus = {}));\n//# sourceMappingURL=session.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { dateTimestampInSeconds, getGlobalObject, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n function Scope() {\n /** Flag if notifiying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n this._breadcrumbs = [];\n /** User */\n this._user = {};\n /** Tags */\n this._tags = {};\n /** Extra */\n this._extra = {};\n /** Contexts */\n this._contexts = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n Scope.clone = function (scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = __spread(scope._breadcrumbs);\n newScope._tags = __assign({}, scope._tags);\n newScope._extra = __assign({}, scope._extra);\n newScope._contexts = __assign({}, scope._contexts);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = __spread(scope._eventProcessors);\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n };\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user: user });\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getUser = function () {\n return this._user;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getRequestSession = function () {\n return this._requestSession;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setRequestSession = function (requestSession) {\n this._requestSession = requestSession;\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTags = function (tags) {\n this._tags = __assign(__assign({}, this._tags), tags);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTag = function (key, value) {\n var _a;\n this._tags = __assign(__assign({}, this._tags), (_a = {}, _a[key] = value, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtras = function (extras) {\n this._extra = __assign(__assign({}, this._extra), extras);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n this._extra = __assign(__assign({}, this._extra), (_a = {}, _a[key] = extra, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTransactionName = function (name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n Scope.prototype.setTransaction = function (name) {\n return this.setTransactionName(name);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setContext = function (key, context) {\n var _a;\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n }\n else {\n this._contexts = __assign(__assign({}, this._contexts), (_a = {}, _a[key] = context, _a));\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getTransaction = function () {\n var _a, _b, _c, _d;\n // often, this span will be a transaction, but it's not guaranteed to be\n var span = this.getSpan();\n // try it the new way first\n if ((_a = span) === null || _a === void 0 ? void 0 : _a.transaction) {\n return (_b = span) === null || _b === void 0 ? void 0 : _b.transaction;\n }\n // fallback to the old way (known bug: this only finds transactions with sampled = true)\n if ((_d = (_c = span) === null || _c === void 0 ? void 0 : _c.spanRecorder) === null || _d === void 0 ? void 0 : _d.spans[0]) {\n return span.spanRecorder.spans[0];\n }\n // neither way found a transaction\n return undefined;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSession = function (session) {\n if (!session) {\n delete this._session;\n }\n else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSession = function () {\n return this._session;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.update = function (captureContext) {\n if (!captureContext) {\n return this;\n }\n if (typeof captureContext === 'function') {\n var updatedScope = captureContext(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n if (captureContext instanceof Scope) {\n this._tags = __assign(__assign({}, this._tags), captureContext._tags);\n this._extra = __assign(__assign({}, this._extra), captureContext._extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext._contexts);\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n }\n else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext;\n this._tags = __assign(__assign({}, this._tags), captureContext.tags);\n this._extra = __assign(__assign({}, this._extra), captureContext.extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext.contexts);\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clear = function () {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var mergedBreadcrumb = __assign({ timestamp: dateTimestampInSeconds() }, breadcrumb);\n this._breadcrumbs =\n maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0\n ? __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxBreadcrumbs)\n : __spread(this._breadcrumbs, [mergedBreadcrumb]);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional informartion about the original exception.\n * @hidden\n */\n Scope.prototype.applyToEvent = function (event, hint) {\n var _a;\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = __assign(__assign({}, this._extra), event.extra);\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = __assign(__assign({}, this._tags), event.tags);\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = __assign(__assign({}, this._user), event.user);\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = __assign(__assign({}, this._contexts), event.contexts);\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relys on that.\n if (this._span) {\n event.contexts = __assign({ trace: this._span.getTraceContext() }, event.contexts);\n var transactionName = (_a = this._span.transaction) === null || _a === void 0 ? void 0 : _a.name;\n if (transactionName) {\n event.tags = __assign({ transaction: transactionName }, event.tags);\n }\n }\n this._applyFingerprint(event);\n event.breadcrumbs = __spread((event.breadcrumbs || []), this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n if (index === void 0) { index = 0; }\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n }\n else {\n var result = processor(__assign({}, event), hint);\n if (isThenable(result)) {\n result\n .then(function (final) { return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); })\n .then(null, reject);\n }\n else {\n _this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n };\n /**\n * This will be called on every set call.\n */\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\n this._notifyingListeners = false;\n }\n };\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n return Scope;\n}());\nexport { Scope };\n/**\n * Retruns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n var global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n//# sourceMappingURL=scope.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { consoleSandbox, getGlobalObject } from './misc';\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n/** JSDoc */\nvar Logger = /** @class */ (function () {\n /** JSDoc */\n function Logger() {\n this._enabled = false;\n }\n /** JSDoc */\n Logger.prototype.disable = function () {\n this._enabled = false;\n };\n /** JSDoc */\n Logger.prototype.enable = function () {\n this._enabled = true;\n };\n /** JSDoc */\n Logger.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.log(PREFIX + \"[Log]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.warn(PREFIX + \"[Warn]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.error(PREFIX + \"[Error]: \" + args.join(' '));\n });\n };\n return Logger;\n}());\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nvar logger = global.__SENTRY__.logger || (global.__SENTRY__.logger = new Logger());\nexport { logger };\n//# sourceMappingURL=logger.js.map","import { RequestSessionStatus, SessionStatus, } from '@sentry/types';\nimport { dropUndefinedKeys, logger, uuid4 } from '@sentry/utils';\nimport { getCurrentHub } from './hub';\n/**\n * @inheritdoc\n */\nvar Session = /** @class */ (function () {\n function Session(context) {\n this.errors = 0;\n this.sid = uuid4();\n this.timestamp = Date.now();\n this.started = Date.now();\n this.duration = 0;\n this.status = SessionStatus.Ok;\n this.init = true;\n if (context) {\n this.update(context);\n }\n }\n /** JSDoc */\n // eslint-disable-next-line complexity\n Session.prototype.update = function (context) {\n if (context === void 0) { context = {}; }\n if (context.user) {\n if (context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n if (!context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n this.timestamp = context.timestamp || Date.now();\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (context.did) {\n this.did = \"\" + context.did;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (typeof context.duration === 'number') {\n this.duration = context.duration;\n }\n else {\n this.duration = this.timestamp - this.started;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n };\n /** JSDoc */\n Session.prototype.close = function (status) {\n if (status) {\n this.update({ status: status });\n }\n else if (this.status === SessionStatus.Ok) {\n this.update({ status: SessionStatus.Exited });\n }\n else {\n this.update();\n }\n };\n /** JSDoc */\n Session.prototype.toJSON = function () {\n return dropUndefinedKeys({\n sid: \"\" + this.sid,\n init: this.init,\n started: new Date(this.started).toISOString(),\n timestamp: new Date(this.timestamp).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? \"\" + this.did : undefined,\n duration: this.duration,\n attrs: dropUndefinedKeys({\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n }),\n });\n };\n return Session;\n}());\nexport { Session };\n/**\n * @inheritdoc\n */\nvar SessionFlusher = /** @class */ (function () {\n function SessionFlusher(transport, attrs) {\n var _this = this;\n this.flushTimeout = 60;\n this._pendingAggregates = {};\n this._isEnabled = true;\n this._transport = transport;\n // Call to setInterval, so that flush is called every 60 seconds\n this._intervalId = setInterval(function () { return _this.flush(); }, this.flushTimeout * 1000);\n this._sessionAttrs = attrs;\n }\n /** Sends session aggregates to Transport */\n SessionFlusher.prototype.sendSessionAggregates = function (sessionAggregates) {\n if (!this._transport.sendSession) {\n logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n this._transport.sendSession(sessionAggregates).then(null, function (reason) {\n logger.error(\"Error while sending session: \" + reason);\n });\n };\n /** Checks if `pendingAggregates` has entries, and if it does flushes them by calling `sendSessions` */\n SessionFlusher.prototype.flush = function () {\n var sessionAggregates = this.getSessionAggregates();\n if (sessionAggregates.aggregates.length === 0) {\n return;\n }\n this._pendingAggregates = {};\n this.sendSessionAggregates(sessionAggregates);\n };\n /** Massages the entries in `pendingAggregates` and returns aggregated sessions */\n SessionFlusher.prototype.getSessionAggregates = function () {\n var _this = this;\n var aggregates = Object.keys(this._pendingAggregates).map(function (key) {\n return _this._pendingAggregates[parseInt(key)];\n });\n var sessionAggregates = {\n attrs: this._sessionAttrs,\n aggregates: aggregates,\n };\n return dropUndefinedKeys(sessionAggregates);\n };\n /** JSDoc */\n SessionFlusher.prototype.close = function () {\n clearInterval(this._intervalId);\n this._isEnabled = false;\n this.flush();\n };\n /**\n * Wrapper function for _incrementSessionStatusCount that checks if the instance of SessionFlusher is enabled then\n * fetches the session status of the request from `Scope.getRequestSession().status` on the scope and passes them to\n * `_incrementSessionStatusCount` along with the start date\n */\n SessionFlusher.prototype.incrementSessionStatusCount = function () {\n var _a, _b;\n if (!this._isEnabled) {\n return;\n }\n var scope = getCurrentHub().getScope();\n var requestSession = (_a = scope) === null || _a === void 0 ? void 0 : _a.getRequestSession();\n if (requestSession && requestSession.status) {\n this._incrementSessionStatusCount(requestSession.status, new Date());\n // This is not entirely necessarily but is added as a safe guard to indicate the bounds of a request and so in\n // case captureRequestSession is called more than once to prevent double count\n (_b = scope) === null || _b === void 0 ? void 0 : _b.setRequestSession(undefined);\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n }\n };\n /**\n * Increments status bucket in pendingAggregates buffer (internal state) corresponding to status of\n * the session received\n */\n SessionFlusher.prototype._incrementSessionStatusCount = function (status, date) {\n // Truncate minutes and seconds on Session Started attribute to have one minute bucket keys\n var sessionStartedTrunc = new Date(date).setSeconds(0, 0);\n this._pendingAggregates[sessionStartedTrunc] = this._pendingAggregates[sessionStartedTrunc] || {};\n // corresponds to aggregated sessions in one specific minute bucket\n // for example, {\"started\":\"2021-03-16T08:00:00.000Z\",\"exited\":4, \"errored\": 1}\n var aggregationCounts = this._pendingAggregates[sessionStartedTrunc];\n if (!aggregationCounts.started) {\n aggregationCounts.started = new Date(sessionStartedTrunc).toISOString();\n }\n switch (status) {\n case RequestSessionStatus.Errored:\n aggregationCounts.errored = (aggregationCounts.errored || 0) + 1;\n return aggregationCounts.errored;\n case RequestSessionStatus.Ok:\n aggregationCounts.exited = (aggregationCounts.exited || 0) + 1;\n return aggregationCounts.exited;\n case RequestSessionStatus.Crashed:\n aggregationCounts.crashed = (aggregationCounts.crashed || 0) + 1;\n return aggregationCounts.crashed;\n }\n };\n return SessionFlusher;\n}());\nexport { SessionFlusher };\n//# sourceMappingURL=session.js.map","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable max-lines */\nimport { SessionStatus, } from '@sentry/types';\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, isNodeEnv, logger, uuid4 } from '@sentry/utils';\nimport { Scope } from './scope';\nimport { Session } from './session';\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport var API_VERSION = 4;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * Absolute maximum number of breadcrumbs added to an event. The\n * `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\nvar Hub = /** @class */ (function () {\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n function Hub(client, scope, _version) {\n if (scope === void 0) { scope = new Scope(); }\n if (_version === void 0) { _version = API_VERSION; }\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n this._stack = [{}];\n this.getStackTop().scope = scope;\n this.bindClient(client);\n }\n /**\n * @inheritDoc\n */\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope: scope,\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.popScope = function () {\n if (this.getStack().length <= 1)\n return false;\n return !!this.getStack().pop();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n }\n finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureException', exception, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: message,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureMessage', message, level, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = (this._lastEventId = uuid4());\n this._invokeClient('captureEvent', event, __assign(__assign({}, hint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope || !client)\n return;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _b = (client.getOptions && client.getOptions()) || {}, _c = _b.beforeBreadcrumb, beforeBreadcrumb = _c === void 0 ? null : _c, _d = _b.maxBreadcrumbs, maxBreadcrumbs = _d === void 0 ? DEFAULT_BREADCRUMBS : _d;\n if (maxBreadcrumbs <= 0)\n return;\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = __assign({ timestamp: timestamp }, breadcrumb);\n var finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n : mergedBreadcrumb;\n if (finalBreadcrumb === null)\n return;\n scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS));\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setUser = function (user) {\n var scope = this.getScope();\n if (scope)\n scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTags = function (tags) {\n var scope = this.getScope();\n if (scope)\n scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtras = function (extras) {\n var scope = this.getScope();\n if (scope)\n scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTag = function (key, value) {\n var scope = this.getScope();\n if (scope)\n scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtra = function (key, extra) {\n var scope = this.getScope();\n if (scope)\n scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype.setContext = function (name, context) {\n var scope = this.getScope();\n if (scope)\n scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.configureScope = function (callback) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (scope && client) {\n callback(scope);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n }\n finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client)\n return null;\n try {\n return client.getIntegration(integration);\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSpan = function (context) {\n return this._callExtensionMethod('startSpan', context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startTransaction = function (context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureSession = function (endSession) {\n if (endSession === void 0) { endSession = false; }\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n // only send the update\n this._sendSessionUpdate();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.endSession = function () {\n var _a, _b, _c, _d, _e;\n (_c = (_b = (_a = this.getStackTop()) === null || _a === void 0 ? void 0 : _a.scope) === null || _b === void 0 ? void 0 : _b.getSession()) === null || _c === void 0 ? void 0 : _c.close();\n this._sendSessionUpdate();\n // the session is over; take it off of the scope\n (_e = (_d = this.getStackTop()) === null || _d === void 0 ? void 0 : _d.scope) === null || _e === void 0 ? void 0 : _e.setSession();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSession = function (context) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n var _b = (client && client.getOptions()) || {}, release = _b.release, environment = _b.environment;\n var session = new Session(__assign(__assign({ release: release,\n environment: environment }, (scope && { user: scope.getUser() })), context));\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === SessionStatus.Ok) {\n currentSession.update({ status: SessionStatus.Exited });\n }\n this.endSession();\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n return session;\n };\n /**\n * Sends the current Session on the scope\n */\n Hub.prototype._sendSessionUpdate = function () {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope)\n return;\n var session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n };\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._invokeClient = function (method) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _b = this.getStackTop(), scope = _b.scope, client = _b.client;\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (_a = client)[method].apply(_a, __spread(args, [scope]));\n }\n };\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n return Hub;\n}());\nexport { Hub };\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain() {\n logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n var sentry = getMainCarrier().__SENTRY__;\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n var _a, _b, _c;\n try {\n var activeDomain = (_c = (_b = (_a = getMainCarrier().__SENTRY__) === null || _a === void 0 ? void 0 : _a.extensions) === null || _b === void 0 ? void 0 : _b.domain) === null || _c === void 0 ? void 0 : _c.active;\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n }\n catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub)\n return carrier.__SENTRY__.hub;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\n}\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier)\n return false;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n//# sourceMappingURL=hub.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\nvar InboundFilters = /** @class */ (function () {\n function InboundFilters(_options) {\n if (_options === void 0) { _options = {}; }\n this._options = _options;\n /**\n * @inheritDoc\n */\n this.name = InboundFilters.id;\n }\n /**\n * @inheritDoc\n */\n InboundFilters.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var hub = getCurrentHub();\n if (!hub) {\n return event;\n }\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n // This checks prevents most of the occurrences of the bug linked below:\n // https://github.com/getsentry/sentry-javascript/issues/2622\n // The bug is caused by multiple SDK instances, where one is minified and one is using non-mangled code.\n // Unfortunatelly we cannot fix it reliably (thus reserved property in rollup's terser config),\n // as we cannot force people using multiple instances in their apps to sync SDK versions.\n var options = typeof self._mergeOptions === 'function' ? self._mergeOptions(clientOptions) : {};\n if (typeof self._shouldDropEvent !== 'function') {\n return event;\n }\n return self._shouldDropEvent(event, options) ? null : event;\n }\n return event;\n });\n };\n /** JSDoc */\n InboundFilters.prototype._shouldDropEvent = function (event, options) {\n if (this._isSentryError(event, options)) {\n logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isIgnoredError(event, options)) {\n logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isDeniedUrl(event, options)) {\n logger.warn(\"Event dropped due to being matched by `denyUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n if (!this._isAllowedUrl(event, options)) {\n logger.warn(\"Event dropped due to not being matched by `allowUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n return false;\n };\n /** JSDoc */\n InboundFilters.prototype._isSentryError = function (event, options) {\n if (!options.ignoreInternal) {\n return false;\n }\n try {\n return ((event &&\n event.exception &&\n event.exception.values &&\n event.exception.values[0] &&\n event.exception.values[0].type === 'SentryError') ||\n false);\n }\n catch (_oO) {\n return false;\n }\n };\n /** JSDoc */\n InboundFilters.prototype._isIgnoredError = function (event, options) {\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n return this._getPossibleEventMessages(event).some(function (message) {\n // Not sure why TypeScript complains here...\n return options.ignoreErrors.some(function (pattern) { return isMatchingPattern(message, pattern); });\n });\n };\n /** JSDoc */\n InboundFilters.prototype._isDeniedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.denyUrls || !options.denyUrls.length) {\n return false;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? false : options.denyUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._isAllowedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.allowUrls || !options.allowUrls.length) {\n return true;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? true : options.allowUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._mergeOptions = function (clientOptions) {\n if (clientOptions === void 0) { clientOptions = {}; }\n return {\n allowUrls: __spread((this._options.whitelistUrls || []), (this._options.allowUrls || []), (clientOptions.whitelistUrls || []), (clientOptions.allowUrls || [])),\n denyUrls: __spread((this._options.blacklistUrls || []), (this._options.denyUrls || []), (clientOptions.blacklistUrls || []), (clientOptions.denyUrls || [])),\n ignoreErrors: __spread((this._options.ignoreErrors || []), (clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS),\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true,\n };\n };\n /** JSDoc */\n InboundFilters.prototype._getPossibleEventMessages = function (event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n var _a = (event.exception.values && event.exception.values[0]) || {}, _b = _a.type, type = _b === void 0 ? '' : _b, _c = _a.value, value = _c === void 0 ? '' : _c;\n return [\"\" + value, type + \": \" + value];\n }\n catch (oO) {\n logger.error(\"Cannot extract message for event \" + getEventDescription(event));\n return [];\n }\n }\n return [];\n };\n /** JSDoc */\n InboundFilters.prototype._getEventFilterUrl = function (event) {\n try {\n if (event.stacktrace) {\n var frames_1 = event.stacktrace.frames;\n return (frames_1 && frames_1[frames_1.length - 1].filename) || null;\n }\n if (event.exception) {\n var frames_2 = event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames;\n return (frames_2 && frames_2[frames_2.length - 1].filename) || null;\n }\n return null;\n }\n catch (oO) {\n logger.error(\"Cannot extract url for event \" + getEventDescription(event));\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n InboundFilters.id = 'InboundFilters';\n return InboundFilters;\n}());\nexport { InboundFilters };\n//# sourceMappingURL=inboundfilters.js.map","import { logger } from './logger';\nimport { getGlobalObject } from './misc';\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException() {\n try {\n new DOMException('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n var global = getGlobalObject();\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n var result = false;\n var doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof doc.createElement === \"function\") {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n }\n catch (err) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n return result;\n}\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n if (!supportsFetch()) {\n return false;\n }\n try {\n new Request('_', {\n referrerPolicy: 'origin',\n });\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var chrome = global.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}\n//# sourceMappingURL=supports.js.map","import { __assign, __values } from \"tslib\";\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { getGlobalObject } from './misc';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nvar global = getGlobalObject();\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\nvar handlers = {};\nvar instrumented = {};\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n instrumented[type] = true;\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n logger.warn('unknown instrumentation type:', type);\n }\n}\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(handler) {\n if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') {\n return;\n }\n handlers[handler.type] = handlers[handler.type] || [];\n handlers[handler.type].push(handler.callback);\n instrument(handler.type);\n}\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n var e_1, _a;\n if (!type || !handlers[type]) {\n return;\n }\n try {\n for (var _b = __values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n try {\n handler(data);\n }\n catch (e) {\n logger.error(\"Error while triggering instrumentation handler.\\nType: \" + type + \"\\nName: \" + getFunctionName(handler) + \"\\nError: \" + e);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n fill(global.console, level, function (originalConsoleLevel) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n triggerHandlers('console', { args: args, level: level });\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n fill(global, 'fetch', function (originalFetch) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var handlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n triggerHandlers('fetch', __assign({}, handlerData));\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(function (response) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), response: response }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), error: error }));\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n });\n };\n });\n}\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n // Poor man's implementation of ES6 `Map`, tracking and keeping in sync key and value separately.\n var requestKeys = [];\n var requestValues = [];\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var url = args[1];\n xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n };\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhr.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n if (xhr.__sentry_xhr__) {\n xhr.__sentry_xhr__.status_code = xhr.status;\n }\n }\n catch (e) {\n /* do nothing */\n }\n try {\n var requestPos = requestKeys.indexOf(xhr);\n if (requestPos !== -1) {\n // Make sure to pop both key and value to keep it in sync.\n requestKeys.splice(requestPos);\n var args_1 = requestValues.splice(requestPos)[0];\n if (xhr.__sentry_xhr__ && args_1[0] !== undefined) {\n xhr.__sentry_xhr__.body = args_1[0];\n }\n }\n }\n catch (e) {\n /* do nothing */\n }\n triggerHandlers('xhr', {\n args: args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr: xhr,\n });\n }\n };\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n var readyStateArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n readyStateArgs[_i] = arguments[_i];\n }\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n }\n else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n return originalOpen.apply(xhr, args);\n };\n });\n fill(xhrproto, 'send', function (originalSend) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n requestKeys.push(this);\n requestValues.push(args);\n triggerHandlers('xhr', {\n args: args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n return originalSend.apply(this, args);\n };\n });\n}\nvar lastHref;\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n }\n catch (_oO) {\n // no-empty\n }\n }\n };\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\nvar debounceDuration = 1000;\nvar debounceTimerID;\nvar lastCapturedEvent;\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n try {\n var target = event.target;\n if (!target || !target.tagName) {\n return true;\n }\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n return true;\n}\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener) {\n if (globalListener === void 0) { globalListener = false; }\n return function (event) {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n var name = event.type === 'keypress' ? 'input' : event.type;\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(function () {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach(function (target) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_1 = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers_1[type] = handlers_1[type] || { refCount: 0 });\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n handlerForType.refCount += 1;\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_2 = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers_2[type];\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers_2[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers_2).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n });\n });\n}\nvar _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column: column,\n error: error,\n line: line,\n msg: msg,\n url: url,\n });\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n return false;\n };\n}\nvar _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n return true;\n };\n}\n//# sourceMappingURL=instrument.js.map","export var setPrototypeOf = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj, proto) {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj;\n}\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj, proto) {\n for (var prop in proto) {\n // eslint-disable-next-line no-prototype-builtins\n if (!obj.hasOwnProperty(prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n return obj;\n}\n//# sourceMappingURL=polyfill.js.map","import { __extends } from \"tslib\";\nimport { setPrototypeOf } from './polyfill';\n/** An error emitted by Sentry SDKs and related utilities. */\nvar SentryError = /** @class */ (function (_super) {\n __extends(SentryError, _super);\n function SentryError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _newTarget.prototype.constructor.name;\n setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return SentryError;\n}(Error));\nexport { SentryError };\n//# sourceMappingURL=error.js.map","import { __read } from \"tslib\";\nimport { SentryError } from './error';\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n/** Error message */\nvar ERROR_MESSAGE = 'Invalid Dsn';\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nvar Dsn = /** @class */ (function () {\n /** Creates a new Dsn component */\n function Dsn(from) {\n if (typeof from === 'string') {\n this._fromString(from);\n }\n else {\n this._fromComponents(from);\n }\n this._validate();\n }\n /**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\n Dsn.prototype.toString = function (withPassword) {\n if (withPassword === void 0) { withPassword = false; }\n var _a = this, host = _a.host, path = _a.path, pass = _a.pass, port = _a.port, projectId = _a.projectId, protocol = _a.protocol, publicKey = _a.publicKey;\n return (protocol + \"://\" + publicKey + (withPassword && pass ? \":\" + pass : '') +\n (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId));\n };\n /** Parses a string into this Dsn. */\n Dsn.prototype._fromString = function (str) {\n var match = DSN_REGEX.exec(str);\n if (!match) {\n throw new SentryError(ERROR_MESSAGE);\n }\n var _a = __read(match.slice(1), 6), protocol = _a[0], publicKey = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5];\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop();\n }\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n this._fromComponents({ host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, publicKey: publicKey });\n };\n /** Maps Dsn components into this instance. */\n Dsn.prototype._fromComponents = function (components) {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n this.user = components.publicKey || '';\n this.protocol = components.protocol;\n this.publicKey = components.publicKey || '';\n this.pass = components.pass || '';\n this.host = components.host;\n this.port = components.port || '';\n this.path = components.path || '';\n this.projectId = components.projectId;\n };\n /** Validates this Dsn and throws on error. */\n Dsn.prototype._validate = function () {\n var _this = this;\n ['protocol', 'publicKey', 'host', 'projectId'].forEach(function (component) {\n if (!_this[component]) {\n throw new SentryError(ERROR_MESSAGE + \": \" + component + \" missing\");\n }\n });\n if (!this.projectId.match(/^\\d+$/)) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid projectId \" + this.projectId);\n }\n if (this.protocol !== 'http' && this.protocol !== 'https') {\n throw new SentryError(ERROR_MESSAGE + \": Invalid protocol \" + this.protocol);\n }\n if (this.port && isNaN(parseInt(this.port, 10))) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid port \" + this.port);\n }\n };\n return Dsn;\n}());\nexport { Dsn };\n//# sourceMappingURL=dsn.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nexport var installedIntegrations = [];\n/**\n * @private\n */\nfunction filterDuplicates(integrations) {\n return integrations.reduce(function (acc, integrations) {\n if (acc.every(function (accIntegration) { return integrations.name !== accIntegration.name; })) {\n acc.push(integrations);\n }\n return acc;\n }, []);\n}\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && __spread(options.defaultIntegrations)) || [];\n var userIntegrations = options.integrations;\n var integrations = __spread(filterDuplicates(defaultIntegrations));\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = __spread(integrations.filter(function (integrations) {\n return userIntegrations.every(function (userIntegration) { return userIntegration.name !== integrations.name; });\n }), filterDuplicates(userIntegrations));\n }\n else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(function (i) { return i.name; });\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push.apply(integrations, __spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1)));\n }\n return integrations;\n}\n/** Setup given integration */\nexport function setupIntegration(integration) {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(\"Integration installed: \" + integration.name);\n}\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options) {\n var integrations = {};\n getIntegrationsToSetup(options).forEach(function (integration) {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n return integrations;\n}\n//# sourceMappingURL=integration.js.map","import { __assign, __read, __spread, __values } from \"tslib\";\n/* eslint-disable max-lines */\nimport { Scope } from '@sentry/hub';\nimport { SessionStatus, } from '@sentry/types';\nimport { dateTimestampInSeconds, Dsn, isPrimitive, isThenable, logger, normalize, SentryError, SyncPromise, truncate, uuid4, } from '@sentry/utils';\nimport { setupIntegrations } from './integration';\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nvar BaseClient = /** @class */ (function () {\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n function BaseClient(backendClass, options) {\n /** Array of used integrations. */\n this._integrations = {};\n /** Number of call being processed */\n this._processing = 0;\n this._backend = new backendClass(options);\n this._options = options;\n if (options.dsn) {\n this._dsn = new Dsn(options.dsn);\n }\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseClient.prototype.captureException = function (exception, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n this._process(this._getBackend()\n .eventFromException(exception, hint)\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n var promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n this._process(promisedEvent\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureEvent = function (event, hint, scope) {\n var eventId = hint && hint.event_id;\n this._process(this._captureEvent(event, hint, scope).then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureSession = function (session) {\n if (!(typeof session.release === 'string')) {\n logger.warn('Discarded session because of missing or non-string release');\n }\n else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getDsn = function () {\n return this._dsn;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getOptions = function () {\n return this._options;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.flush = function (timeout) {\n var _this = this;\n return this._isClientProcessing(timeout).then(function (ready) {\n return _this._getBackend()\n .getTransport()\n .close(timeout)\n .then(function (transportFlushed) { return ready && transportFlushed; });\n });\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.close = function (timeout) {\n var _this = this;\n return this.flush(timeout).then(function (result) {\n _this.getOptions().enabled = false;\n return result;\n });\n };\n /**\n * Sets up the integrations\n */\n BaseClient.prototype.setupIntegrations = function () {\n if (this._isEnabled()) {\n this._integrations = setupIntegrations(this._options);\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getIntegration = function (integration) {\n try {\n return this._integrations[integration.id] || null;\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n return null;\n }\n };\n /** Updates existing session based on the provided event */\n BaseClient.prototype._updateSessionFromEvent = function (session, event) {\n var e_1, _a;\n var crashed = false;\n var errored = false;\n var userAgent;\n var exceptions = event.exception && event.exception.values;\n if (exceptions) {\n errored = true;\n try {\n for (var exceptions_1 = __values(exceptions), exceptions_1_1 = exceptions_1.next(); !exceptions_1_1.done; exceptions_1_1 = exceptions_1.next()) {\n var ex = exceptions_1_1.value;\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (exceptions_1_1 && !exceptions_1_1.done && (_a = exceptions_1.return)) _a.call(exceptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n var user = event.user;\n if (!session.userAgent) {\n var headers = event.request ? event.request.headers : {};\n for (var key in headers) {\n if (key.toLowerCase() === 'user-agent') {\n userAgent = headers[key];\n break;\n }\n }\n }\n session.update(__assign(__assign({}, (crashed && { status: SessionStatus.Crashed })), { user: user,\n userAgent: userAgent, errors: session.errors + Number(errored || crashed) }));\n this.captureSession(session);\n };\n /** Deliver captured session to Sentry */\n BaseClient.prototype._sendSession = function (session) {\n this._getBackend().sendSession(session);\n };\n /** Waits for the client to be done with processing. */\n BaseClient.prototype._isClientProcessing = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = setInterval(function () {\n if (_this._processing == 0) {\n clearInterval(interval);\n resolve(true);\n }\n else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n };\n /** Returns the current backend. */\n BaseClient.prototype._getBackend = function () {\n return this._backend;\n };\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n BaseClient.prototype._isEnabled = function () {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n };\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n BaseClient.prototype._prepareEvent = function (event, scope, hint) {\n var _this = this;\n var _a = this.getOptions().normalizeDepth, normalizeDepth = _a === void 0 ? 3 : _a;\n var prepared = __assign(__assign({}, event), { event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()), timestamp: event.timestamp || dateTimestampInSeconds() });\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n var finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n // We prepare the result here with a resolved Event.\n var result = SyncPromise.resolve(prepared);\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n return result.then(function (evt) {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this._normalizeEvent(evt, normalizeDepth);\n }\n return evt;\n });\n };\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n BaseClient.prototype._normalizeEvent = function (event, depth) {\n if (!event) {\n return null;\n }\n var normalized = __assign(__assign(__assign(__assign(__assign({}, event), (event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) { return (__assign(__assign({}, b), (b.data && {\n data: normalize(b.data, depth),\n }))); }),\n })), (event.user && {\n user: normalize(event.user, depth),\n })), (event.contexts && {\n contexts: normalize(event.contexts, depth),\n })), (event.extra && {\n extra: normalize(event.extra, depth),\n }));\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n return normalized;\n };\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n BaseClient.prototype._applyClientOptions = function (event) {\n var options = this.getOptions();\n var environment = options.environment, release = options.release, dist = options.dist, _a = options.maxValueLength, maxValueLength = _a === void 0 ? 250 : _a;\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n var exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n };\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n BaseClient.prototype._applyIntegrationsMetadata = function (event) {\n var integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = __spread((event.sdk.integrations || []), integrationsArray);\n }\n };\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n BaseClient.prototype._sendEvent = function (event) {\n this._getBackend().sendEvent(event);\n };\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n BaseClient.prototype._captureEvent = function (event, hint, scope) {\n return this._processEvent(event, hint, scope).then(function (finalEvent) {\n return finalEvent.event_id;\n }, function (reason) {\n logger.error(reason);\n return undefined;\n });\n };\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n BaseClient.prototype._processEvent = function (event, hint, scope) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.getOptions(), beforeSend = _a.beforeSend, sampleRate = _a.sampleRate;\n if (!this._isEnabled()) {\n return SyncPromise.reject(new SentryError('SDK not enabled, will not send event.'));\n }\n var isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n return SyncPromise.reject(new SentryError(\"Discarding event because it's not included in the random sample (sampling rate = \" + sampleRate + \")\"));\n }\n return this._prepareEvent(event, scope, hint)\n .then(function (prepared) {\n if (prepared === null) {\n throw new SentryError('An event processor returned null, will not send event.');\n }\n var isInternalException = hint && hint.data && hint.data.__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n var beforeSendResult = beforeSend(prepared, hint);\n if (typeof beforeSendResult === 'undefined') {\n throw new SentryError('`beforeSend` method has to return `null` or a valid event.');\n }\n else if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(function (event) { return event; }, function (e) {\n throw new SentryError(\"beforeSend rejected with \" + e);\n });\n }\n return beforeSendResult;\n })\n .then(function (processedEvent) {\n if (processedEvent === null) {\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n var session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n _this._updateSessionFromEvent(session, processedEvent);\n }\n _this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, function (reason) {\n if (reason instanceof SentryError) {\n throw reason;\n }\n _this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\"Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: \" + reason);\n });\n };\n /**\n * Occupies the client with processing and event\n */\n BaseClient.prototype._process = function (promise) {\n var _this = this;\n this._processing += 1;\n promise.then(function (value) {\n _this._processing -= 1;\n return value;\n }, function (reason) {\n _this._processing -= 1;\n return reason;\n });\n };\n return BaseClient;\n}());\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map","/** The status of an event. */\n// eslint-disable-next-line import/export\nexport var Status;\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent to Sentry successfully. */\n Status[\"Success\"] = \"success\";\n /** The client is currently rate limited and will try again later. */\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The event could not be processed. */\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error ocurred during submission. */\n Status[\"Failed\"] = \"failed\";\n})(Status || (Status = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Status) {\n /**\n * Converts a HTTP status code into a {@link Status}.\n *\n * @param code The HTTP response status code.\n * @returns The send status or {@link Status.Unknown}.\n */\n function fromHttpCode(code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n if (code === 429) {\n return Status.RateLimit;\n }\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n if (code >= 500) {\n return Status.Failed;\n }\n return Status.Unknown;\n }\n Status.fromHttpCode = fromHttpCode;\n})(Status || (Status = {}));\n//# sourceMappingURL=status.js.map","import { Status } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n/** Noop transport */\nvar NoopTransport = /** @class */ (function () {\n function NoopTransport() {\n }\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.sendEvent = function (_) {\n return SyncPromise.resolve({\n reason: \"NoopTransport: Event has been skipped because no Dsn is configured.\",\n status: Status.Skipped,\n });\n };\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.close = function (_) {\n return SyncPromise.resolve(true);\n };\n return NoopTransport;\n}());\nexport { NoopTransport };\n//# sourceMappingURL=noop.js.map","/** JSDoc */\n// eslint-disable-next-line import/export\nexport var Severity;\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Severity) {\n /**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\n function fromString(level) {\n switch (level) {\n case 'debug':\n return Severity.Debug;\n case 'info':\n return Severity.Info;\n case 'warn':\n case 'warning':\n return Severity.Warning;\n case 'error':\n return Severity.Error;\n case 'fatal':\n return Severity.Fatal;\n case 'critical':\n return Severity.Critical;\n case 'log':\n default:\n return Severity.Log;\n }\n }\n Severity.fromString = fromString;\n})(Severity || (Severity = {}));\n//# sourceMappingURL=severity.js.map","import { logger, SentryError } from '@sentry/utils';\nimport { NoopTransport } from './transports/noop';\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nvar BaseBackend = /** @class */ (function () {\n /** Creates a new backend instance. */\n function BaseBackend(options) {\n this._options = options;\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n throw new SentryError('Backend has to implement `eventFromException` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendEvent = function (event) {\n this._transport.sendEvent(event).then(null, function (reason) {\n logger.error(\"Error while sending event: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendSession = function (session) {\n if (!this._transport.sendSession) {\n logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n this._transport.sendSession(session).then(null, function (reason) {\n logger.error(\"Error while sending session: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.getTransport = function () {\n return this._transport;\n };\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n BaseBackend.prototype._setupTransport = function () {\n return new NoopTransport();\n };\n return BaseBackend;\n}());\nexport { BaseBackend };\n//# sourceMappingURL=basebackend.js.map","/**\n * This was originally forked from https://github.com/occ/TraceKit, but has since been\n * largely modified and is now maintained as part of Sentry JS SDK.\n */\nimport { __assign } from \"tslib\";\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nvar chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function computeStackTrace(ex) {\n var stack = null;\n var popSize = 0;\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n popSize = ex.framesToPop;\n }\n else if (reactMinifiedRegexp.test(ex.message)) {\n popSize = 1;\n }\n }\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, complexity\nfunction computeStackTraceFromStackProp(ex) {\n if (!ex || !ex.stack) {\n return null;\n }\n var stack = [];\n var lines = ex.stack.split('\\n');\n var isEval;\n var submatch;\n var parts;\n var element;\n for (var i = 0; i < lines.length; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n // Arpad: Working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `\n // prefix here seems like the quickest solution for now.\n var url = parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2];\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n var func = parts[1] || UNKNOWN_FUNCTION;\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n if (isSafariExtension || isSafariWebExtension) {\n func = func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION;\n url = isSafariExtension ? \"safari-extension:\" + url : \"safari-web-extension:\" + url;\n }\n element = {\n url: url,\n func: func,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = gecko.exec(lines[i]))) {\n isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || \"eval\";\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = ''; // no column when eval\n }\n else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null,\n };\n }\n else {\n continue;\n }\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction computeStackTraceFromStacktraceProp(ex) {\n if (!ex || !ex.stacktrace) {\n return null;\n }\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace;\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n var opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\((.*)\\))? in (.*):\\s*$/i;\n var lines = stacktrace.split('\\n');\n var stack = [];\n var parts;\n for (var line = 0; line < lines.length; line += 2) {\n var element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null,\n };\n }\n else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(',') : [],\n line: +parts[1],\n column: +parts[2],\n };\n }\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** Remove N number of frames from the stack */\nfunction popFrames(stacktrace, popSize) {\n try {\n return __assign(__assign({}, stacktrace), { stack: stacktrace.stack.slice(popSize) });\n }\n catch (e) {\n return stacktrace;\n }\n}\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n//# sourceMappingURL=tracekit.js.map","import { extractExceptionKeysForMessage, isEvent, normalizeToSize } from '@sentry/utils';\nimport { computeStackTrace } from './tracekit';\nvar STACKTRACE_LIMIT = 50;\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromStacktrace(stacktrace) {\n var frames = prepareFramesForEvent(stacktrace.stack);\n var exception = {\n type: stacktrace.name,\n value: stacktrace.message,\n };\n if (frames && frames.length) {\n exception.stacktrace = { frames: frames };\n }\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n return exception;\n}\n/**\n * @hidden\n */\nexport function eventFromPlainObject(exception, syntheticException, rejection) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \" + (rejection ? 'promise rejection' : 'exception') + \" captured with keys: \" + extractExceptionKeysForMessage(exception),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n if (syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromStacktrace(stacktrace) {\n var exception = exceptionFromStacktrace(stacktrace);\n return {\n exception: {\n values: [exception],\n },\n };\n}\n/**\n * @hidden\n */\nexport function prepareFramesForEvent(stack) {\n if (!stack || !stack.length) {\n return [];\n }\n var localStack = stack;\n var firstFrameFunction = localStack[0].func || '';\n var lastFrameFunction = localStack[localStack.length - 1].func || '';\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(function (frame) { return ({\n colno: frame.column === null ? undefined : frame.column,\n filename: frame.url || localStack[0].url,\n function: frame.func || '?',\n in_app: true,\n lineno: frame.line === null ? undefined : frame.line,\n }); })\n .reverse();\n}\n//# sourceMappingURL=parsers.js.map","import { __assign } from \"tslib\";\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addExceptionTypeValue, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, SyncPromise, } from '@sentry/utils';\nimport { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';\nimport { computeStackTrace } from './tracekit';\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nexport function eventFromException(options, exception, hint) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic',\n });\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(options, message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(message, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(exception, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event;\n if (isErrorEvent(exception) && exception.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception;\n // eslint-disable-next-line no-param-reassign\n exception = errorEvent.error;\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isDOMError(exception) || isDOMException(exception)) {\n // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers)\n // then we just extract the name, code, and message, as they don't provide anything else\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n var domException = exception;\n var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? name_1 + \": \" + domException.message : name_1;\n event = eventFromString(message, syntheticException, options);\n addExceptionTypeValue(event, message);\n if ('code' in domException) {\n event.tags = __assign(__assign({}, event.tags), { 'DOMException.code': \"\" + domException.code });\n }\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it is plain Object or Event, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n var objectException = exception;\n event = eventFromPlainObject(objectException, syntheticException, options.rejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception, syntheticException, options);\n addExceptionTypeValue(event, \"\" + exception, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromString(input, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event = {\n message: input,\n };\n if (options.attachStacktrace && syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n//# sourceMappingURL=eventbuilder.js.map","import { __assign, __read, __rest, __spread } from \"tslib\";\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api) {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n var _a = api.metadata.sdk, name = _a.name, version = _a.version;\n return { name: name, version: version };\n}\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = __spread((event.sdk.integrations || []), (sdkInfo.integrations || []));\n event.sdk.packages = __spread((event.sdk.packages || []), (sdkInfo.packages || []));\n return event;\n}\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var envelopeHeaders = JSON.stringify(__assign({ sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })));\n // I know this is hacky but we don't want to add `session` to request type since it's never rate limited\n var type = 'aggregates' in session ? 'sessions' : 'session';\n var itemHeaders = JSON.stringify({\n type: type,\n });\n return {\n body: envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + JSON.stringify(session),\n type: type,\n url: api.getEnvelopeEndpointWithUrlEncodedAuth(),\n };\n}\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var eventType = event.type || 'event';\n var useEnvelope = eventType === 'transaction';\n var _a = event.debug_meta || {}, transactionSampling = _a.transactionSampling, metadata = __rest(_a, [\"transactionSampling\"]);\n var _b = transactionSampling || {}, samplingMethod = _b.method, sampleRate = _b.rate;\n if (Object.keys(metadata).length === 0) {\n delete event.debug_meta;\n }\n else {\n event.debug_meta = metadata;\n }\n var req = {\n body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n type: eventType,\n url: useEnvelope ? api.getEnvelopeEndpointWithUrlEncodedAuth() : api.getStoreEndpointWithUrlEncodedAuth(),\n };\n // https://develop.sentry.dev/sdk/envelopes/\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n var envelopeHeaders = JSON.stringify(__assign({ event_id: event.event_id, sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })));\n var itemHeaders = JSON.stringify({\n type: event.type,\n // TODO: Right now, sampleRate may or may not be defined (it won't be in the cases of inheritance and\n // explicitly-set sampling decisions). Are we good with that?\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n });\n // The trailing newline is optional. We intentionally don't send it to avoid\n // sending unnecessary bytes.\n //\n // const envelope = `${envelopeHeaders}\\n${itemHeaders}\\n${req.body}\\n`;\n var envelope = envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + req.body;\n req.body = envelope;\n }\n return req;\n}\n//# sourceMappingURL=request.js.map","import { Dsn, urlEncode } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n **/\nvar API = /** @class */ (function () {\n /** Create a new instance of API */\n function API(dsn, metadata) {\n if (metadata === void 0) { metadata = {}; }\n this.dsn = dsn;\n this._dsnObject = new Dsn(dsn);\n this.metadata = metadata;\n }\n /** Returns the Dsn object. */\n API.prototype.getDsn = function () {\n return this._dsnObject;\n };\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n API.prototype.getBaseApiEndpoint = function () {\n var dsn = this._dsnObject;\n var protocol = dsn.protocol ? dsn.protocol + \":\" : '';\n var port = dsn.port ? \":\" + dsn.port : '';\n return protocol + \"//\" + dsn.host + port + (dsn.path ? \"/\" + dsn.path : '') + \"/api/\";\n };\n /** Returns the store endpoint URL. */\n API.prototype.getStoreEndpoint = function () {\n return this._getIngestEndpoint('store');\n };\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n return this.getStoreEndpoint() + \"?\" + this._encodedAuth();\n };\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getEnvelopeEndpointWithUrlEncodedAuth = function () {\n return this._getEnvelopeEndpoint() + \"?\" + this._encodedAuth();\n };\n /** Returns only the path component for the store endpoint. */\n API.prototype.getStoreEndpointPath = function () {\n var dsn = this._dsnObject;\n return (dsn.path ? \"/\" + dsn.path : '') + \"/api/\" + dsn.projectId + \"/store/\";\n };\n /**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\n API.prototype.getRequestHeaders = function (clientName, clientVersion) {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n var dsn = this._dsnObject;\n var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n header.push(\"sentry_key=\" + dsn.publicKey);\n if (dsn.pass) {\n header.push(\"sentry_secret=\" + dsn.pass);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n };\n /** Returns the url to the report dialog endpoint. */\n API.prototype.getReportDialogEndpoint = function (dialogOptions) {\n if (dialogOptions === void 0) { dialogOptions = {}; }\n var dsn = this._dsnObject;\n var endpoint = this.getBaseApiEndpoint() + \"embed/error-page/\";\n var encodedOptions = [];\n encodedOptions.push(\"dsn=\" + dsn.toString());\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions.push(\"name=\" + encodeURIComponent(dialogOptions.user.name));\n }\n if (dialogOptions.user.email) {\n encodedOptions.push(\"email=\" + encodeURIComponent(dialogOptions.user.email));\n }\n }\n else {\n encodedOptions.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]));\n }\n }\n if (encodedOptions.length) {\n return endpoint + \"?\" + encodedOptions.join('&');\n }\n return endpoint;\n };\n /** Returns the envelope endpoint URL. */\n API.prototype._getEnvelopeEndpoint = function () {\n return this._getIngestEndpoint('envelope');\n };\n /** Returns the ingest API endpoint for target. */\n API.prototype._getIngestEndpoint = function (target) {\n var base = this.getBaseApiEndpoint();\n var dsn = this._dsnObject;\n return \"\" + base + dsn.projectId + \"/\" + target + \"/\";\n };\n /** Returns a URL-encoded string with auth config suitable for a query string. */\n API.prototype._encodedAuth = function () {\n var dsn = this._dsnObject;\n var auth = {\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n };\n return urlEncode(auth);\n };\n return API;\n}());\nexport { API };\n//# sourceMappingURL=api.js.map","import { SentryError } from './error';\nimport { SyncPromise } from './syncpromise';\n/** A simple queue that holds promises. */\nvar PromiseBuffer = /** @class */ (function () {\n function PromiseBuffer(_limit) {\n this._limit = _limit;\n /** Internal set of queued Promises */\n this._buffer = [];\n }\n /**\n * Says if the buffer is ready to take more requests\n */\n PromiseBuffer.prototype.isReady = function () {\n return this._limit === undefined || this.length() < this._limit;\n };\n /**\n * Add a promise to the queue.\n *\n * @param task Can be any PromiseLike\n * @returns The original promise.\n */\n PromiseBuffer.prototype.add = function (task) {\n var _this = this;\n if (!this.isReady()) {\n return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n if (this._buffer.indexOf(task) === -1) {\n this._buffer.push(task);\n }\n task\n .then(function () { return _this.remove(task); })\n .then(null, function () {\n return _this.remove(task).then(null, function () {\n // We have to add this catch here otherwise we have an unhandledPromiseRejection\n // because it's a new Promise chain.\n });\n });\n return task;\n };\n /**\n * Remove a promise to the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n PromiseBuffer.prototype.remove = function (task) {\n var removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0];\n return removedTask;\n };\n /**\n * This function returns the number of unresolved promises in the queue.\n */\n PromiseBuffer.prototype.length = function () {\n return this._buffer.length;\n };\n /**\n * This will drain the whole queue, returns true if queue is empty or drained.\n * If timeout is provided and the queue takes longer to drain, the promise still resolves but with false.\n *\n * @param timeout Number in ms to wait until it resolves with false.\n */\n PromiseBuffer.prototype.drain = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n SyncPromise.all(_this._buffer)\n .then(function () {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n })\n .then(null, function () {\n resolve(true);\n });\n });\n };\n return PromiseBuffer;\n}());\nexport { PromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map","import { __values } from \"tslib\";\nimport { API } from '@sentry/core';\nimport { Status, } from '@sentry/types';\nimport { logger, parseRetryAfterHeader, PromiseBuffer, SentryError } from '@sentry/utils';\nvar CATEGORY_MAPPING = {\n event: 'error',\n transaction: 'transaction',\n session: 'session',\n attachment: 'attachment',\n};\n/** Base Transport class implementation */\nvar BaseTransport = /** @class */ (function () {\n function BaseTransport(options) {\n this.options = options;\n /** A simple buffer holding all requests. */\n this._buffer = new PromiseBuffer(30);\n /** Locks transport after receiving rate limits in a response */\n this._rateLimits = {};\n this._api = new API(options.dsn, options._metadata);\n // eslint-disable-next-line deprecation/deprecation\n this.url = this._api.getStoreEndpointWithUrlEncodedAuth();\n }\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.sendEvent = function (_) {\n throw new SentryError('Transport Class has to implement `sendEvent` method');\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.close = function (timeout) {\n return this._buffer.drain(timeout);\n };\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n BaseTransport.prototype._handleResponse = function (_a) {\n var requestType = _a.requestType, response = _a.response, headers = _a.headers, resolve = _a.resolve, reject = _a.reject;\n var status = Status.fromHttpCode(response.status);\n /**\n * \"The name is case-insensitive.\"\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n */\n var limited = this._handleRateLimit(headers);\n if (limited)\n logger.warn(\"Too many requests, backing off until: \" + this._disabledUntil(requestType));\n if (status === Status.Success) {\n resolve({ status: status });\n return;\n }\n reject(response);\n };\n /**\n * Gets the time that given category is disabled until for rate limiting\n */\n BaseTransport.prototype._disabledUntil = function (requestType) {\n var category = CATEGORY_MAPPING[requestType];\n return this._rateLimits[category] || this._rateLimits.all;\n };\n /**\n * Checks if a category is rate limited\n */\n BaseTransport.prototype._isRateLimited = function (requestType) {\n return this._disabledUntil(requestType) > new Date(Date.now());\n };\n /**\n * Sets internal _rateLimits from incoming headers. Returns true if headers contains a non-empty rate limiting header.\n */\n BaseTransport.prototype._handleRateLimit = function (headers) {\n var e_1, _a, e_2, _b;\n var now = Date.now();\n var rlHeader = headers['x-sentry-rate-limits'];\n var raHeader = headers['retry-after'];\n if (rlHeader) {\n try {\n // rate limit headers are of the form\n //
,
,..\n // where each
is of the form\n // : : : \n // where\n // is a delay in ms\n // is the event type(s) (error, transaction, etc) being rate limited and is of the form\n // ;;...\n // is what's being limited (org, project, or key) - ignored by SDK\n // is an arbitrary string like \"org_quota\" - ignored by SDK\n for (var _c = __values(rlHeader.trim().split(',')), _d = _c.next(); !_d.done; _d = _c.next()) {\n var limit = _d.value;\n var parameters = limit.split(':', 2);\n var headerDelay = parseInt(parameters[0], 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n try {\n for (var _e = (e_2 = void 0, __values(parameters[1].split(';'))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var category = _f.value;\n this._rateLimits[category || 'all'] = new Date(now + delay);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n }\n else if (raHeader) {\n this._rateLimits.all = new Date(now + parseRetryAfterHeader(now, raHeader));\n return true;\n }\n return false;\n };\n return BaseTransport;\n}());\nexport { BaseTransport };\n//# sourceMappingURL=base.js.map","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { getGlobalObject, isNativeFetch, logger, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n /* eslint-disable @typescript-eslint/unbound-method */\n var _a, _b;\n // Fast path to avoid DOM I/O\n var global = getGlobalObject();\n if (isNativeFetch(global.fetch)) {\n return global.fetch.bind(global);\n }\n var document = global.document;\n var fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (typeof ((_a = document) === null || _a === void 0 ? void 0 : _a.createElement) === \"function\") {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n if ((_b = sandbox.contentWindow) === null || _b === void 0 ? void 0 : _b.fetch) {\n fetchImpl = sandbox.contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n return fetchImpl.bind(global);\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n/** `fetch` based transport */\nvar FetchTransport = /** @class */ (function (_super) {\n __extends(FetchTransport, _super);\n function FetchTransport(options, fetchImpl) {\n if (fetchImpl === void 0) { fetchImpl = getNativeFetchImplementation(); }\n var _this = _super.call(this, options) || this;\n _this._fetch = fetchImpl;\n return _this;\n }\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n FetchTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n var options = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : ''),\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n _this._fetch(sentryRequest.url, options)\n .then(function (response) {\n var headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n _this._handleResponse({\n requestType: sentryRequest.type,\n response: response,\n headers: headers,\n resolve: resolve,\n reject: reject,\n });\n })\n .catch(reject);\n }));\n };\n return FetchTransport;\n}(BaseTransport));\nexport { FetchTransport };\n//# sourceMappingURL=fetch.js.map","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/** `XHR` based transport */\nvar XHRTransport = /** @class */ (function (_super) {\n __extends(XHRTransport, _super);\n function XHRTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n XHRTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n var headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n _this._handleResponse({ requestType: sentryRequest.type, response: request, headers: headers, resolve: resolve, reject: reject });\n }\n };\n request.open('POST', sentryRequest.url);\n for (var header in _this.options.headers) {\n if (_this.options.headers.hasOwnProperty(header)) {\n request.setRequestHeader(header, _this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n }));\n };\n return XHRTransport;\n}(BaseTransport));\nexport { XHRTransport };\n//# sourceMappingURL=xhr.js.map","import { __assign, __extends } from \"tslib\";\nimport { BaseBackend } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nvar BrowserBackend = /** @class */ (function (_super) {\n __extends(BrowserBackend, _super);\n function BrowserBackend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromException = function (exception, hint) {\n return eventFromException(this._options, exception, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n return eventFromMessage(this._options, message, level, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype._setupTransport = function () {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return _super.prototype._setupTransport.call(this);\n }\n var transportOptions = __assign(__assign({}, this._options.transportOptions), { dsn: this._options.dsn, _metadata: this._options._metadata });\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n return new XHRTransport(transportOptions);\n };\n return BrowserBackend;\n}(BaseBackend));\nexport { BrowserBackend };\n//# sourceMappingURL=backend.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var hub = getCurrentHub();\n if (hub && hub[method]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return hub[method].apply(hub, __spread(args));\n }\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception, captureContext) {\n var syntheticException;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n return callOnHub('captureException', exception, {\n captureContext: captureContext,\n originalException: exception,\n syntheticException: syntheticException,\n });\n}\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param level Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message, captureContext) {\n var syntheticException;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext: captureContext } : undefined;\n return callOnHub('captureMessage', message, level, __assign({ originalException: message, syntheticException: syntheticException }, context));\n}\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\n}\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\n}\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\n}\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags) {\n callOnHub('setTags', tags);\n}\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\n}\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\n}\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user) {\n callOnHub('setUser', user);\n}\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n callOnHub.apply(void 0, __spread(['_invokeClient', method], args));\n}\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(context, customSamplingContext) {\n return callOnHub('startTransaction', __assign({}, context), customSamplingContext);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { API, captureException, withScope } from '@sentry/core';\nimport { addExceptionMechanism, addExceptionTypeValue, logger } from '@sentry/utils';\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\nexport function ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\n });\n}\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(fn, options, before) {\n if (options === void 0) { options = {}; }\n if (typeof fn !== 'function') {\n return fn;\n }\n try {\n // We don't wanna wrap it twice\n if (fn.__sentry__) {\n return fn;\n }\n // If this has already been wrapped in the past, return that wrapped function\n if (fn.__sentry_wrapped__) {\n return fn.__sentry_wrapped__;\n }\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n var wrappedArguments = args.map(function (arg) { return wrap(arg, options); });\n if (fn.handleEvent) {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return fn.handleEvent.apply(this, wrappedArguments);\n }\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n }\n catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n var processedEvent = __assign({}, event);\n if (options.mechanism) {\n addExceptionTypeValue(processedEvent, undefined, undefined);\n addExceptionMechanism(processedEvent, options.mechanism);\n }\n processedEvent.extra = __assign(__assign({}, processedEvent.extra), { arguments: args });\n return processedEvent;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n }\n catch (_oO) { } // eslint-disable-line no-empty\n fn.prototype = fn.prototype || {};\n sentryWrapped.prototype = fn.prototype;\n Object.defineProperty(fn, '__sentry_wrapped__', {\n enumerable: false,\n value: sentryWrapped,\n });\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n Object.defineProperties(sentryWrapped, {\n __sentry__: {\n enumerable: false,\n value: true,\n },\n __sentry_original__: {\n enumerable: false,\n value: fn,\n },\n });\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function () {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n }\n catch (_oO) { }\n return sentryWrapped;\n}\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!options.eventId) {\n logger.error(\"Missing eventId option in showReportDialog call\");\n return;\n }\n if (!options.dsn) {\n logger.error(\"Missing dsn option in showReportDialog call\");\n return;\n }\n var script = document.createElement('script');\n script.async = true;\n script.src = new API(options.dsn).getReportDialogEndpoint(options);\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n (document.head || document.body).appendChild(script);\n}\n//# sourceMappingURL=helpers.js.map","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addInstrumentationHandler, getEventDescription, getGlobalObject, htmlTreeAsString, parseUrl, safeJoin, } from '@sentry/utils';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nvar Breadcrumbs = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n /**\n * @inheritDoc\n */\n this.name = Breadcrumbs.id;\n this._options = __assign({ console: true, dom: true, fetch: true, history: true, sentry: true, xhr: true }, options);\n }\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n Breadcrumbs.prototype.addSentryBreadcrumb = function (event) {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"sentry.\" + (event.type === 'transaction' ? 'transaction' : 'event'),\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n }, {\n event: event,\n });\n };\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n Breadcrumbs.prototype.setupOnce = function () {\n var _this = this;\n if (this._options.console) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._consoleBreadcrumb.apply(_this, __spread(args));\n },\n type: 'console',\n });\n }\n if (this._options.dom) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._domBreadcrumb.apply(_this, __spread(args));\n },\n type: 'dom',\n });\n }\n if (this._options.xhr) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._xhrBreadcrumb.apply(_this, __spread(args));\n },\n type: 'xhr',\n });\n }\n if (this._options.fetch) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._fetchBreadcrumb.apply(_this, __spread(args));\n },\n type: 'fetch',\n });\n }\n if (this._options.history) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._historyBreadcrumb.apply(_this, __spread(args));\n },\n type: 'history',\n });\n }\n };\n /**\n * Creates breadcrumbs from console API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._consoleBreadcrumb = function (handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: Severity.fromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = \"Assertion failed: \" + (safeJoin(handlerData.args.slice(1), ' ') || 'console.assert');\n breadcrumb.data.arguments = handlerData.args.slice(1);\n }\n else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n /**\n * Creates breadcrumbs from DOM API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._domBreadcrumb = function (handlerData) {\n var target;\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target)\n : htmlTreeAsString(handlerData.event);\n }\n catch (e) {\n target = '';\n }\n if (target.length === 0) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"ui.\" + handlerData.name,\n message: target,\n }, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n /**\n * Creates breadcrumbs from XHR API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._xhrBreadcrumb = function (handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n var _a = handlerData.xhr.__sentry_xhr__ || {}, method = _a.method, url = _a.url, status_code = _a.status_code, body = _a.body;\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: {\n method: method,\n url: url,\n status_code: status_code,\n },\n type: 'http',\n }, {\n xhr: handlerData.xhr,\n input: body,\n });\n return;\n }\n };\n /**\n * Creates breadcrumbs from fetch API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._fetchBreadcrumb = function (handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n }, {\n data: handlerData.error,\n input: handlerData.args,\n });\n }\n else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: __assign(__assign({}, handlerData.fetchData), { status_code: handlerData.response.status }),\n type: 'http',\n }, {\n input: handlerData.args,\n response: handlerData.response,\n });\n }\n };\n /**\n * Creates breadcrumbs from history API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._historyBreadcrumb = function (handlerData) {\n var global = getGlobalObject();\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from: from,\n to: to,\n },\n });\n };\n /**\n * @inheritDoc\n */\n Breadcrumbs.id = 'Breadcrumbs';\n return Breadcrumbs;\n}());\nexport { Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map","import { __assign, __extends } from \"tslib\";\nimport { BaseClient, SDK_VERSION } from '@sentry/core';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { BrowserBackend } from './backend';\nimport { injectReportDialog } from './helpers';\nimport { Breadcrumbs } from './integrations';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nvar BrowserClient = /** @class */ (function (_super) {\n __extends(BrowserClient, _super);\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n function BrowserClient(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n _this = _super.call(this, BrowserBackend, options) || this;\n return _this;\n }\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n BrowserClient.prototype.showReportDialog = function (options) {\n if (options === void 0) { options = {}; }\n // doesn't work without a document (React Native)\n var document = getGlobalObject().document;\n if (!document) {\n return;\n }\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n injectReportDialog(__assign(__assign({}, options), { dsn: options.dsn || this.getDsn() }));\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._prepareEvent = function (event, scope, hint) {\n event.platform = event.platform || 'javascript';\n return _super.prototype._prepareEvent.call(this, event, scope, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._sendEvent = function (event) {\n var integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n _super.prototype._sendEvent.call(this, event);\n };\n return BrowserClient;\n}(BaseClient));\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map","import { __assign } from \"tslib\";\nimport { fill, getFunctionName, getGlobalObject } from '@sentry/utils';\nimport { wrap } from '../helpers';\nvar DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nvar TryCatch = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function TryCatch(options) {\n /**\n * @inheritDoc\n */\n this.name = TryCatch.id;\n this._options = __assign({ XMLHttpRequest: true, eventTarget: true, requestAnimationFrame: true, setInterval: true, setTimeout: true }, options);\n }\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n TryCatch.prototype.setupOnce = function () {\n var global = getGlobalObject();\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', this._wrapTimeFunction.bind(this));\n }\n if (this._options.setInterval) {\n fill(global, 'setInterval', this._wrapTimeFunction.bind(this));\n }\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this));\n }\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this));\n }\n if (this._options.eventTarget) {\n var eventTarget = Array.isArray(this._options.eventTarget) ? this._options.eventTarget : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(this._wrapEventTarget.bind(this));\n }\n };\n /** JSDoc */\n TryCatch.prototype._wrapTimeFunction = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n TryCatch.prototype._wrapRAF = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.call(this, wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }));\n };\n };\n /** JSDoc */\n TryCatch.prototype._wrapEventTarget = function (target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var global = getGlobalObject();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n }\n catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n return original.call(this, eventName, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n }), options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (eventName, fn, options) {\n var _a;\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n var wrappedEventHandler = fn;\n try {\n var originalEventHandler = (_a = wrappedEventHandler) === null || _a === void 0 ? void 0 : _a.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n }\n catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n });\n };\n /** JSDoc */\n TryCatch.prototype._wrapXHR = function (originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n xmlHttpRequestProps.forEach(function (prop) {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n // If Instrument integration has been called before TryCatch, get the name of original function\n if (original.__sentry_original__) {\n wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__);\n }\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n return originalSend.apply(this, args);\n };\n };\n /**\n * @inheritDoc\n */\n TryCatch.id = 'TryCatch';\n return TryCatch;\n}());\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map","import { __assign } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addInstrumentationHandler, getLocationHref, isErrorEvent, isPrimitive, isString, logger, } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n/** Global handlers */\nvar GlobalHandlers = /** @class */ (function () {\n /** JSDoc */\n function GlobalHandlers(options) {\n /**\n * @inheritDoc\n */\n this.name = GlobalHandlers.id;\n /** JSDoc */\n this._onErrorHandlerInstalled = false;\n /** JSDoc */\n this._onUnhandledRejectionHandlerInstalled = false;\n this._options = __assign({ onerror: true, onunhandledrejection: true }, options);\n }\n /**\n * @inheritDoc\n */\n GlobalHandlers.prototype.setupOnce = function () {\n Error.stackTraceLimit = 50;\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n this._installGlobalOnErrorHandler();\n }\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n this._installGlobalOnUnhandledRejectionHandler();\n }\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnErrorHandler = function () {\n var _this = this;\n if (this._onErrorHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (data) {\n var error = data.error;\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? _this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column)\n : _this._enhanceEventWithInitialFrame(eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false,\n }), data.url, data.line, data.column);\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n },\n type: 'error',\n });\n this._onErrorHandlerInstalled = true;\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () {\n var _this = this;\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (e) {\n var error = e;\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n }\n catch (_oO) {\n // no-empty\n }\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return true;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? _this._eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true,\n });\n event.level = Severity.Error;\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n return;\n },\n type: 'unhandledrejection',\n });\n this._onUnhandledRejectionHandlerInstalled = true;\n };\n /**\n * This function creates a stack from an old, error-less onerror handler.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n // If 'message' is ErrorEvent, get real message from inside\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name;\n if (isString(message)) {\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n }\n var event = {\n exception: {\n values: [\n {\n type: name || 'Error',\n value: message,\n },\n ],\n },\n };\n return this._enhanceEventWithInitialFrame(event, url, line, column);\n };\n /**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\n GlobalHandlers.prototype._eventFromRejectionWithPrimitive = function (reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: \"Non-Error promise rejection captured with value: \" + String(reason),\n },\n ],\n },\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno: colno,\n filename: filename,\n function: '?',\n in_app: true,\n lineno: lineno,\n });\n }\n return event;\n };\n /**\n * @inheritDoc\n */\n GlobalHandlers.id = 'GlobalHandlers';\n return GlobalHandlers;\n}());\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\nvar LinkedErrors = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function LinkedErrors(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n if (self) {\n return self._handler(event, hint);\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._handler = function (event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = this._walkErrorTree(hint.originalException, this._key);\n event.exception.values = __spread(linkedErrors, event.exception.values);\n return event;\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._walkErrorTree = function (error, key, stack) {\n if (stack === void 0) { stack = []; }\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n var stacktrace = computeStackTrace(error[key]);\n var exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, __spread([exception], stack));\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.id = 'LinkedErrors';\n return LinkedErrors;\n}());\nexport { LinkedErrors };\n//# sourceMappingURL=linkederrors.js.map","import { __assign } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nvar global = getGlobalObject();\n/** UserAgent */\nvar UserAgent = /** @class */ (function () {\n function UserAgent() {\n /**\n * @inheritDoc\n */\n this.name = UserAgent.id;\n }\n /**\n * @inheritDoc\n */\n UserAgent.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var _a, _b, _c;\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n // grab as much info as exists and add it to the event\n var url = ((_a = event.request) === null || _a === void 0 ? void 0 : _a.url) || ((_b = global.location) === null || _b === void 0 ? void 0 : _b.href);\n var referrer = (global.document || {}).referrer;\n var userAgent = (global.navigator || {}).userAgent;\n var headers = __assign(__assign(__assign({}, (_c = event.request) === null || _c === void 0 ? void 0 : _c.headers), (referrer && { Referer: referrer })), (userAgent && { 'User-Agent': userAgent }));\n var request = __assign(__assign({}, (url && { url: url })), { headers: headers });\n return __assign(__assign({}, event), { request: request });\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n UserAgent.id = 'UserAgent';\n return UserAgent;\n}());\nexport { UserAgent };\n//# sourceMappingURL=useragent.js.map","import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { addInstrumentationHandler, getGlobalObject, logger, SyncPromise } from '@sentry/utils';\nimport { BrowserClient } from './client';\nimport { wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\nexport var defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new UserAgent(),\n];\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options) {\n if (options === void 0) { options = {}; }\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window_1 = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) {\n options.release = window_1.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n initAndBind(BrowserClient, options);\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!options.eventId) {\n options.eventId = getCurrentHub().lastEventId();\n }\n var client = getCurrentHub().getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad() {\n // Noop\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback) {\n callback();\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n return SyncPromise.reject(false);\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n return SyncPromise.reject(false);\n}\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn) {\n return internalWrap(fn)();\n}\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n if (typeof document === 'undefined') {\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n var hub = getCurrentHub();\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (typeof hub.startSession !== 'function' || typeof hub.captureSession !== 'function') {\n return;\n }\n hub.startSession();\n hub.captureSession();\n // We want to create a session for every navigation as well\n addInstrumentationHandler({\n callback: function () {\n hub.startSession();\n hub.captureSession();\n },\n type: 'history',\n });\n}\n//# sourceMappingURL=sdk.js.map","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(clientClass, options) {\n var _a;\n if (options.debug === true) {\n logger.enable();\n }\n var hub = getCurrentHub();\n (_a = hub.getScope()) === null || _a === void 0 ? void 0 : _a.update(options.initialScope);\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n//# sourceMappingURL=sdk.js.map","import { SDK_VERSION } from '@sentry/core';\nvar SDK_NAME = 'sentry.javascript.nextjs';\nvar PACKAGE_NAME_PREFIX = 'npm:@sentry/';\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n */\nvar MetadataBuilder = /** @class */ (function () {\n function MetadataBuilder(options, packages) {\n this._options = options;\n this._packageNames = packages;\n }\n MetadataBuilder.prototype.addSdkMetadata = function () {\n this._options._metadata = this._options._metadata || {};\n this._options._metadata.sdk = this._getSdkInfo();\n };\n MetadataBuilder.prototype._getSdkInfo = function () {\n return {\n name: SDK_NAME,\n version: SDK_VERSION,\n packages: this._getPackages(),\n };\n };\n MetadataBuilder.prototype._getPackages = function () {\n return this._packageNames.map(function (pkgName) {\n return {\n name: PACKAGE_NAME_PREFIX + pkgName,\n version: SDK_VERSION,\n };\n });\n };\n return MetadataBuilder;\n}());\nexport { MetadataBuilder };\n//# sourceMappingURL=metadataBuilder.js.map","import { configureScope, init as reactInit } from '@sentry/react';\nimport { MetadataBuilder } from './utils/metadataBuilder';\nexport * from '@sentry/react';\n/** Inits the Sentry NextJS SDK on the browser with the React SDK. */\nexport function init(options) {\n var metadataBuilder = new MetadataBuilder(options, ['nextjs', 'react']);\n metadataBuilder.addSdkMetadata();\n options.environment = options.environment || process.env.NODE_ENV;\n reactInit(options);\n configureScope(function (scope) {\n scope.setTag('runtime', 'browser');\n });\n}\n//# sourceMappingURL=index.client.js.map","import * as Sentry from '@sentry/nextjs';\n\nif (process.env.NODE_ENV === 'production') {\n Sentry.init({\n dsn: 'https://f711f3b953f54420914a3af38ef364bf@sentry.kuaishou.com/1074',\n environment: process.env.API_ENV,\n sampleRate: .5,\n ignoreErrors: [\n '_bridge_callback_',\n 'getReadModeRender',\n 'getReadModeExtract',\n 'getReadModeConfig',\n ],\n // beforeSend: (event, eventHint) => {\n // console.log(event, eventHint)\n // }\n // ...\n });\n}\n","import { init as browserInit, SDK_VERSION } from '@sentry/browser';\n/**\n * Inits the React SDK\n */\nexport function init(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.react',\n packages: [\n {\n name: 'npm:@sentry/react',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n browserInit(options);\n}\n//# sourceMappingURL=sdk.js.map","import React from 'react'\n\nexport const HeadManagerContext: React.Context<{\n updateHead?: (state: any) => void\n mountedInstances?: any\n updateScripts?: (state: any) => void\n scripts?: any\n}> = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n HeadManagerContext.displayName = 'HeadManagerContext'\n}\n","/* global location */\nimport '@next/polyfill-module'\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport { HeadManagerContext } from '../next-server/lib/head-manager-context'\nimport mitt, { MittEmitter } from '../next-server/lib/mitt'\nimport { RouterContext } from '../next-server/lib/router-context'\nimport Router, {\n AppComponent,\n AppProps,\n delBasePath,\n hasBasePath,\n PrivateRouteInfo,\n} from '../next-server/lib/router/router'\nimport { isDynamicRoute } from '../next-server/lib/router/utils/is-dynamic'\nimport * as querystring from '../next-server/lib/router/utils/querystring'\nimport * as envConfig from '../next-server/lib/runtime-config'\nimport {\n getURL,\n loadGetInitialProps,\n NEXT_DATA,\n ST,\n} from '../next-server/lib/utils'\nimport { Portal } from './portal'\nimport initHeadManager from './head-manager'\nimport PageLoader, { StyleSheetTuple } from './page-loader'\nimport measureWebVitals from './performance-relayer'\nimport { RouteAnnouncer } from './route-announcer'\nimport { createRouter, makePublicRouterInstance } from './router'\n\n/// \n\ndeclare let __webpack_public_path__: string\n\ndeclare global {\n interface Window {\n /* test fns */\n __NEXT_HYDRATED?: boolean\n __NEXT_HYDRATED_CB?: () => void\n\n /* prod */\n __NEXT_PRELOADREADY?: (ids?: (string | number)[]) => void\n __NEXT_DATA__: NEXT_DATA\n __NEXT_P: any[]\n }\n}\n\ntype RenderRouteInfo = PrivateRouteInfo & {\n App: AppComponent\n scroll?: { x: number; y: number } | null\n}\ntype RenderErrorProps = Omit\n\nconst data: typeof window['__NEXT_DATA__'] = JSON.parse(\n document.getElementById('__NEXT_DATA__')!.textContent!\n)\nwindow.__NEXT_DATA__ = data\n\nexport const version = process.env.__NEXT_VERSION\n\nconst looseToArray = (input: any): T[] => [].slice.call(input)\n\nconst {\n props: hydrateProps,\n err: hydrateErr,\n page,\n query,\n buildId,\n assetPrefix,\n runtimeConfig,\n dynamicIds,\n isFallback,\n locale,\n locales,\n domainLocales,\n isPreview,\n} = data\n\nlet { defaultLocale } = data\n\nconst prefix: string = assetPrefix || ''\n\n// With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time\n// So, this is how we do it in the client side at runtime\n__webpack_public_path__ = `${prefix}/_next/` //eslint-disable-line\n// Initialize next/config with the environment configuration\nenvConfig.setConfig({\n serverRuntimeConfig: {},\n publicRuntimeConfig: runtimeConfig || {},\n})\n\nlet asPath: string = getURL()\n\n// make sure not to attempt stripping basePath for 404s\nif (hasBasePath(asPath)) {\n asPath = delBasePath(asPath)\n}\n\nif (process.env.__NEXT_I18N_SUPPORT) {\n const {\n normalizeLocalePath,\n } = require('../next-server/lib/i18n/normalize-locale-path') as typeof import('../next-server/lib/i18n/normalize-locale-path')\n\n const {\n detectDomainLocale,\n } = require('../next-server/lib/i18n/detect-domain-locale') as typeof import('../next-server/lib/i18n/detect-domain-locale')\n\n const {\n parseRelativeUrl,\n } = require('../next-server/lib/router/utils/parse-relative-url') as typeof import('../next-server/lib/router/utils/parse-relative-url')\n\n const {\n formatUrl,\n } = require('../next-server/lib/router/utils/format-url') as typeof import('../next-server/lib/router/utils/format-url')\n\n if (locales) {\n const parsedAs = parseRelativeUrl(asPath)\n const localePathResult = normalizeLocalePath(parsedAs.pathname, locales)\n\n if (localePathResult.detectedLocale) {\n parsedAs.pathname = localePathResult.pathname\n asPath = formatUrl(parsedAs)\n } else {\n // derive the default locale if it wasn't detected in the asPath\n // since we don't prerender static pages with all possible default\n // locales\n defaultLocale = locale\n }\n\n // attempt detecting default locale based on hostname\n const detectedDomain = detectDomainLocale(\n process.env.__NEXT_I18N_DOMAINS as any,\n window.location.hostname\n )\n\n // TODO: investigate if defaultLocale needs to be populated after\n // hydration to prevent mismatched renders\n if (detectedDomain) {\n defaultLocale = detectedDomain.defaultLocale\n }\n }\n}\n\nif (process.env.__NEXT_SCRIPT_LOADER && data.scriptLoader) {\n const { initScriptLoader } = require('./experimental-script')\n initScriptLoader(data.scriptLoader)\n}\n\ntype RegisterFn = (input: [string, () => void]) => void\n\nconst pageLoader: PageLoader = new PageLoader(buildId, prefix)\nconst register: RegisterFn = ([r, f]) =>\n pageLoader.routeLoader.onEntrypoint(r, f)\nif (window.__NEXT_P) {\n // Defer page registration for another tick. This will increase the overall\n // latency in hydrating the page, but reduce the total blocking time.\n window.__NEXT_P.map((p) => setTimeout(() => register(p), 0))\n}\nwindow.__NEXT_P = []\n;(window.__NEXT_P as any).push = register\n\nconst headManager: {\n mountedInstances: Set\n updateHead: (head: JSX.Element[]) => void\n} = initHeadManager()\nconst appElement: HTMLElement | null = document.getElementById('__next')\n\nlet lastRenderReject: (() => void) | null\nlet webpackHMR: any\nexport let router: Router\nlet CachedApp: AppComponent, onPerfEntry: (metric: any) => void\n\nclass Container extends React.Component<{\n fn: (err: Error, info?: any) => void\n}> {\n componentDidCatch(componentErr: Error, info: any) {\n this.props.fn(componentErr, info)\n }\n\n componentDidMount() {\n this.scrollToHash()\n\n // We need to replace the router state if:\n // - the page was (auto) exported and has a query string or search (hash)\n // - it was auto exported and is a dynamic route (to provide params)\n // - if it is a client-side skeleton (fallback render)\n if (\n router.isSsr &&\n // We don't update for 404 requests as this can modify\n // the asPath unexpectedly e.g. adding basePath when\n // it wasn't originally present\n page !== '/404' &&\n !(\n page === '/_error' &&\n hydrateProps &&\n hydrateProps.pageProps &&\n hydrateProps.pageProps.statusCode === 404\n ) &&\n (isFallback ||\n (data.nextExport &&\n (isDynamicRoute(router.pathname) ||\n location.search ||\n process.env.__NEXT_HAS_REWRITES)) ||\n (hydrateProps &&\n hydrateProps.__N_SSG &&\n (location.search || process.env.__NEXT_HAS_REWRITES)))\n ) {\n // update query on mount for exported pages\n router.replace(\n router.pathname +\n '?' +\n String(\n querystring.assign(\n querystring.urlQueryToSearchParams(router.query),\n new URLSearchParams(location.search)\n )\n ),\n asPath,\n {\n // @ts-ignore\n // WARNING: `_h` is an internal option for handing Next.js\n // client-side hydration. Your app should _never_ use this property.\n // It may change at any time without notice.\n _h: 1,\n // Fallback pages must trigger the data fetch, so the transition is\n // not shallow.\n // Other pages (strictly updating query) happens shallowly, as data\n // requirements would already be present.\n shallow: !isFallback,\n }\n )\n }\n }\n\n componentDidUpdate() {\n this.scrollToHash()\n }\n\n scrollToHash() {\n let { hash } = location\n hash = hash && hash.substring(1)\n if (!hash) return\n\n const el: HTMLElement | null = document.getElementById(hash)\n if (!el) return\n\n // If we call scrollIntoView() in here without a setTimeout\n // it won't scroll properly.\n setTimeout(() => el.scrollIntoView(), 0)\n }\n\n render() {\n if (process.env.NODE_ENV === 'production') {\n return this.props.children\n } else {\n const { ReactDevOverlay } = require('@next/react-dev-overlay/lib/client')\n return {this.props.children}\n }\n }\n}\n\nexport const emitter: MittEmitter = mitt()\nlet CachedComponent: React.ComponentType\n\nexport default async (opts: { webpackHMR?: any } = {}) => {\n // This makes sure this specific lines are removed in production\n if (process.env.NODE_ENV === 'development') {\n webpackHMR = opts.webpackHMR\n }\n\n let initialErr = hydrateErr\n\n try {\n const appEntrypoint = await pageLoader.routeLoader.whenEntrypoint('/_app')\n if ('error' in appEntrypoint) {\n throw appEntrypoint.error\n }\n\n const { component: app, exports: mod } = appEntrypoint\n CachedApp = app as AppComponent\n if (mod && mod.reportWebVitals) {\n onPerfEntry = ({\n id,\n name,\n startTime,\n value,\n duration,\n entryType,\n entries,\n }): void => {\n // Combines timestamp with random number for unique ID\n const uniqueID: string = `${Date.now()}-${\n Math.floor(Math.random() * (9e12 - 1)) + 1e12\n }`\n let perfStartEntry: string | undefined\n\n if (entries && entries.length) {\n perfStartEntry = entries[0].startTime\n }\n\n mod.reportWebVitals({\n id: id || uniqueID,\n name,\n startTime: startTime || perfStartEntry,\n value: value == null ? duration : value,\n label:\n entryType === 'mark' || entryType === 'measure'\n ? 'custom'\n : 'web-vital',\n })\n }\n }\n\n const pageEntrypoint =\n // The dev server fails to serve script assets when there's a hydration\n // error, so we need to skip waiting for the entrypoint.\n process.env.NODE_ENV === 'development' && hydrateErr\n ? { error: hydrateErr }\n : await pageLoader.routeLoader.whenEntrypoint(page)\n if ('error' in pageEntrypoint) {\n throw pageEntrypoint.error\n }\n CachedComponent = pageEntrypoint.component\n\n if (process.env.NODE_ENV !== 'production') {\n const { isValidElementType } = require('react-is')\n if (!isValidElementType(CachedComponent)) {\n throw new Error(\n `The default export is not a React Component in page: \"${page}\"`\n )\n }\n }\n } catch (error) {\n // This catches errors like throwing in the top level of a module\n initialErr = error\n }\n\n if (process.env.NODE_ENV === 'development') {\n const { getNodeError } = require('@next/react-dev-overlay/lib/client')\n // Server-side runtime errors need to be re-thrown on the client-side so\n // that the overlay is rendered.\n if (initialErr) {\n if (initialErr === hydrateErr) {\n setTimeout(() => {\n let error\n try {\n // Generate a new error object. We `throw` it because some browsers\n // will set the `stack` when thrown, and we want to ensure ours is\n // not overridden when we re-throw it below.\n throw new Error(initialErr!.message)\n } catch (e) {\n error = e\n }\n\n error.name = initialErr!.name\n error.stack = initialErr!.stack\n\n const node = getNodeError(error)\n throw node\n })\n }\n // We replaced the server-side error with a client-side error, and should\n // no longer rewrite the stack trace to a Node error.\n else {\n setTimeout(() => {\n throw initialErr\n })\n }\n }\n }\n\n if (window.__NEXT_PRELOADREADY) {\n await window.__NEXT_PRELOADREADY(dynamicIds)\n }\n\n router = createRouter(page, query, asPath, {\n initialProps: hydrateProps,\n pageLoader,\n App: CachedApp,\n Component: CachedComponent,\n wrapApp,\n err: initialErr,\n isFallback: Boolean(isFallback),\n subscription: (info, App, scroll) =>\n render(\n Object.assign<\n {},\n Omit,\n Pick\n >({}, info, {\n App,\n scroll,\n }) as RenderRouteInfo\n ),\n locale,\n locales,\n defaultLocale,\n domainLocales,\n isPreview,\n })\n\n const renderCtx: RenderRouteInfo = {\n App: CachedApp,\n initial: true,\n Component: CachedComponent,\n props: hydrateProps,\n err: initialErr,\n }\n\n if (process.env.NODE_ENV === 'production') {\n render(renderCtx)\n return emitter\n } else {\n return { emitter, render, renderCtx }\n }\n}\n\nexport async function render(renderingProps: RenderRouteInfo): Promise {\n if (renderingProps.err) {\n await renderError(renderingProps)\n return\n }\n\n try {\n await doRender(renderingProps)\n } catch (renderErr) {\n // bubble up cancelation errors\n if (renderErr.cancelled) {\n throw renderErr\n }\n\n if (process.env.NODE_ENV === 'development') {\n // Ensure this error is displayed in the overlay in development\n setTimeout(() => {\n throw renderErr\n })\n }\n await renderError({ ...renderingProps, err: renderErr })\n }\n}\n\n// This method handles all runtime and debug errors.\n// 404 and 500 errors are special kind of errors\n// and they are still handle via the main render method.\nexport function renderError(renderErrorProps: RenderErrorProps): Promise {\n const { App, err } = renderErrorProps\n\n // In development runtime errors are caught by our overlay\n // In production we catch runtime errors using componentDidCatch which will trigger renderError\n if (process.env.NODE_ENV !== 'production') {\n // A Next.js rendering runtime error is always unrecoverable\n // FIXME: let's make this recoverable (error in GIP client-transition)\n webpackHMR.onUnrecoverableError()\n\n // We need to render an empty so that the `` can\n // render itself.\n return doRender({\n App: () => null,\n props: {},\n Component: () => null,\n styleSheets: [],\n })\n }\n\n // Make sure we log the error to the console, otherwise users can't track down issues.\n console.error(err)\n return pageLoader\n .loadPage('/_error')\n .then(({ page: ErrorComponent, styleSheets }) => {\n // In production we do a normal render with the `ErrorComponent` as component.\n // If we've gotten here upon initial render, we can use the props from the server.\n // Otherwise, we need to call `getInitialProps` on `App` before mounting.\n const AppTree = wrapApp(App)\n const appCtx = {\n Component: ErrorComponent,\n AppTree,\n router,\n ctx: { err, pathname: page, query, asPath, AppTree },\n }\n return Promise.resolve(\n renderErrorProps.props\n ? renderErrorProps.props\n : loadGetInitialProps(App, appCtx)\n ).then((initProps) =>\n doRender({\n ...renderErrorProps,\n err,\n Component: ErrorComponent,\n styleSheets,\n props: initProps,\n })\n )\n })\n}\n\nlet reactRoot: any = null\nlet shouldHydrate: boolean = typeof ReactDOM.hydrate === 'function'\n\nfunction renderReactElement(\n domEl: HTMLElement,\n fn: (cb: () => void) => JSX.Element\n): void {\n // mark start of hydrate/render\n if (ST) {\n performance.mark('beforeRender')\n }\n\n const reactEl = fn(shouldHydrate ? markHydrateComplete : markRenderComplete)\n if (process.env.__NEXT_REACT_ROOT) {\n if (!reactRoot) {\n const createRootName =\n typeof (ReactDOM as any).unstable_createRoot === 'function'\n ? 'unstable_createRoot'\n : 'createRoot'\n reactRoot = (ReactDOM as any)[createRootName](domEl, {\n hydrate: shouldHydrate,\n })\n }\n reactRoot.render(reactEl)\n shouldHydrate = false\n } else {\n // The check for `.hydrate` is there to support React alternatives like preact\n if (shouldHydrate) {\n ReactDOM.hydrate(reactEl, domEl)\n shouldHydrate = false\n } else {\n ReactDOM.render(reactEl, domEl)\n }\n }\n}\n\nfunction markHydrateComplete(): void {\n if (!ST) return\n\n performance.mark('afterHydrate') // mark end of hydration\n\n performance.measure(\n 'Next.js-before-hydration',\n 'navigationStart',\n 'beforeRender'\n )\n performance.measure('Next.js-hydration', 'beforeRender', 'afterHydrate')\n\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-hydration').forEach(onPerfEntry)\n }\n clearMarks()\n}\n\nfunction markRenderComplete(): void {\n if (!ST) return\n\n performance.mark('afterRender') // mark end of render\n const navStartEntries: PerformanceEntryList = performance.getEntriesByName(\n 'routeChange',\n 'mark'\n )\n\n if (!navStartEntries.length) return\n\n performance.measure(\n 'Next.js-route-change-to-render',\n navStartEntries[0].name,\n 'beforeRender'\n )\n performance.measure('Next.js-render', 'beforeRender', 'afterRender')\n if (onPerfEntry) {\n performance.getEntriesByName('Next.js-render').forEach(onPerfEntry)\n performance\n .getEntriesByName('Next.js-route-change-to-render')\n .forEach(onPerfEntry)\n }\n clearMarks()\n ;['Next.js-route-change-to-render', 'Next.js-render'].forEach((measure) =>\n performance.clearMeasures(measure)\n )\n}\n\nfunction clearMarks(): void {\n ;[\n 'beforeRender',\n 'afterHydrate',\n 'afterRender',\n 'routeChange',\n ].forEach((mark) => performance.clearMarks(mark))\n}\n\nfunction AppContainer({\n children,\n}: React.PropsWithChildren<{}>): React.ReactElement {\n return (\n \n renderError({ App: CachedApp, err: error }).catch((err) =>\n console.error('Error rendering page: ', err)\n )\n }\n >\n \n \n {children}\n \n \n \n )\n}\n\nconst wrapApp = (App: AppComponent) => (\n wrappedAppProps: Record\n): JSX.Element => {\n const appProps: AppProps = {\n ...wrappedAppProps,\n Component: CachedComponent,\n err: hydrateErr,\n router,\n }\n return (\n \n \n \n )\n}\n\nlet lastAppProps: AppProps\nfunction doRender(input: RenderRouteInfo): Promise {\n let { App, Component, props, err }: RenderRouteInfo = input\n let styleSheets: StyleSheetTuple[] | undefined =\n 'initial' in input ? undefined : input.styleSheets\n Component = Component || lastAppProps.Component\n props = props || lastAppProps.props\n\n const appProps: AppProps = {\n ...props,\n Component,\n err,\n router,\n }\n // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.\n lastAppProps = appProps\n\n let canceled: boolean = false\n let resolvePromise: () => void\n const renderPromise = new Promise((resolve, reject) => {\n if (lastRenderReject) {\n lastRenderReject()\n }\n resolvePromise = () => {\n lastRenderReject = null\n resolve()\n }\n lastRenderReject = () => {\n canceled = true\n lastRenderReject = null\n\n const error: any = new Error('Cancel rendering route')\n error.cancelled = true\n reject(error)\n }\n })\n\n // This function has a return type to ensure it doesn't start returning a\n // Promise. It should remain synchronous.\n function onStart(): boolean {\n if (\n !styleSheets ||\n // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n process.env.NODE_ENV !== 'production'\n ) {\n return false\n }\n\n const currentStyleTags: HTMLStyleElement[] = looseToArray(\n document.querySelectorAll('style[data-n-href]')\n )\n const currentHrefs: Set = new Set(\n currentStyleTags.map((tag) => tag.getAttribute('data-n-href'))\n )\n\n const noscript: Element | null = document.querySelector(\n 'noscript[data-n-css]'\n )\n const nonce: string | null | undefined = noscript?.getAttribute(\n 'data-n-css'\n )\n\n styleSheets.forEach(({ href, text }: { href: string; text: any }) => {\n if (!currentHrefs.has(href)) {\n const styleTag = document.createElement('style')\n styleTag.setAttribute('data-n-href', href)\n styleTag.setAttribute('media', 'x')\n\n if (nonce) {\n styleTag.setAttribute('nonce', nonce)\n }\n\n document.head.appendChild(styleTag)\n styleTag.appendChild(document.createTextNode(text))\n }\n })\n return true\n }\n\n function onHeadCommit(): void {\n if (\n // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n process.env.NODE_ENV === 'production' &&\n // We can skip this during hydration. Running it wont cause any harm, but\n // we may as well save the CPU cycles:\n styleSheets &&\n // Ensure this render was not canceled\n !canceled\n ) {\n const desiredHrefs: Set = new Set(styleSheets.map((s) => s.href))\n const currentStyleTags: HTMLStyleElement[] = looseToArray<\n HTMLStyleElement\n >(document.querySelectorAll('style[data-n-href]'))\n const currentHrefs: string[] = currentStyleTags.map(\n (tag) => tag.getAttribute('data-n-href')!\n )\n\n // Toggle `