{"version":3,"file":"js/26-b9800dc00b7dcf0d8c78.js","mappings":"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","sources":["webpack://artprice/./node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js","webpack://artprice/./node_modules/@sentry/core/build/esm/defaultScopes.js","webpack://artprice/./node_modules/@sentry/core/build/esm/asyncContext/index.js","webpack://artprice/./node_modules/@sentry/core/build/esm/breadcrumbs.js","webpack://artprice/./node_modules/@sentry/core/build/esm/carrier.js","webpack://artprice/./node_modules/@sentry/core/build/esm/constants.js","webpack://artprice/./node_modules/@sentry/core/build/esm/currentScopes.js","webpack://artprice/./node_modules/@sentry/core/build/esm/debug-build.js","webpack://artprice/./node_modules/@sentry/core/build/esm/exports.js","webpack://artprice/./node_modules/@sentry/core/build/esm/scope.js","webpack://artprice/./node_modules/@sentry/core/build/esm/semanticAttributes.js","webpack://artprice/./node_modules/@sentry/core/build/esm/session.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/baggage.js","webpack://artprice/./node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils/hasTracingEnabled.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/browser.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/debug-build.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/is.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/logger.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/misc.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/normalize.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/memo.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/object.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/propagationContext.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/stacktrace.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/string.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/syncpromise.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/time.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/version.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/worldwide.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils/merge.js","webpack://artprice/./node_modules/@sentry/core/build/esm/eventProcessors.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils-hoist/debug-ids.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils/applyScopeDataToEvent.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils/prepareEvent.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils/spanOnScope.js","webpack://artprice/./node_modules/@sentry/core/build/esm/metrics/metric-summary.js","webpack://artprice/./node_modules/@sentry/core/build/esm/tracing/spanstatus.js","webpack://artprice/./node_modules/@sentry/core/build/esm/utils/spanUtils.js","webpack://artprice/./node_modules/axios/lib/helpers/bind.js","webpack://artprice/./node_modules/axios/lib/utils.js","webpack://artprice/./node_modules/axios/lib/core/AxiosError.js","webpack://artprice/./node_modules/axios/lib/helpers/toFormData.js","webpack://artprice/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://artprice/./node_modules/axios/lib/helpers/buildURL.js","webpack://artprice/./node_modules/axios/lib/core/InterceptorManager.js","webpack://artprice/./node_modules/axios/lib/defaults/transitional.js","webpack://artprice/./node_modules/axios/lib/platform/browser/index.js","webpack://artprice/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://artprice/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://artprice/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://artprice/./node_modules/axios/lib/platform/common/utils.js","webpack://artprice/./node_modules/axios/lib/platform/index.js","webpack://artprice/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://artprice/./node_modules/axios/lib/defaults/index.js","webpack://artprice/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://artprice/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://artprice/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://artprice/./node_modules/axios/lib/core/transformData.js","webpack://artprice/./node_modules/axios/lib/cancel/isCancel.js","webpack://artprice/./node_modules/axios/lib/cancel/CanceledError.js","webpack://artprice/./node_modules/axios/lib/core/settle.js","webpack://artprice/./node_modules/axios/lib/helpers/speedometer.js","webpack://artprice/./node_modules/axios/lib/helpers/throttle.js","webpack://artprice/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://artprice/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://artprice/./node_modules/axios/lib/helpers/cookies.js","webpack://artprice/./node_modules/axios/lib/core/buildFullPath.js","webpack://artprice/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://artprice/./node_modules/axios/lib/helpers/combineURLs.js","webpack://artprice/./node_modules/axios/lib/core/mergeConfig.js","webpack://artprice/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://artprice/./node_modules/axios/lib/adapters/xhr.js","webpack://artprice/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://artprice/./node_modules/axios/lib/helpers/composeSignals.js","webpack://artprice/./node_modules/axios/lib/helpers/trackStream.js","webpack://artprice/./node_modules/axios/lib/adapters/fetch.js","webpack://artprice/./node_modules/axios/lib/adapters/adapters.js","webpack://artprice/./node_modules/axios/lib/helpers/null.js","webpack://artprice/./node_modules/axios/lib/core/dispatchRequest.js","webpack://artprice/./node_modules/axios/lib/env/data.js","webpack://artprice/./node_modules/axios/lib/helpers/validator.js","webpack://artprice/./node_modules/axios/lib/core/Axios.js","webpack://artprice/./node_modules/axios/lib/cancel/CancelToken.js","webpack://artprice/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://artprice/./node_modules/axios/lib/axios.js","webpack://artprice/./node_modules/axios/lib/helpers/spread.js","webpack://artprice/./node_modules/axios/lib/helpers/isAxiosError.js"],"sourcesContent":["import { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { isThenable } from '../utils-hoist/is.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\n/**\n * This is an object that holds a stack of scopes.\n */\nclass AsyncContextStack {\n\n constructor(scope, isolationScope) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n } else {\n assignedScope = scope;\n }\n\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n } else {\n assignedIsolationScope = isolationScope;\n }\n\n // scope stack for domains or the process\n this._stack = [{ scope: assignedScope }];\n this._isolationScope = assignedIsolationScope;\n }\n\n /**\n * Fork a scope for the stack.\n */\n withScope(callback) {\n const scope = this._pushScope();\n\n let maybePromiseResult;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n this._popScope();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n // @ts-expect-error - isThenable returns the wrong type\n return maybePromiseResult.then(\n res => {\n this._popScope();\n return res;\n },\n e => {\n this._popScope();\n throw e;\n },\n );\n }\n\n this._popScope();\n return maybePromiseResult;\n }\n\n /**\n * Get the client of the stack.\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /**\n * Returns the scope of the top stack.\n */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /**\n * Get the isolation scope for the stack.\n */\n getIsolationScope() {\n return this._isolationScope;\n }\n\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n */\n getStackTop() {\n return this._stack[this._stack.length - 1] ;\n }\n\n /**\n * Push a scope to the stack.\n */\n _pushScope() {\n // We want to clone the content of prev scope\n const scope = this.getScope().clone();\n this._stack.push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * Pop a scope from the stack.\n */\n _popScope() {\n if (this._stack.length <= 1) return false;\n return !!this._stack.pop();\n }\n}\n\n/**\n * Get the global async context stack.\n * This will be removed during the v8 cycle and is only here to make migration easier.\n */\nfunction getAsyncContextStack() {\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n\n return (sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope()));\n}\n\nfunction withScope(callback) {\n return getAsyncContextStack().withScope(callback);\n}\n\nfunction withSetScope(scope, callback) {\n const stack = getAsyncContextStack() ;\n return stack.withScope(() => {\n stack.getStackTop().scope = scope;\n return callback(scope);\n });\n}\n\nfunction withIsolationScope(callback) {\n return getAsyncContextStack().withScope(() => {\n return callback(getAsyncContextStack().getIsolationScope());\n });\n}\n\n/**\n * Get the stack-based async context strategy.\n */\nfunction getStackAsyncContextStrategy() {\n return {\n withIsolationScope,\n withScope,\n withSetScope,\n withSetIsolationScope: (_isolationScope, callback) => {\n return withIsolationScope(callback);\n },\n getCurrentScope: () => getAsyncContextStack().getScope(),\n getIsolationScope: () => getAsyncContextStack().getIsolationScope(),\n };\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n//# sourceMappingURL=stackStrategy.js.map\n","import { Scope } from './scope.js';\nimport { getGlobalSingleton } from './utils-hoist/worldwide.js';\n\n/** Get the default current scope. */\nfunction getDefaultCurrentScope() {\n return getGlobalSingleton('defaultCurrentScope', () => new Scope());\n}\n\n/** Get the default isolation scope. */\nfunction getDefaultIsolationScope() {\n return getGlobalSingleton('defaultIsolationScope', () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n//# sourceMappingURL=defaultScopes.js.map\n","import { getMainCarrier, getSentryCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nfunction setAsyncContextStrategy(strategy) {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n sentry.acs = strategy;\n}\n\n/**\n * Get the current async context strategy.\n * If none has been setup, the default will be used.\n */\nfunction getAsyncContextStrategy(carrier) {\n const sentry = getSentryCarrier(carrier);\n\n if (sentry.acs) {\n return sentry.acs;\n }\n\n // Otherwise, use the default one (stack)\n return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n","import { getClient, getIsolationScope } from './currentScopes.js';\nimport { consoleSandbox } from './utils-hoist/logger.js';\nimport { dateTimestampInSeconds } from './utils-hoist/time.js';\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n */\nfunction addBreadcrumb(breadcrumb, hint) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n\nexport { addBreadcrumb };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { SDK_VERSION } from './utils-hoist/version.js';\nimport { GLOBAL_OBJ } from './utils-hoist/worldwide.js';\n\n/**\n * An object that contains globally accessible properties and maintains a scope stack.\n * @hidden\n */\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n // This ensures a Sentry carrier exists\n getSentryCarrier(GLOBAL_OBJ);\n return GLOBAL_OBJ;\n}\n\n/** Will either get the existing sentry carrier, or create a new one. */\nfunction getSentryCarrier(carrier) {\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n\n // For now: First SDK that sets the .version property wins\n __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n\n // Intentionally populating and returning the version of \"this\" SDK instance\n // rather than what's set in .version so that \"this\" SDK always gets its carrier\n return (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n}\n\nexport { getMainCarrier, getSentryCarrier };\n//# sourceMappingURL=carrier.js.map\n","const DEFAULT_ENVIRONMENT = 'production';\n\nexport { DEFAULT_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n","import { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier } from './carrier.js';\nimport { Scope } from './scope.js';\nimport { dropUndefinedKeys } from './utils-hoist/object.js';\nimport { getGlobalSingleton } from './utils-hoist/worldwide.js';\n\n/**\n * Get the currently active scope.\n */\nfunction getCurrentScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getCurrentScope();\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current execution context.\n */\nfunction getIsolationScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getIsolationScope();\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nfunction getGlobalScope() {\n return getGlobalSingleton('globalScope', () => new Scope());\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n */\n\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nfunction withScope(\n ...rest\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n\n if (!scope) {\n return acs.withScope(callback);\n }\n\n return acs.withSetScope(scope, callback);\n }\n\n return acs.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n */\n\n/**\n * Either creates a new active isolation scope, or sets the given isolation scope as active scope in the given callback.\n */\nfunction withIsolationScope(\n ...rest\n\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [isolationScope, callback] = rest;\n\n if (!isolationScope) {\n return acs.withIsolationScope(callback);\n }\n\n return acs.withSetIsolationScope(isolationScope, callback);\n }\n\n return acs.withIsolationScope(rest[0]);\n}\n\n/**\n * Get the currently active client.\n */\nfunction getClient() {\n return getCurrentScope().getClient();\n}\n\n/**\n * Get a trace context for the given scope.\n */\nfunction getTraceContextFromScope(scope) {\n const propagationContext = scope.getPropagationContext();\n\n // TODO(v9): Use generateSpanId() instead of spanId\n // eslint-disable-next-line deprecation/deprecation\n const { traceId, spanId, parentSpanId } = propagationContext;\n\n const traceContext = dropUndefinedKeys({\n trace_id: traceId,\n span_id: spanId,\n parent_span_id: parentSpanId,\n });\n\n return traceContext;\n}\n\nexport { getClient, getCurrentScope, getGlobalScope, getIsolationScope, getTraceContextFromScope, withIsolationScope, withScope };\n//# sourceMappingURL=currentScopes.js.map\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","import { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { getCurrentScope, getIsolationScope, getClient, withIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { makeSession, updateSession, closeSession } from './session.js';\nimport { isThenable } from './utils-hoist/is.js';\nimport { logger } from './utils-hoist/logger.js';\nimport { uuid4 } from './utils-hoist/misc.js';\nimport { timestampInSeconds } from './utils-hoist/time.js';\nimport { GLOBAL_OBJ } from './utils-hoist/worldwide.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nfunction captureException(exception, hint) {\n return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nfunction captureMessage(message, captureContext) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentScope().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nfunction captureEvent(event, hint) {\n return getCurrentScope().captureEvent(event, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\nfunction setContext(name, context) {\n getIsolationScope().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getIsolationScope().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getIsolationScope().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getIsolationScope().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getIsolationScope().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getIsolationScope().setUser(user);\n}\n\n/**\n * The last error event id of the isolation scope.\n *\n * Warning: This function really returns the last recorded error event id on the current\n * isolation scope. If you call this function after handling a certain error and another error\n * is captured in between, the last one is returned instead of the one you might expect.\n * Also, ids of events that were never sent to Sentry (for example because\n * they were dropped in `beforeSend`) could be returned.\n *\n * @returns The last event id of the isolation scope.\n */\nfunction lastEventId() {\n return getIsolationScope().lastEventId();\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction withMonitor(\n monitorSlug,\n callback,\n upsertMonitorConfig,\n) {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status) {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n\n return withIsolationScope(() => {\n let maybePromiseResult;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishCheckIn('ok');\n },\n e => {\n finishCheckIn('error');\n throw e;\n },\n );\n } else {\n finishCheckIn('ok');\n }\n\n return maybePromiseResult;\n });\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function flush(timeout) {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function close(timeout) {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nfunction isInitialized() {\n return !!getClient();\n}\n\n/** If the SDK is initialized & enabled. */\nfunction isEnabled() {\n const client = getClient();\n return !!client && client.getOptions().enabled !== false && !!client.getTransport();\n}\n\n/**\n * Add an event processor.\n * This will be added to the current isolation scope, ensuring any event that is processed in the current execution\n * context will have the processor applied.\n */\nfunction addEventProcessor(callback) {\n getIsolationScope().addEventProcessor(callback);\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nfunction startSession(context) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: currentScope.getUser() || isolationScope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = isolationScope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n\n endSession();\n\n // Afterwards we set the new session on the scope\n isolationScope.setSession(session);\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession(session);\n\n return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nfunction endSession() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n\n // the session is over; take it off of the scope\n isolationScope.setSession();\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n const client = getClient();\n // TODO (v8): Remove currentScope and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session && client) {\n client.captureSession(session);\n }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n * Defaults to `false`.\n */\nfunction captureSession(end = false) {\n // both send the update and pull the session from the scope\n if (end) {\n endSession();\n return;\n }\n\n // only send the update\n _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureCheckIn, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setContext, setExtra, setExtras, setTag, setTags, setUser, startSession, withMonitor };\n//# sourceMappingURL=exports.js.map\n","import { updateSession } from './session.js';\nimport { isPlainObject } from './utils-hoist/is.js';\nimport { logger } from './utils-hoist/logger.js';\nimport { uuid4 } from './utils-hoist/misc.js';\nimport { generateTraceId, generateSpanId } from './utils-hoist/propagationContext.js';\nimport { dateTimestampInSeconds } from './utils-hoist/time.js';\nimport { merge } from './utils/merge.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information.\n */\nclass ScopeClass {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called during event processing. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /** Propagation Context for distributed tracing */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n\n /**\n * Transaction Name\n *\n * IMPORTANT: The transaction name on the scope has nothing to do with root spans/transaction objects.\n * It's purpose is to assign a transaction to the scope that's added to non-transaction events.\n */\n\n /** Session */\n\n /** Request Mode Session Status */\n // eslint-disable-next-line deprecation/deprecation\n\n /** The client on this scope */\n\n /** Contains the last event id of a captured event. */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = {\n traceId: generateTraceId(),\n spanId: generateSpanId(),\n };\n }\n\n /**\n * @inheritDoc\n */\n clone() {\n const newScope = new ScopeClass();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n if (this._contexts.flags) {\n // We need to copy the `values` array so insertions on a cloned scope\n // won't affect the original array.\n newScope._contexts.flags = {\n values: [...this._contexts.flags.values],\n };\n }\n\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._requestSession = this._requestSession;\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n newScope._lastEventId = this._lastEventId;\n\n _setSpanForScope(newScope, _getSpanForScope(this));\n\n return newScope;\n }\n\n /**\n * @inheritDoc\n */\n setClient(client) {\n this._client = client;\n }\n\n /**\n * @inheritDoc\n */\n setLastEventId(lastEventId) {\n this._lastEventId = lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this._client ;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line deprecation/deprecation\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line deprecation/deprecation\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the transaction name on the scope so that the name of e.g. taken server route or\n * the page location is attached to future events.\n *\n * IMPORTANT: Calling this function does NOT change the name of the currently active\n * root span. If you want to change the name of the active root span, use\n * `Sentry.updateSpanName(rootSpan, 'new name')` instead.\n *\n * By default, the SDK updates the scope's transaction name automatically on sensible\n * occasions, such as a page navigation or when handling a new request on the server.\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n const [scopeInstance, requestSession] =\n scopeToMerge instanceof Scope\n ? // eslint-disable-next-line deprecation/deprecation\n [scopeToMerge.getScopeData(), scopeToMerge.getRequestSession()]\n : isPlainObject(scopeToMerge)\n ? [captureContext , (captureContext ).requestSession]\n : [];\n\n const { tags, extra, user, contexts, level, fingerprint = [], propagationContext } = scopeInstance || {};\n\n this._tags = { ...this._tags, ...tags };\n this._extra = { ...this._extra, ...extra };\n this._contexts = { ...this._contexts, ...contexts };\n\n if (user && Object.keys(user).length) {\n this._user = user;\n }\n\n if (level) {\n this._level = level;\n }\n\n if (fingerprint.length) {\n this._fingerprint = fingerprint;\n }\n\n if (propagationContext) {\n this._propagationContext = propagationContext;\n }\n\n if (requestSession) {\n this._requestSession = requestSession;\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n // client is not cleared here on purpose!\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._session = undefined;\n _setSpanForScope(this, undefined);\n this._attachments = [];\n this.setPropagationContext({ traceId: generateTraceId() });\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n this._breadcrumbs.push(mergedBreadcrumb);\n if (this._breadcrumbs.length > maxCrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(-maxCrumbs);\n if (this._client) {\n this._client.recordDroppedEvent('buffer_overflow', 'log_item');\n }\n }\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /** @inheritDoc */\n getScopeData() {\n return {\n breadcrumbs: this._breadcrumbs,\n attachments: this._attachments,\n contexts: this._contexts,\n tags: this._tags,\n extra: this._extra,\n user: this._user,\n level: this._level,\n fingerprint: this._fingerprint || [],\n eventProcessors: this._eventProcessors,\n propagationContext: this._propagationContext,\n sdkProcessingMetadata: this._sdkProcessingMetadata,\n transactionName: this._transactionName,\n span: _getSpanForScope(this),\n };\n }\n\n /**\n * @inheritDoc\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = merge(this._sdkProcessingMetadata, newData, 2);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setPropagationContext(\n context,\n ) {\n this._propagationContext = {\n // eslint-disable-next-line deprecation/deprecation\n spanId: generateSpanId(),\n ...context,\n };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getPropagationContext() {\n return this._propagationContext;\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(message, level, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\n/**\n * Holds additional event information.\n */\nconst Scope = ScopeClass;\n\n/**\n * Holds additional event information.\n */\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Use this attribute to represent the sample rate used for a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/** The reason why an idle span finished. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = 'sentry.idle_span_finish_reason';\n\n/** The unit of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = 'sentry.measurement_unit';\n\n/** The value of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = 'sentry.measurement_value';\n\n/**\n * A custom span name set by users guaranteed to be taken over any automatically\n * inferred name. This attribute is removed before the span is sent.\n *\n * @internal only meant for internal SDK usage\n * @hidden\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME = 'sentry.custom_span_name';\n\n/**\n * The id of the profile that this span occurred in.\n */\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = 'sentry.profile_id';\n\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = 'sentry.exclusive_time';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = 'cache.hit';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = 'cache.key';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = 'cache.item_size';\n\n/** TODO: Remove these once we update to latest semantic conventions */\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = 'http.request.method';\nconst SEMANTIC_ATTRIBUTE_URL_FULL = 'url.full';\n\nexport { SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_URL_FULL };\n//# sourceMappingURL=semanticAttributes.js.map\n","import './utils-hoist/debug-build.js';\nimport './utils-hoist/logger.js';\nimport { dropUndefinedKeys } from './utils-hoist/object.js';\nimport { timestampInSeconds } from './utils-hoist/time.js';\nimport { uuid4 } from './utils-hoist/misc.js';\nimport './utils-hoist/syncpromise.js';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { isString } from './is.js';\nimport { logger } from './logger.js';\n\n/**\n * @deprecated Use a `\"baggage\"` string directly\n */\nconst BAGGAGE_HEADER_NAME = 'baggage';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nfunction baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader,\n) {\n const baggageObject = parseBaggageHeader(baggageHeader);\n\n if (!baggageObject) {\n return undefined;\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext ;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nfunction dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext,\n) {\n if (!dynamicSamplingContext) {\n return undefined;\n }\n\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Take a baggage header and parse it into an object.\n */\nfunction parseBaggageHeader(\n baggageHeader,\n) {\n if (!baggageHeader || (!isString(baggageHeader) && !Array.isArray(baggageHeader))) {\n return undefined;\n }\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n return baggageHeader.reduce((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n Object.entries(currBaggageObject).forEach(([key, value]) => {\n acc[key] = value;\n });\n return acc;\n }, {});\n }\n\n return baggageHeaderToObject(baggageHeader);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader) {\n return baggageHeader\n .split(',')\n .map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim())))\n .reduce((acc, [key, value]) => {\n if (key && value) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object) {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n\nexport { BAGGAGE_HEADER_NAME, MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, parseBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n","import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getClient } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader } from '../utils-hoist/baggage.js';\nimport { dropUndefinedKeys, addNonEnumerableProperty } from '../utils-hoist/object.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { getRootSpan, spanToJSON, spanIsSampled } from '../utils/spanUtils.js';\n\n/**\n * If you change this value, also update the terser plugin config to\n * avoid minification of the object property!\n */\nconst FROZEN_DSC_FIELD = '_frozenDsc';\n\n/**\n * Freeze the given DSC on the given span.\n */\nfunction freezeDscOnSpan(span, dsc) {\n const spanWithMaybeDsc = span ;\n addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n\n const dsc = dropUndefinedKeys({\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n public_key,\n trace_id,\n }) ;\n\n client.emit('createDsc', dsc);\n\n return dsc;\n}\n\n/**\n * Get the dynamic sampling context for the currently active scopes.\n */\nfunction getDynamicSamplingContextFromScope(client, scope) {\n const propagationContext = scope.getPropagationContext();\n return propagationContext.dsc || getDynamicSamplingContextFromClient(propagationContext.traceId, client);\n}\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nfunction getDynamicSamplingContextFromSpan(span) {\n const client = getClient();\n if (!client) {\n return {};\n }\n\n const rootSpan = getRootSpan(span);\n\n // For core implementation, we freeze the DSC onto the span as a non-enumerable property\n const frozenDsc = (rootSpan )[FROZEN_DSC_FIELD];\n if (frozenDsc) {\n return frozenDsc;\n }\n\n // For OpenTelemetry, we freeze the DSC on the trace state\n const traceState = rootSpan.spanContext().traceState;\n const traceStateDsc = traceState && traceState.get('sentry.dsc');\n\n // If the span has a DSC, we want it to take precedence\n const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n\n if (dscOnTraceState) {\n return dscOnTraceState;\n }\n\n // Else, we generate it from the span\n const dsc = getDynamicSamplingContextFromClient(span.spanContext().traceId, client);\n const jsonSpan = spanToJSON(rootSpan);\n const attributes = jsonSpan.data || {};\n const maybeSampleRate = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n\n if (maybeSampleRate != null) {\n dsc.sample_rate = `${maybeSampleRate}`;\n }\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n // after JSON conversion, txn.name becomes jsonSpan.description\n const name = jsonSpan.description;\n if (source !== 'url' && name) {\n dsc.transaction = name;\n }\n\n // How can we even land here with hasTracingEnabled() returning false?\n // Otel creates a Non-recording span in Tracing Without Performance mode when handling incoming requests\n // So we end up with an active span that is not sampled (neither positively nor negatively)\n if (hasTracingEnabled()) {\n dsc.sampled = String(spanIsSampled(rootSpan));\n }\n\n client.emit('createDsc', dsc, rootSpan);\n\n return dsc;\n}\n\n/**\n * Convert a Span to a baggage header.\n */\nfunction spanToBaggageHeader(span) {\n const dsc = getDynamicSamplingContextFromSpan(span);\n return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromScope, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n//# sourceMappingURL=dynamicSamplingContext.js.map\n","import { getClient } from '../currentScopes.js';\n\n// Treeshakable guard to remove all code related to tracing\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nfunction hasTracingEnabled(\n maybeOptions,\n) {\n if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n return false;\n }\n\n const client = getClient();\n const options = maybeOptions || (client && client.getOptions());\n // eslint-disable-next-line deprecation/deprecation\n return !!options && (options.enableTracing || 'tracesSampleRate' in options || 'tracesSampler' in options);\n}\n\nexport { hasTracingEnabled };\n//# sourceMappingURL=hasTracingEnabled.js.map\n","import { isString } from './is.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(\n elem,\n options = {},\n) {\n if (!elem) {\n return '';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n const elem = el\n\n;\n\n const out = [];\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n // @ts-expect-error WINDOW has HTMLElement\n if (WINDOW.HTMLElement) {\n // If using the component name annotation plugin, this value may be available on the DOM node\n if (elem instanceof HTMLElement && elem.dataset) {\n if (elem.dataset['sentryComponent']) {\n return elem.dataset['sentryComponent'];\n }\n if (elem.dataset['sentryElement']) {\n return elem.dataset['sentryElement'];\n }\n }\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n const className = elem.className;\n if (className && isString(className)) {\n const classes = className.split(/\\s+/);\n for (const c of classes) {\n out.push(`.${c}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (const k of allowedAttrs) {\n const attr = elem.getAttribute(k);\n if (attr) {\n out.push(`[${k}=\"${attr}\"]`);\n }\n }\n\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existence of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n *\n * @deprecated This method is deprecated and will be removed in the next major version.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getDomElement(selector) {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) ;\n }\n return null;\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` or `data-sentry-element` attribute with `data-sentry-component` taking\n * precedence. This attribute is added at build-time by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nfunction getComponentName(elem) {\n // @ts-expect-error WINDOW has HTMLElement\n if (!WINDOW.HTMLElement) {\n return null;\n }\n\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n if (!currentElem) {\n return null;\n }\n\n if (currentElem instanceof HTMLElement) {\n if (currentElem.dataset['sentryComponent']) {\n return currentElem.dataset['sentryComponent'];\n }\n if (currentElem.dataset['sentryElement']) {\n return currentElem.dataset['sentryElement'];\n }\n }\n\n currentElem = currentElem.parentNode;\n }\n\n return null;\n}\n\nexport { getComponentName, getDomElement, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n case '[object WebAssembly.Exception]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isParameterizedString(wat) {\n return (\n typeof wat === 'object' &&\n wat !== null &&\n '__sentry_template_string__' in wat &&\n '__sentry_template_values__' in wat\n );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isVueViewModel(wat) {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n return !!(typeof wat === 'object' && wat !== null && ((wat ).__isVue || (wat )._isVue));\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable, isVueViewModel };\n//# sourceMappingURL=is.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { getGlobalSingleton, GLOBAL_OBJ } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'log',\n 'assert',\n 'trace',\n] ;\n\n/** This may be mutated by the console instrumentation. */\nconst originalConsoleMethods\n\n = {};\n\n/** JSDoc */\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console ;\n const wrappedFuncs = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) ;\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level] ;\n wrappedFuncs[level] = console[level] ;\n console[level] = originalConsoleMethod;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] ;\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n isEnabled: () => enabled,\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n/**\n * This is a logger singleton which either logs things or no-ops if logging is not enabled.\n * The logger is a singleton on the carrier, to ensure that a consistent logger is used throughout the SDK.\n */\nconst logger = getGlobalSingleton('logger', makeLogger);\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger, originalConsoleMethods };\n//# sourceMappingURL=logger.js.map\n","import { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n const gbl = GLOBAL_OBJ ;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n let getRandomByte = () => Math.random() * 16;\n try {\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n if (crypto && crypto.getRandomValues) {\n getRandomByte = () => {\n // crypto.getRandomValues might return undefined instead of the typed array\n // in old Chromium versions (e.g. 23.0.1235.0 (151422))\n // However, `typedArray` is still filled in-place.\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues#typedarray\n const typedArray = new Uint8Array(1);\n crypto.getRandomValues(typedArray);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return typedArray[0];\n };\n }\n } catch (_) {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\nfunction _parseInt(input) {\n return parseInt(input || '', 10);\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = _parseInt(match[1]);\n const minor = _parseInt(match[2]);\n const patch = _parseInt(match[3]);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n // We guard here to ensure this is not larger than the existing number of lines\n const lineIndex = Math.min(maxLines - 1, sourceLine);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n if (isAlreadyCaptured(exception)) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\nfunction isAlreadyCaptured(exception) {\n try {\n return (exception ).__sentry_captured__;\n } catch (e) {} // eslint-disable-line no-empty\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n *\n * @deprecated This function has been deprecated and will not be replaced.\n */\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","import { isVueViewModel, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normalized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = 100, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n // eslint-disable-next-line deprecation/deprecation\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n ['boolean', 'string'].includes(typeof value) ||\n (typeof value === 'number' && Number.isFinite(value))\n ) {\n return value ;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value )['__sentry_override_normalization_depth__'] === 'number'\n ? ((value )['__sentry_override_normalization_depth__'] )\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value );\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return '[VueViewModel]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && !Number.isFinite(value)) {\n return `[${value}]`;\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value) {\n const prototype = Object.getPrototypeOf(value);\n\n return prototype ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nfunction normalizeUrlToBase(url, basePath) {\n const escapedBase = basePath\n // Backslash to forward\n .replace(/\\\\/g, '/')\n // Escape RegExp special characters\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch (_Oo) {\n // Sometime this breaks\n }\n return (\n newUrl\n .replace(/\\\\/g, '/')\n .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n );\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase };\n//# sourceMappingURL=normalize.js.map\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Helper to decycle json objects\n *\n * @deprecated This function is deprecated and will be removed in the next major version.\n */\n// TODO(v9): Move this function into normalize() directly\nfunction memoBuilder() {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { logger } from './logger.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] ;\n const wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n try {\n source[name] = wrapped;\n } catch (e) {\n DEBUG_BUILD && logger.log(`Failed to replace method \"${name}\" in object`, source);\n }\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n } catch (o_O) {\n DEBUG_BUILD && logger.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch (o_O) {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n *\n * @deprecated This function is deprecated and will be removed in the next major version of the SDK.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction urlEncode(object) {\n return Object.entries(object)\n .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argument itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(value)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n const firstKey = keys[0];\n\n if (!firstKey) {\n return '[object has no keys]';\n }\n\n if (firstKey.length >= maxLength) {\n return truncate(firstKey, maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPojo(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.getOwnPropertyNames(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\nfunction isPojo(input) {\n if (!isPlainObject(input)) {\n return false;\n }\n\n try {\n const name = (Object.getPrototypeOf(input) ).constructor.name;\n return !name || name === 'Object';\n } catch (e2) {\n return true;\n }\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n // this will catch both undefined and null\n case wat == undefined:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","import { uuid4 } from './misc.js';\n\n/**\n * Returns a new minimal propagation context.\n *\n * @deprecated Use `generateTraceId` and `generateSpanId` instead.\n */\nfunction generatePropagationContext() {\n return {\n traceId: generateTraceId(),\n spanId: generateSpanId(),\n };\n}\n\n/**\n * Generate a random, valid trace ID.\n */\nfunction generateTraceId() {\n return uuid4();\n}\n\n/**\n * Generate a random, valid span ID.\n */\nfunction generateSpanId() {\n return uuid4().substring(16);\n}\n\nexport { generatePropagationContext, generateSpanId, generateTraceId };\n//# sourceMappingURL=propagationContext.js.map\n","const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = '?';\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirstLines = 0, framesToPop = 0) => {\n const frames = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirstLines; i < lines.length; i++) {\n const line = lines[i] ;\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames.slice(framesToPop));\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n const localStack = Array.from(stack);\n\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 (/sentryWrapped/.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\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 (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n\n // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n // is produced within the hub itself, making it:\n //\n // Sentry.captureException()\n // getCurrentHub().captureException()\n //\n // instead of just the top `Sentry` call itself.\n // This forces us to possibly strip an additional frame in the exact same was as above.\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n }\n\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n ...frame,\n filename: frame.filename || getLastStackFrame(localStack).filename,\n function: frame.function || UNKNOWN_FUNCTION,\n }));\n}\n\nfunction getLastStackFrame(arr) {\n return arr[arr.length - 1] || {};\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Get's stack frames from an event without needing to check for undefined properties.\n */\nfunction getFramesFromEvent(event) {\n const exception = event.exception;\n\n if (exception) {\n const frames = [];\n try {\n // @ts-expect-error Object could be undefined\n exception.values.forEach(value => {\n // @ts-expect-error Value could be undefined\n if (value.stacktrace.frames) {\n // @ts-expect-error Value could be undefined\n frames.push(...value.stacktrace.frames);\n }\n });\n return frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","import { isVueViewModel, isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push('[VueViewModel]');\n } else {\n output.push(String(value));\n }\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n value,\n pattern,\n requireExactStringMatch = false,\n) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n testString,\n patterns = [],\n requireExactStringMatch = false,\n) {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n\n constructor(\n executor,\n ) {SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);\n this._state = States.PENDING;\n this._handlers = [];\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init2() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init3() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init4() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n *\n * TODO(v8): Return type should be rounded.\n */\nfunction dateTimestampInSeconds() {\n return Date.now() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc() {\n const { performance } = GLOBAL_OBJ ;\n if (!performance || !performance.now) {\n return dateTimestampInSeconds;\n }\n\n // Some browser and environments don't have a timeOrigin, so we fallback to\n // using Date.now() to compute the starting time.\n const approxStartingTimeOrigin = Date.now() - performance.now();\n const timeOrigin = performance.timeOrigin == undefined ? approxStartingTimeOrigin : performance.timeOrigin;\n\n // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n //\n // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n // correct for this.\n // See: https://github.com/getsentry/sentry-javascript/issues/2590\n // See: https://github.com/mdn/content/issues/4713\n // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n return () => {\n return (timeOrigin + performance.now()) / ONE_SECOND_IN_MS;\n };\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = createUnixTimestampInSecondsFunc();\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n *\n * @deprecated This variable will be removed in the next major version.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nconst browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = GLOBAL_OBJ ;\n if (!performance || !performance.now) {\n // eslint-disable-next-line deprecation/deprecation\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n // eslint-disable-next-line deprecation/deprecation\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n // eslint-disable-next-line deprecation/deprecation\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n // eslint-disable-next-line deprecation/deprecation\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n//# sourceMappingURL=time.js.map\n","// This is a magic string replaced by rollup\n\nconst SDK_VERSION = \"8.53.0\" ;\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { SDK_VERSION } from './version.js';\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ = globalThis ;\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__[]` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const versionedCarrier = (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n return versionedCarrier[name] || (versionedCarrier[name] = creator());\n}\n\nexport { GLOBAL_OBJ, getGlobalSingleton };\n//# sourceMappingURL=worldwide.js.map\n","/**\n * Shallow merge two objects.\n * Does not mutate the passed in objects.\n * Undefined/empty values in the merge object will overwrite existing values.\n *\n * By default, this merges 2 levels deep.\n */\nfunction merge(initialObj, mergeObj, levels = 2) {\n // If the merge value is not an object, or we have no merge levels left,\n // we just set the value to the merge value\n if (!mergeObj || typeof mergeObj !== 'object' || levels <= 0) {\n return mergeObj;\n }\n\n // If the merge object is an empty object, and the initial object is not undefined, we return the initial object\n if (initialObj && mergeObj && Object.keys(mergeObj).length === 0) {\n return initialObj;\n }\n\n // Clone object\n const output = { ...initialObj };\n\n // Merge values into output, resursively\n for (const key in mergeObj) {\n if (Object.prototype.hasOwnProperty.call(mergeObj, key)) {\n output[key] = merge(output[key], mergeObj[key], levels - 1);\n }\n }\n\n return output;\n}\n\nexport { merge };\n//# sourceMappingURL=merge.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { isThenable } from './utils-hoist/is.js';\nimport { logger } from './utils-hoist/logger.js';\nimport { SyncPromise } from './utils-hoist/syncpromise.js';\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nfunction notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n) {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) ;\n\n DEBUG_BUILD && processor.id && result === null && logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n}\n\nexport { notifyEventProcessors };\n//# sourceMappingURL=eventProcessors.js.map\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nlet parsedStackResults;\nlet lastKeysCount;\nlet cachedFilenameDebugIds;\n\n/**\n * Returns a map of filenames to debug identifiers.\n */\nfunction getFilenameToDebugIdMap(stackParser) {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n if (!debugIdMap) {\n return {};\n }\n\n const debugIdKeys = Object.keys(debugIdMap);\n\n // If the count of registered globals hasn't changed since the last call, we\n // can just return the cached result.\n if (cachedFilenameDebugIds && debugIdKeys.length === lastKeysCount) {\n return cachedFilenameDebugIds;\n }\n\n lastKeysCount = debugIdKeys.length;\n\n // Build a map of filename -> debug_id.\n cachedFilenameDebugIds = debugIdKeys.reduce((acc, stackKey) => {\n if (!parsedStackResults) {\n parsedStackResults = {};\n }\n\n const result = parsedStackResults[stackKey];\n\n if (result) {\n acc[result[0]] = result[1];\n } else {\n const parsedStack = stackParser(stackKey);\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n const filename = stackFrame && stackFrame.filename;\n const debugId = debugIdMap[stackKey];\n\n if (filename && debugId) {\n acc[filename] = debugId;\n parsedStackResults[stackKey] = [filename, debugId];\n break;\n }\n }\n }\n\n return acc;\n }, {});\n\n return cachedFilenameDebugIds;\n}\n\n/**\n * Returns a list of debug images for the given resources.\n */\nfunction getDebugImagesForResources(\n stackParser,\n resource_paths,\n) {\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n if (!filenameDebugIdMap) {\n return [];\n }\n\n const images = [];\n for (const path of resource_paths) {\n if (path && filenameDebugIdMap[path]) {\n images.push({\n type: 'sourcemap',\n code_file: path,\n debug_id: filenameDebugIdMap[path] ,\n });\n }\n }\n\n return images;\n}\n\nexport { getDebugImagesForResources, getFilenameToDebugIdMap };\n//# sourceMappingURL=debug-ids.js.map\n","import { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { dropUndefinedKeys } from '../utils-hoist/object.js';\nimport { merge } from './merge.js';\nimport { spanToTraceContext, getRootSpan, spanToJSON } from './spanUtils.js';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nfunction applyScopeDataToEvent(event, data) {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n // Apply general data\n applyDataToEvent(event, data);\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (span) {\n applySpanToEvent(event, span);\n }\n\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nfunction mergeScopeData(data, mergeData) {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n transactionName,\n span,\n } = mergeData;\n\n mergeAndOverwriteScopeData(data, 'extra', extra);\n mergeAndOverwriteScopeData(data, 'tags', tags);\n mergeAndOverwriteScopeData(data, 'user', user);\n mergeAndOverwriteScopeData(data, 'contexts', contexts);\n\n data.sdkProcessingMetadata = merge(data.sdkProcessingMetadata, sdkProcessingMetadata, 2);\n\n if (level) {\n data.level = level;\n }\n\n if (transactionName) {\n data.transactionName = transactionName;\n }\n\n if (span) {\n data.span = span;\n }\n\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nfunction mergeAndOverwriteScopeData\n\n(data, prop, mergeVal) {\n data[prop] = merge(data[prop], mergeVal, 1);\n}\n\nfunction applyDataToEvent(event, data) {\n const { extra, tags, user, contexts, level, transactionName } = data;\n\n const cleanedExtra = dropUndefinedKeys(extra);\n if (cleanedExtra && Object.keys(cleanedExtra).length) {\n event.extra = { ...cleanedExtra, ...event.extra };\n }\n\n const cleanedTags = dropUndefinedKeys(tags);\n if (cleanedTags && Object.keys(cleanedTags).length) {\n event.tags = { ...cleanedTags, ...event.tags };\n }\n\n const cleanedUser = dropUndefinedKeys(user);\n if (cleanedUser && Object.keys(cleanedUser).length) {\n event.user = { ...cleanedUser, ...event.user };\n }\n\n const cleanedContexts = dropUndefinedKeys(contexts);\n if (cleanedContexts && Object.keys(cleanedContexts).length) {\n event.contexts = { ...cleanedContexts, ...event.contexts };\n }\n\n if (level) {\n event.level = level;\n }\n\n // transaction events get their `transaction` from the root span name\n if (transactionName && event.type !== 'transaction') {\n event.transaction = transactionName;\n }\n}\n\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata,\n };\n}\n\nfunction applySpanToEvent(event, span) {\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts,\n };\n\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata,\n };\n\n const rootSpan = getRootSpan(span);\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName && !event.transaction && event.type === 'transaction') {\n event.transaction = transactionName;\n }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event, fingerprint) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n\nexport { applyScopeDataToEvent, mergeAndOverwriteScopeData, mergeScopeData };\n//# sourceMappingURL=applyScopeDataToEvent.js.map\n","import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getGlobalScope } from '../currentScopes.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { getFilenameToDebugIdMap } from '../utils-hoist/debug-ids.js';\nimport { uuid4, addExceptionMechanism } from '../utils-hoist/misc.js';\nimport { normalize } from '../utils-hoist/normalize.js';\nimport { truncate } from '../utils-hoist/string.js';\nimport { dateTimestampInSeconds } from '../utils-hoist/time.js';\nimport { mergeScopeData, applyScopeDataToEvent } from './applyScopeDataToEvent.js';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\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 * @hidden\n */\nfunction prepareEvent(\n options,\n event,\n hint,\n scope,\n client,\n isolationScope,\n) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = options;\n const prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n if (client) {\n client.emit('applyFrameMetadata', event);\n }\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\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 const finalScope = getFinalScope(scope, hint.captureContext);\n\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n\n const clientEventProcessors = client ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Scope.addEventProcessor} gets the finished prepared event.\n // Merge scope data together\n const data = getGlobalScope().getScopeData();\n\n if (isolationScope) {\n const isolationData = isolationScope.getScopeData();\n mergeScopeData(data, isolationData);\n }\n\n if (finalScope) {\n const finalScopeData = finalScope.getScopeData();\n mergeScopeData(data, finalScopeData);\n }\n\n const attachments = [...(hint.attachments || []), ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n applyScopeDataToEvent(prepared, data);\n\n const eventProcessors = [\n ...clientEventProcessors,\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors,\n ];\n\n const result = notifyEventProcessors(eventProcessors, prepared, hint);\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\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 *\n * Only exported for tests.\n *\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event, options) {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n // empty strings do not make sense for environment, release, and dist\n // so we handle them the same as if they were not provided\n event.environment = event.environment || environment || DEFAULT_ENVIRONMENT;\n\n if (!event.release && release) {\n event.release = release;\n }\n\n if (!event.dist && dist) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nfunction applyDebugIds(event, stackParser) {\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace.frames.forEach(frame => {\n if (filenameDebugIdMap && frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nfunction applyDebugMeta(event) {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap = {};\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace.frames.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id,\n });\n });\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 */\nfunction applyIntegrationsMetadata(event, integrationNames) {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\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 */\nfunction normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\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 && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n return {\n ...span,\n ...(span.data && {\n data: normalize(span.data, depth, maxBreadth),\n }),\n };\n });\n }\n\n // event.contexts.flags (FeatureFlagContext) stores context for our feature\n // flag integrations. It has a greater nesting depth than our other typed\n // Contexts, so we re-normalize with a fixed depth of 3 here. We do not want\n // to skip this in case of conflicting, user-provided context.\n if (event.contexts && event.contexts.flags && normalized.contexts) {\n normalized.contexts.flags = normalize(event.contexts.flags, 3, maxBreadth);\n }\n\n return normalized;\n}\n\nfunction getFinalScope(\n scope,\n captureContext,\n) {\n if (!captureContext) {\n return scope;\n }\n\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nfunction parseEventHintOrCaptureContext(\n hint,\n) {\n if (!hint) {\n return undefined;\n }\n\n // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint,\n };\n }\n\n return hint;\n}\n\nfunction hintIsScopeOrFunction(\n hint,\n) {\n return hint instanceof Scope || typeof hint === 'function';\n}\n\nconst captureContextKeys = [\n 'user',\n 'level',\n 'extra',\n 'contexts',\n 'tags',\n 'fingerprint',\n 'requestSession',\n 'propagationContext',\n] ;\n\nfunction hintIsScopeContext(hint) {\n return Object.keys(hint).some(key => captureContextKeys.includes(key ));\n}\n\nexport { applyClientOptions, applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n","import { addNonEnumerableProperty } from '../utils-hoist/object.js';\n\nconst SCOPE_SPAN_FIELD = '_sentrySpan';\n\n/**\n * Set the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _setSpanForScope(scope, span) {\n if (span) {\n addNonEnumerableProperty(scope , SCOPE_SPAN_FIELD, span);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete (scope )[SCOPE_SPAN_FIELD];\n }\n}\n\n/**\n * Get the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _getSpanForScope(scope) {\n return scope[SCOPE_SPAN_FIELD];\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n//# sourceMappingURL=spanOnScope.js.map\n","import { dropUndefinedKeys } from '../utils-hoist/object.js';\n\n/**\n * key: bucketKey\n * value: [exportKey, MetricSummary]\n */\n\nconst METRICS_SPAN_FIELD = '_sentryMetrics';\n\n/**\n * Fetches the metric summary if it exists for the passed span\n */\nfunction getMetricSummaryJsonForSpan(span) {\n const storage = (span )[METRICS_SPAN_FIELD];\n\n if (!storage) {\n return undefined;\n }\n const output = {};\n\n for (const [, [exportKey, summary]] of storage) {\n const arr = output[exportKey] || (output[exportKey] = []);\n arr.push(dropUndefinedKeys(summary));\n }\n\n return output;\n}\n\n/**\n * Updates the metric summary on a span.\n */\nfunction updateMetricSummaryOnSpan(\n span,\n metricType,\n sanitizedName,\n value,\n unit,\n tags,\n bucketKey,\n) {\n const existingStorage = (span )[METRICS_SPAN_FIELD];\n const storage =\n existingStorage ||\n ((span )[METRICS_SPAN_FIELD] = new Map());\n\n const exportKey = `${metricType}:${sanitizedName}@${unit}`;\n const bucketItem = storage.get(bucketKey);\n\n if (bucketItem) {\n const [, summary] = bucketItem;\n storage.set(bucketKey, [\n exportKey,\n {\n min: Math.min(summary.min, value),\n max: Math.max(summary.max, value),\n count: (summary.count += 1),\n sum: (summary.sum += value),\n tags: summary.tags,\n },\n ]);\n } else {\n storage.set(bucketKey, [\n exportKey,\n {\n min: value,\n max: value,\n count: 1,\n sum: value,\n tags,\n },\n ]);\n }\n}\n\nexport { getMetricSummaryJsonForSpan, updateMetricSummaryOnSpan };\n//# sourceMappingURL=metric-summary.js.map\n","const SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\n\n/**\n * Converts a HTTP status code into a sentry status with a message.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\n// https://develop.sentry.dev/sdk/event-payloads/span/\nfunction getSpanStatusFromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return { code: SPAN_STATUS_OK };\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return { code: SPAN_STATUS_ERROR, message: 'unauthenticated' };\n case 403:\n return { code: SPAN_STATUS_ERROR, message: 'permission_denied' };\n case 404:\n return { code: SPAN_STATUS_ERROR, message: 'not_found' };\n case 409:\n return { code: SPAN_STATUS_ERROR, message: 'already_exists' };\n case 413:\n return { code: SPAN_STATUS_ERROR, message: 'failed_precondition' };\n case 429:\n return { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' };\n case 499:\n return { code: SPAN_STATUS_ERROR, message: 'cancelled' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'invalid_argument' };\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return { code: SPAN_STATUS_ERROR, message: 'unimplemented' };\n case 503:\n return { code: SPAN_STATUS_ERROR, message: 'unavailable' };\n case 504:\n return { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n }\n }\n\n return { code: SPAN_STATUS_ERROR, message: 'unknown_error' };\n}\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nfunction setHttpStatus(span, httpStatus) {\n span.setAttribute('http.response.status_code', httpStatus);\n\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus.message !== 'unknown_error') {\n span.setStatus(spanStatus);\n }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, setHttpStatus };\n//# sourceMappingURL=spanstatus.js.map\n","import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { getMetricSummaryJsonForSpan, updateMetricSummaryOnSpan } from '../metrics/metric-summary.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK } from '../tracing/spanstatus.js';\nimport { consoleSandbox } from '../utils-hoist/logger.js';\nimport { dropUndefinedKeys, addNonEnumerableProperty } from '../utils-hoist/object.js';\nimport { generateSpanId } from '../utils-hoist/propagationContext.js';\nimport { timestampInSeconds } from '../utils-hoist/time.js';\nimport { generateSentryTraceHeader } from '../utils-hoist/tracing.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\n// These are aligned with OpenTelemetry trace flags\nconst TRACE_FLAG_NONE = 0x0;\nconst TRACE_FLAG_SAMPLED = 0x1;\n\n// todo(v9): Remove this once we've stopped dropping spans via `beforeSendSpan`\nlet hasShownSpanDropWarning = false;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nfunction spanToTransactionTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, origin } = spanToJSON(span);\n\n return dropUndefinedKeys({\n parent_span_id,\n span_id,\n trace_id,\n data,\n op,\n status,\n origin,\n });\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nfunction spanToTraceContext(span) {\n const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n\n // If the span is remote, we use a random/virtual span as span_id to the trace context,\n // and the remote span as parent_span_id\n const parent_span_id = isRemote ? spanId : spanToJSON(span).parent_span_id;\n const span_id = isRemote ? generateSpanId() : spanId;\n\n return dropUndefinedKeys({\n parent_span_id,\n span_id,\n trace_id,\n });\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nfunction spanToTraceHeader(span) {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nfunction spanTimeInputToSeconds(input) {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nfunction spanToJSON(span) {\n if (spanIsSentrySpan(span)) {\n return span.getSpanJSON();\n }\n\n try {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, parentSpanId, status } = span;\n\n return dropUndefinedKeys({\n span_id,\n trace_id,\n data: attributes,\n description: name,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status),\n op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n _metrics_summary: getMetricSummaryJsonForSpan(span),\n });\n }\n\n // Finally, at least we have `spanContext()`....\n return {\n span_id,\n trace_id,\n };\n } catch (e) {\n return {};\n }\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n const castSpan = span ;\n return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span) {\n return typeof (span ).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nfunction spanIsSampled(span) {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nfunction getStatusMessage(status) {\n if (!status || status.code === SPAN_STATUS_UNSET) {\n return undefined;\n }\n\n if (status.code === SPAN_STATUS_OK) {\n return 'ok';\n }\n\n return status.message || 'unknown_error';\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\n/**\n * Adds an opaque child span reference to a span.\n */\nfunction addChildSpanToSpan(span, childSpan) {\n // We store the root span reference on the child span\n // We need this for `getRootSpan()` to work\n const rootSpan = span[ROOT_SPAN_FIELD] || span;\n addNonEnumerableProperty(childSpan , ROOT_SPAN_FIELD, rootSpan);\n\n // We store a list of child spans on the parent span\n // We need this for `getSpanDescendants()` to work\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].add(childSpan);\n } else {\n addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n }\n}\n\n/** This is only used internally by Idle Spans. */\nfunction removeChildSpanFromSpan(span, childSpan) {\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].delete(childSpan);\n }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nfunction getSpanDescendants(span) {\n const resultSet = new Set();\n\n function addSpanChildren(span) {\n // This exit condition is required to not infinitely loop in case of a circular dependency.\n if (resultSet.has(span)) {\n return;\n // We want to ignore unsampled spans (e.g. non recording spans)\n } else if (spanIsSampled(span)) {\n resultSet.add(span);\n const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n for (const childSpan of childSpans) {\n addSpanChildren(childSpan);\n }\n }\n }\n\n addSpanChildren(span);\n\n return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nfunction getRootSpan(span) {\n return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nfunction getActiveSpan() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getActiveSpan) {\n return acs.getActiveSpan();\n }\n\n return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Updates the metric summary on the currently active span\n */\nfunction updateMetricSummaryOnActiveSpan(\n metricType,\n sanitizedName,\n value,\n unit,\n tags,\n bucketKey,\n) {\n const span = getActiveSpan();\n if (span) {\n updateMetricSummaryOnSpan(span, metricType, sanitizedName, value, unit, tags, bucketKey);\n }\n}\n\n/**\n * Logs a warning once if `beforeSendSpan` is used to drop spans.\n *\n * todo(v9): Remove this once we've stopped dropping spans via `beforeSendSpan`.\n */\nfunction showSpanDropWarning() {\n if (!hasShownSpanDropWarning) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Deprecation warning: Returning null from `beforeSendSpan` will be disallowed from SDK version 9.0.0 onwards. The callback will only support mutating spans. To drop certain spans, configure the respective integrations directly.',\n );\n });\n hasShownSpanDropWarning = true;\n }\n}\n\n/**\n * Updates the name of the given span and ensures that the span name is not\n * overwritten by the Sentry SDK.\n *\n * Use this function instead of `span.updateName()` if you want to make sure that\n * your name is kept. For some spans, for example root `http.server` spans the\n * Sentry SDK would otherwise overwrite the span name with a high-quality name\n * it infers when the span ends.\n *\n * Use this function in server code or when your span is started on the server\n * and on the client (browser). If you only update a span name on the client,\n * you can also use `span.updateName()` the SDK does not overwrite the name.\n *\n * @param span - The span to update the name of.\n * @param name - The name to set on the span.\n */\nfunction updateSpanName(span, name) {\n span.updateName(name);\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name,\n });\n}\n\nexport { TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, getActiveSpan, getRootSpan, getSpanDescendants, getStatusMessage, removeChildSpanFromSpan, showSpanDropWarning, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToTraceContext, spanToTraceHeader, spanToTransactionTraceContext, updateMetricSummaryOnActiveSpan, updateSpanName };\n//# sourceMappingURL=spanUtils.js.map\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.9\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n"],"names":["AsyncContextStack","constructor","scope","isolationScope","assignedScope","assignedIsolationScope","this","_stack","_isolationScope","withScope","callback","_pushScope","maybePromiseResult","e","_popScope","is","then","res","getClient","getStackTop","client","getScope","getIsolationScope","length","clone","push","pop","getAsyncContextStack","registry","sentry","stack","withSetScope","withIsolationScope","getAsyncContextStrategy","carrier","acs","withSetIsolationScope","getCurrentScope","DEFAULT_BREADCRUMBS","addBreadcrumb","breadcrumb","hint","beforeBreadcrumb","maxBreadcrumbs","getOptions","mergedBreadcrumb","timestamp","finalBreadcrumb","emit","getMainCarrier","getSentryCarrier","__SENTRY__","version","DEFAULT_ENVIRONMENT","getGlobalScope","rest","getTraceContextFromScope","propagationContext","getPropagationContext","traceId","spanId","parentSpanId","trace_id","span_id","parent_span_id","DEBUG_BUILD","__SENTRY_DEBUG__","captureException","exception","captureMessage","message","captureContext","level","undefined","context","captureEvent","event","setContext","name","setTag","key","value","setUser","user","lastEventId","addEventProcessor","startSession","currentScope","release","environment","userAgent","navigator","session","getUser","currentSession","getSession","status","endSession","setSession","_sendSessionUpdate","captureSession","end","ScopeClass","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_attachments","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","_propagationContext","newScope","flags","values","_level","_session","_transactionName","_fingerprint","_requestSession","_client","_lastEventId","setClient","setLastEventId","addScopeListener","email","id","ip_address","username","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setTags","tags","setExtras","extras","setExtra","extra","setFingerprint","fingerprint","setLevel","setTransactionName","update","scopeToMerge","scopeInstance","Scope","getScopeData","contexts","Object","keys","clear","setPropagationContext","maxCrumbs","slice","recordDroppedEvent","getLastBreadcrumb","clearBreadcrumbs","addAttachment","attachment","clearAttachments","breadcrumbs","attachments","eventProcessors","sdkProcessingMetadata","transactionName","span","setSDKProcessingMetadata","newData","eventId","event_id","warn","syntheticException","Error","originalException","forEach","SEMANTIC_ATTRIBUTE_SENTRY_SOURCE","SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","makeSession","startingTime","sid","init","started","duration","errors","ignoreDuration","toJSON","Date","toISOString","did","abnormal_mechanism","attrs","ipAddress","user_agent","sessionToJSON","updateSession","closeSession","SENTRY_BAGGAGE_KEY_PREFIX","SENTRY_BAGGAGE_KEY_PREFIX_REGEX","baggageHeaderToDynamicSamplingContext","baggageHeader","baggageObject","Array","isArray","reduce","acc","curr","currBaggageObject","baggageHeaderToObject","entries","parseBaggageHeader","dynamicSamplingContext","match","split","map","baggageEntry","keyOrValue","decodeURIComponent","trim","FROZEN_DSC_FIELD","getDynamicSamplingContextFromClient","options","publicKey","public_key","getDsn","dsc","getDynamicSamplingContextFromScope","getDynamicSamplingContextFromSpan","rootSpan","frozenDsc","traceState","spanContext","traceStateDsc","get","dscOnTraceState","jsonSpan","attributes","data","maybeSampleRate","sample_rate","source","description","transaction","maybeOptions","__SENTRY_TRACING__","enableTracing","hasTracingEnabled","sampled","String","WINDOW","DEFAULT_MAX_STRING_LENGTH","htmlTreeAsString","elem","currentElem","MAX_TRAVERSE_HEIGHT","out","height","len","separator","sepLength","nextStr","keyAttrs","maxStringLength","_htmlElementAsString","parentNode","reverse","join","_oO","el","tagName","HTMLElement","dataset","toLowerCase","keyAttrPairs","filter","keyAttr","getAttribute","keyAttrPair","className","classes","c","allowedAttrs","k","attr","getLocationHref","document","location","href","oO","getComponentName","i","objectToString","prototype","toString","isError","wat","call","isInstanceOf","isBuiltin","isErrorEvent","isDOMError","isDOMException","isString","isParameterizedString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","Boolean","isSyntheticEvent","base","_e","isVueViewModel","__isVue","_isVue","CONSOLE_LEVELS","originalConsoleMethods","consoleSandbox","console","wrappedFuncs","wrappedLevels","originalConsoleMethod","logger","enabled","enable","disable","isEnabled","args","uuid4","gbl","crypto","msCrypto","getRandomByte","Math","random","randomUUID","replace","getRandomValues","typedArray","Uint8Array","_","getFirstException","getEventDescription","firstException","type","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mechanism","handled","mergedData","checkOrSetAlreadyCaught","__sentry_captured__","isAlreadyCaptured","err","normalize","input","depth","maxProperties","Infinity","visit","ERROR","normalizeToSize","object","maxSize","normalized","encodeURI","utf8Length","JSON","stringify","memo","hasWeakSet","WeakSet","inner","obj","has","add","delete","splice","memoBuilder","memoize","unmemoize","includes","Number","isFinite","stringified","_events","global","window","objName","getPrototypeOf","getConstructorName","test","stringifyValue","startsWith","remainingDepth","valueWithToJSON","numAdded","visitable","visitKey","hasOwnProperty","visitValue","fill","replacementFactory","original","wrapped","markFunctionWrapped","log","addNonEnumerableProperty","defineProperty","writable","configurable","o_O","proto","getOriginalFunction","func","__sentry_original__","convertToPlainObject","getOwnProperties","newObj","target","serializeEventTarget","currentTarget","CustomEvent","detail","extractedProps","property","extractExceptionKeysForMessage","maxLength","sort","firstKey","includedKeys","serialized","dropUndefinedKeys","inputValue","_dropUndefinedKeys","Map","memoizationMap","e2","isPojo","memoVal","returnValue","set","getOwnPropertyNames","item","generateTraceId","generateSpanId","substring","STACKTRACE_FRAME_LIMIT","UNKNOWN_FUNCTION","WEBPACK_ERROR_REGEXP","STRIP_FRAME_REGEXP","createStackParser","parsers","sortedParsers","a","b","p","skipFirstLines","framesToPop","frames","lines","line","cleanedLine","parser","frame","localStack","from","getLastStackFrame","function","filename","stripSentryFramesAndReverse","stackParserFromStackParserOptions","stackParser","arr","defaultFunctionName","getFunctionName","fn","getFramesFromEvent","stacktrace","truncate","str","max","safeJoin","delimiter","output","stringMatchesSomePattern","testString","patterns","requireExactStringMatch","some","pattern","isMatchingPattern","States","resolvedSyncPromise","SyncPromise","resolve","rejectedSyncPromise","reason","reject","executor","__init","__init2","__init3","__init4","_state","PENDING","_handlers","_resolve","_reject","onfulfilled","onrejected","result","_executeHandlers","val","onfinally","isRejected","_setResult","RESOLVED","REJECTED","state","_value","cachedHandlers","handler","ONE_SECOND_IN_MS","dateTimestampInSeconds","now","timestampInSeconds","performance","approxStartingTimeOrigin","timeOrigin","createUnixTimestampInSecondsFunc","_browserPerformanceTimeOriginMode","browserPerformanceTimeOrigin","threshold","performanceNow","dateNow","timeOriginDelta","abs","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","SDK_VERSION","GLOBAL_OBJ","globalThis","getGlobalSingleton","creator","versionedCarrier","merge","initialObj","mergeObj","levels","notifyEventProcessors","processors","index","processor","final","parsedStackResults","lastKeysCount","cachedFilenameDebugIds","getFilenameToDebugIdMap","debugIdMap","_sentryDebugIds","debugIdKeys","stackKey","parsedStack","stackFrame","debugId","applyScopeDataToEvent","cleanedExtra","cleanedTags","cleanedUser","cleanedContexts","applyDataToEvent","trace","applySpanToEvent","concat","applyFingerprintToEvent","mergedBreadcrumbs","applyBreadcrumbsToEvent","applySdkMetadataToEvent","mergeScopeData","mergeData","mergeAndOverwriteScopeData","prop","mergeVal","prepareEvent","normalizeDepth","normalizeMaxBreadth","prepared","integrations","dist","maxValueLength","request","url","applyClientOptions","integrationNames","sdk","applyIntegrationsMetadata","filenameDebugIdMap","debug_id","applyDebugIds","finalScope","getFinalScope","clientEventProcessors","getEventProcessors","evt","abs_path","debug_meta","images","code_file","applyDebugMeta","maxBreadth","spans","normalizeEvent","parseEventHintOrCaptureContext","hintIsScopeOrFunction","captureContextKeys","hintIsScopeContext","SCOPE_SPAN_FIELD","_setSpanForScope","_getSpanForScope","METRICS_SPAN_FIELD","getMetricSummaryJsonForSpan","storage","exportKey","summary","SPAN_STATUS_UNSET","SPAN_STATUS_OK","TRACE_FLAG_SAMPLED","hasShownSpanDropWarning","spanToTraceContext","isRemote","spanToJSON","spanTimeInputToSeconds","ensureTimestampInSeconds","getTime","time","getSpanJSON","spanIsSentrySpan","castSpan","startTime","endTime","spanIsOpenTelemetrySdkTraceBaseSpan","start_timestamp","getStatusMessage","op","origin","_metrics_summary","spanIsSampled","traceFlags","code","ROOT_SPAN_FIELD","getRootSpan","getActiveSpan","showSpanDropWarning","bind","thisArg","apply","arguments","kindOf","cache","create","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isFunction","isNumber","isObject","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","l","findKey","_key","_global","self","isContextDefined","isTypedArray","TypedArray","isHTMLForm","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","ret","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","toUpperCase","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","callbacks","addEventListener","shift","cb","setTimeout","asap","queueMicrotask","process","nextTick","isBuffer","isFormData","kind","FormData","append","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","caseless","assignValue","targetKey","extend","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","position","lastIndex","indexOf","toArray","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","enumerable","toObjectSet","arrayOrString","define","toCamelCase","m","p1","p2","noop","toFiniteNumber","defaultValue","generateString","size","alphabet","isSpecCompliantForm","toJSONObject","reducedValue","catch","AxiosError","config","response","captureStackTrace","utils","number","fileName","lineNumber","columnNumber","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","predicates","formData","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","Buffer","isFlatArray","exposedHelpers","build","encode","charMap","encodeURIComponent","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","serialize","serializeFn","serializedParams","hashmarkIndex","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","platform","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","parseHeaders","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","format","w","char","formatHeader","targets","asStrings","first","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","floor","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","round","freq","lastArgs","timer","invoke","clearTimeout","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","isMSIE","URL","protocol","host","port","write","expires","domain","secure","cookie","toGMTString","read","RegExp","remove","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","btoa","password","unescape","isURLSameOrigin","xsrfValue","cookies","XMLHttpRequest","Promise","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","subscribe","aborted","parseProtocol","send","signals","controller","AbortController","streamChunk","chunk","chunkSize","byteLength","pos","readStream","async","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","body","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","knownAdapters","http","xhr","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","flush","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","formatMessage","opt","desc","opts","ERR_DEPRECATED","spelling","correctSpelling","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","dummy","boolean","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","resolvePromise","_listeners","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","instance","toFormData","Cancel","all","promises","spread","isAxiosError","payload","formToJSON","getAdapter","default"],"sourceRoot":""}