{"version":3,"sources":["webpack://_N_E/./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://_N_E/./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://_N_E/./node_modules/@sentry/core/esm/version.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/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/./src/styles/colors.ts","webpack://_N_E/./src/styles/spacing.ts","webpack://_N_E/./src/styles/font-size.ts","webpack://_N_E/./src/styles/theme-light.ts","webpack://_N_E/./src/styles/media-queries.ts","webpack://_N_E/./src/styles/border-radius.ts","webpack://_N_E/./src/styles/z-index.ts"],"names":["originalFunctionToString","FunctionToString","this","name","id","prototype","setupOnce","Function","toString","args","_i","arguments","length","context","__sentry_original__","apply","DEFAULT_IGNORE_ERRORS","InboundFilters","_options","event","hub","self","getIntegration","client","getClient","clientOptions","getOptions","options","_mergeOptions","_shouldDropEvent","_isSentryError","logger","warn","_isIgnoredError","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","ignoreInternal","exception","values","type","_oO","ignoreErrors","_getPossibleEventMessages","some","message","pattern","denyUrls","url","allowUrls","whitelistUrls","blacklistUrls","_a","_b","_c","value","oO","error","stacktrace","frames_1","frames","filename","frames_2","SDK_VERSION","supportsFetch","Headers","Request","Response","e","isNativeFetch","func","test","supportsReferrerPolicy","referrerPolicy","lastHref","handlers","instrumented","instrument","forEach","level","console","originalConsoleLevel","triggerHandlers","call","instrumentConsole","triggerDOMHandler","bind","globalDOMEventHandler","makeDOMEventHandler","document","addEventListener","target","proto","hasOwnProperty","originalAddEventListener","listener","el","handlers_1","__sentry_instrumentation_handlers__","handlerForType","refCount","handler","originalRemoveEventListener","handlers_2","undefined","Object","keys","instrumentDOM","requestKeys","requestValues","xhrproto","XMLHttpRequest","originalOpen","xhr","__sentry_xhr__","method","is","toUpperCase","match","__sentry_own_request__","onreadystatechangeHandler","readyState","status_code","status","requestPos","indexOf","splice","args_1","body","endTimestamp","Date","now","startTimestamp","onreadystatechange","original","readyStateArgs","originalSend","push","instrumentXHR","global","fetch","result","doc","createElement","sandbox","hidden","head","appendChild","contentWindow","removeChild","err","supportsNativeFetch","originalFetch","handlerData","fetchData","getFetchMethod","getFetchUrl","then","response","instrumentFetch","chrome","isChromePackagedApp","app","runtime","hasHistoryApi","history","pushState","replaceState","supportsHistory","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","from","to","String","location","href","instrumentHistory","_oldOnErrorHandler","onerror","msg","line","column","_oldOnUnhandledRejectionHandler","onunhandledrejection","addInstrumentationHandler","callback","data","e_1","next","done","e_1_1","return","fetchArgs","debounceTimerID","lastCapturedEvent","globalListener","tagName","isContentEditable","shouldSkipDOMEvent","previous","current","shouldShortcircuitPreviousDebounce","clearTimeout","setTimeout","setPrototypeOf","__proto__","Array","obj","prop","_super","SentryError","_newTarget","constructor","_this","Error","DSN_REGEX","ERROR_MESSAGE","Dsn","_fromString","_fromComponents","_validate","withPassword","host","path","pass","port","projectId","protocol","publicKey","str","exec","slice","split","join","pop","projectMatch","components","user","component","isNaN","parseInt","installedIntegrations","setupIntegrations","integrations","defaultIntegrations","userIntegrations","isArray","userIntegrationsNames_1","map","i","pickedIntegrationsNames_1","defaultIntegration","userIntegration","integrationsNames","alwaysLastToRun","getIntegrationsToSetup","integration","log","setupIntegration","Status","BaseClient","backendClass","_integrations","_processing","_backend","dsn","_dsn","captureException","hint","scope","eventId","event_id","_process","_getBackend","eventFromException","_captureEvent","captureMessage","promisedEvent","eventFromMessage","captureEvent","captureSession","session","release","_sendSession","update","init","getDsn","flush","timeout","_isClientProcessing","ready","getTransport","close","transportFlushed","enabled","_isEnabled","_updateSessionFromEvent","userAgent","crashed","errored","exceptions","exceptions_1","exceptions_1_1","mechanism","handled","headers","request","key","toLowerCase","Crashed","errors","Number","sendSession","resolve","ticked","interval","setInterval","clearInterval","_prepareEvent","normalizeDepth","prepared","timestamp","_applyClientOptions","_applyIntegrationsMetadata","finalScope","captureContext","clone","applyToEvent","evt","_normalizeEvent","depth","normalized","breadcrumbs","b","contexts","extra","trace","environment","dist","maxValueLength","sdkInfo","sdk","integrationsArray","_sendEvent","sendEvent","_processEvent","finalEvent","reason","beforeSend","sampleRate","reject","isTransaction","Math","random","__sentry__","beforeSendResult","processedEvent","getSession","originalException","promise","fromHttpCode","code","Success","RateLimit","Invalid","Failed","Unknown","Severity","NoopTransport","_","Skipped","BaseBackend","_transport","_setupTransport","_exception","_hint","_message","_level","fromString","Debug","Info","Warning","Fatal","Critical","Log","UNKNOWN_FUNCTION","gecko","winjs","geckoEval","chromeEval","reactMinifiedRegexp","computeStackTrace","ex","stack","popSize","framesToPop","parts","opera10Regex","opera11Regex","lines","element","extractMessage","computeStackTraceFromStacktraceProp","popFrames","submatch","isNative","substr","columnNumber","computeStackTraceFromStackProp","failed","exceptionFromStacktrace","prepareFramesForEvent","eventFromStacktrace","localStack","firstFrameFunction","lastFrameFunction","frame","colno","function","in_app","lineno","reverse","eventFromUnknownInput","syntheticException","domException","name_1","eventFromString","tags","rejection","__serialized__","eventFromPlainObject","synthetic","input","attachStacktrace","getSdkMetadataForEnvelopeHeader","api","metadata","version","enhanceEventWithSdkInfo","packages","sessionToSentryRequest","JSON","stringify","sent_at","toISOString","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","header","getReportDialogEndpoint","dialogOptions","endpoint","encodedOptions","encodeURIComponent","email","auth","sentry_key","sentry_version","PromiseBuffer","_limit","_buffer","isReady","add","task","remove","drain","capturedSetTimeout","all","BaseTransport","_rateLimits","_api","_metadata","_handleResponse","requestType","_handleRateLimit","_disabledUntil","category","_isRateLimited","e_2","rlHeader","raHeader","trim","_d","parameters","headerDelay","delay","_e","_f","e_2_1","FetchTransport","_sendRequest","sentryRequest","originalPayload","Promise","fetchParameters","assign","get","catch","XHRTransport","getResponseHeader","open","setRequestHeader","send","BrowserBackend","transportOptions","transport","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","wrap","fn","before","__sentry_wrapped__","sentryWrapped","wrappedArguments","arg","handleEvent","addEventProcessor","property","defineProperty","enumerable","defineProperties","getOwnPropertyDescriptor","configurable","injectReportDialog","script","async","src","onLoad","onload","Breadcrumbs","dom","sentry","addSentryBreadcrumb","addBreadcrumb","_consoleBreadcrumb","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","breadcrumb","parsedLoc","parsedFrom","parsedTo","relative","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","detail","_eventFromRejectionWithPrimitive","groups","LinkedErrors","_key","limit","_handler","linkedErrors","_walkErrorTree","UserAgent","navigator","referrer","Referer","window_1","SENTRY_RELEASE","autoSessionTracking","clientClass","debug","enable","bindClient","initAndBind","startSession","startSessionTracking","lastEventId","palette","black","white","blue","lightBlue","greyLight","grey","greyDark","redDark","yellow","orange","orangeDark","green","greenLight","teal","moderate","high","extreme","catastrophic","preview","small","text","rem","medium","large","xLarge","borderRadius","colors","button","background","default","dark","secondary","transparent","border","download","heading","section","fontSize","space","mediaQueries","zIndex","baseUnits","em","xlarge","smallMax"],"mappings":"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","file":"static/chunks/b1542cc239bf56c8a14913c0a930efe682b5cf86.4d4675e7876d87686d34.js","sourcesContent":["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","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 var options = self._mergeOptions(clientOptions);\n if (self._shouldDropEvent(event, options)) {\n return null;\n }\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","export var SDK_VERSION = '6.1.0';\n//# sourceMappingURL=version.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\nfunction 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 return oldOnPopState.apply(this, args);\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/** Gets integration to install */\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && __spread(options.defaultIntegrations)) || [];\n var userIntegrations = options.integrations;\n var integrations = [];\n if (Array.isArray(userIntegrations)) {\n var userIntegrationsNames_1 = userIntegrations.map(function (i) { return i.name; });\n var pickedIntegrationsNames_1 = [];\n // Leave only unique default integrations, that were not overridden with provided user integrations\n defaultIntegrations.forEach(function (defaultIntegration) {\n if (userIntegrationsNames_1.indexOf(defaultIntegration.name) === -1 &&\n pickedIntegrationsNames_1.indexOf(defaultIntegration.name) === -1) {\n integrations.push(defaultIntegration);\n pickedIntegrationsNames_1.push(defaultIntegration.name);\n }\n });\n // Don't add same user integration twice\n userIntegrations.forEach(function (userIntegration) {\n if (pickedIntegrationsNames_1.indexOf(userIntegration.name) === -1) {\n integrations.push(userIntegration);\n pickedIntegrationsNames_1.push(userIntegration.name);\n }\n });\n }\n else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(defaultIntegrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n else {\n integrations = __spread(defaultIntegrations);\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, __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 (!session.release) {\n logger.warn('Discarded session because of missing release');\n }\n else {\n this._sendSession(session);\n // After sending, we set init false to inidcate it's not the first occurence\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 sdkInfo = event.sdk;\n var integrationsArray = Object.keys(this._integrations);\n if (sdkInfo && integrationsArray.length > 0) {\n sdkInfo.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 element = {\n // 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 url: parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\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 name: sdkInfo.name,\n version: sdkInfo.version,\n };\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 an event. */\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 var itemHeaders = JSON.stringify({\n type: 'session',\n });\n return {\n body: envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + JSON.stringify(session),\n type: 'session',\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';\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 (category) {\n return this._rateLimits[category] || this._rateLimits.all;\n };\n /**\n * Checks if a category is rate limited\n */\n BaseTransport.prototype._isRateLimited = function (category) {\n return this._disabledUntil(category) > 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, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\nvar global = getGlobalObject();\n/** `fetch` based transport */\nvar FetchTransport = /** @class */ (function (_super) {\n __extends(FetchTransport, _super);\n function FetchTransport() {\n return _super !== null && _super.apply(this, arguments) || 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 global\n .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 } 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 } 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 return _super.call(this, BrowserBackend, options) || 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, SDK_VERSION } 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 options._metadata = options._metadata || {};\n 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 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 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 if (options.debug === true) {\n logger.enable();\n }\n var hub = getCurrentHub();\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n//# sourceMappingURL=sdk.js.map","export default {\n get text() {\n return this.palette.black;\n },\n get background() {\n return this.palette.white;\n },\n get primary() {\n return this.palette.white;\n },\n palette: {\n blue: '#00294D',\n lightBlue: '#2C7AFC',\n black: '#000',\n white: '#FFFFFF',\n greyLight: '#D1D3D4',\n grey: '#757575',\n greyDark: '#222222',\n redDark: '#A51B20',\n yellow: '#ffc700',\n orange: '#F99D1C',\n orangeDark: '#FF7A00',\n green: '#00A458',\n greenLight: '#05DC78',\n teal: '#009FD6',\n moderate: '#64BF30',\n high: '#FEDD3A',\n extreme: '#F78100',\n catastrophic: '#AD0909',\n },\n preview: '#0070f3',\n};\n","export default {\n small: '1rem',\n} as const;\n","import { rem } from 'polished';\n\nexport default {\n text: {\n small: rem(14),\n medium: rem(16),\n large: rem(20),\n xLarge: rem(24),\n },\n};\n","import borderRadius from './border-radius';\nimport colors from './colors';\nimport fontSize from './font-size';\nimport mediaQueries from './media-queries';\nimport space from './spacing';\nimport zIndex from './z-index';\n\nexport default {\n borderRadius,\n colors: { ...colors },\n components: {\n button: {\n background: {\n default: colors.palette.redDark,\n dark: colors.palette.black,\n secondary: colors.palette.greyLight,\n transparent: 'transparent',\n },\n border: {\n default: colors.palette.redDark,\n dark: colors.palette.white,\n secondary: colors.palette.black,\n transparent: colors.palette.black,\n },\n text: {\n default: colors.palette.white,\n dark: colors.palette.white,\n secondary: colors.palette.black,\n transparent: colors.palette.black,\n },\n },\n download: {\n text: colors.palette.black,\n background: colors.palette.white,\n },\n text: {\n text: colors.palette.black,\n },\n heading: {\n text: colors.palette.black,\n },\n section: {\n background: colors.palette.white,\n },\n },\n fontSize,\n space,\n mediaQueries,\n zIndex,\n};\n","import { em } from 'polished';\n\nexport const baseUnits = {\n small: em(400),\n medium: em(768),\n large: em(1024),\n xlarge: em(1200),\n};\n\nexport default {\n /** 400px */\n small: `@media screen and (min-width: ${baseUnits.small})`,\n /** 768px */\n medium: `@media screen and (min-width: ${baseUnits.medium})`,\n /** 1024px */\n large: `@media screen and (min-width: ${baseUnits.large})`,\n /** 1200px */\n xlarge: `@media screen and (min-width: ${baseUnits.xlarge})`,\n // This media query is used to handle the maximum screen size of mobile (400px)\n smallMax: `@media screen and (max-width: ${baseUnits.small})`,\n};\n","export default {\n small: '4px',\n medium: '20px',\n large: '100px',\n} as const;\n","export default {\n ...[\n 0, // default\n 1, // hover/focus\n 2, // active\n 10, // modal-backdrop\n 20, // modal\n 30, // popover\n 40, // tooltip\n ],\n};\n"],"sourceRoot":""}