{"version":3,"file":"js/chunk-vendors-8cbd2506.3f5967c2.js","mappings":"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","sources":["webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/backgroundtab.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/browserTracingIntegration.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/bindReporter.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/generateUniqueID.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/getActivationStart.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/initMetric.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/observe.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/getCLS.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/getFID.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/polyfills/interactionCountPolyfill.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/getINP.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/getLCP.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/onTTFB.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/instrument.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/metrics/utils.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/metrics/index.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/common/fetch.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/request.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/types.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/getNavigationEntry.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/getVisibilityWatcher.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/web-vitals/lib/onHidden.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/common/debug-build.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/client.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/debug-build.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/eventbuilder.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/helpers.js","webpack://dicom-frontend/./node_modules/@sentry-internal/replay-canvas/esm/index.js","webpack://dicom-frontend/./node_modules/@sentry-internal/feedback/esm/index.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/router.js","webpack://dicom-frontend/./node_modules/@sentry-internal/tracing/esm/browser/browsertracing.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/transports/offline.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/profiling/utils.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/profiling/hubextensions.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/profiling/integration.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/index.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/integrations/dedupe.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/integrations/httpcontext.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/sdk.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/stack-parsers.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/transports/utils.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/transports/fetch.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/transports/xhr.js","webpack://dicom-frontend/./node_modules/@sentry/browser/esm/userfeedback.js","webpack://dicom-frontend/./node_modules/raf/index.js","webpack://dicom-frontend/./node_modules/requires-port/index.js","webpack://dicom-frontend/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js"],"sourcesContent":["import { getActiveTransaction, spanToJSON } from '@sentry/core';\nimport { logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../common/debug-build.js';\nimport { WINDOW } from './types.js';\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nfunction registerBackgroundTabDetection() {\n if (WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n // eslint-disable-next-line deprecation/deprecation\n const activeTransaction = getActiveTransaction() ;\n if (WINDOW.document.hidden && activeTransaction) {\n const statusType = 'cancelled';\n\n const { op, status } = spanToJSON(activeTransaction);\n\n DEBUG_BUILD &&\n logger.log(`[Tracing] Transaction: ${statusType} -> since tab moved to the background, op: ${op}`);\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!status) {\n activeTransaction.setStatus(statusType);\n }\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.end();\n }\n });\n } else {\n DEBUG_BUILD && logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n\nexport { registerBackgroundTabDetection };\n//# sourceMappingURL=backgroundtab.js.map\n","import { TRACING_DEFAULTS, addTracingExtensions, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, getActiveSpan, getCurrentHub, startIdleTransaction, getActiveTransaction, getClient, getCurrentScope } from '@sentry/core';\nimport { logger, browserPerformanceTimeOrigin, addHistoryInstrumentationHandler, propagationContextFromHeaders, getDomElement } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../common/debug-build.js';\nimport { registerBackgroundTabDetection } from './backgroundtab.js';\nimport { addPerformanceInstrumentationHandler } from './instrument.js';\nimport { startTrackingWebVitals, startTrackingINP, startTrackingLongTasks, startTrackingInteractions, addPerformanceEntries } from './metrics/index.js';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request.js';\nimport { WINDOW } from './types.js';\n\nconst BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\n/** Options for Browser Tracing integration */\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS = {\n ...TRACING_DEFAULTS,\n instrumentNavigation: true,\n instrumentPageLoad: true,\n markBackgroundSpan: true,\n enableLongTask: true,\n enableInp: false,\n interactionsSampleRate: 1,\n _experiments: {},\n ...defaultRequestInstrumentationOptions,\n};\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n *\n * We explicitly export the proper type here, as this has to be extended in some cases.\n */\nconst browserTracingIntegration = ((_options = {}) => {\n const _hasSetTracePropagationTargets = DEBUG_BUILD\n ? !!(\n // eslint-disable-next-line deprecation/deprecation\n (_options.tracePropagationTargets || _options.tracingOrigins)\n )\n : false;\n\n addTracingExtensions();\n\n // TODO (v8): remove this block after tracingOrigins is removed\n // Set tracePropagationTargets to tracingOrigins if specified by the user\n // In case both are specified, tracePropagationTargets takes precedence\n // eslint-disable-next-line deprecation/deprecation\n if (!_options.tracePropagationTargets && _options.tracingOrigins) {\n // eslint-disable-next-line deprecation/deprecation\n _options.tracePropagationTargets = _options.tracingOrigins;\n }\n\n const options = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n };\n\n const _collectWebVitals = startTrackingWebVitals();\n\n /** Stores a mapping of interactionIds from PerformanceEventTimings to the origin interaction path */\n const interactionIdToRouteNameMapping = {};\n if (options.enableInp) {\n startTrackingINP(interactionIdToRouteNameMapping, options.interactionsSampleRate);\n }\n\n if (options.enableLongTask) {\n startTrackingLongTasks();\n }\n if (options._experiments.enableInteractions) {\n startTrackingInteractions();\n }\n\n const latestRoute\n\n = {\n name: undefined,\n context: undefined,\n };\n\n /** Create routing idle transaction. */\n function _createRouteTransaction(context) {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n\n const { beforeStartSpan, idleTimeout, finalTimeout, heartbeatInterval } = options;\n\n const isPageloadTransaction = context.op === 'pageload';\n\n let expandedContext;\n if (isPageloadTransaction) {\n const sentryTrace = isPageloadTransaction ? getMetaContent('sentry-trace') : '';\n const baggage = isPageloadTransaction ? getMetaContent('baggage') : undefined;\n const { traceId, dsc, parentSpanId, sampled } = propagationContextFromHeaders(sentryTrace, baggage);\n expandedContext = {\n traceId,\n parentSpanId,\n parentSampled: sampled,\n ...context,\n metadata: {\n // eslint-disable-next-line deprecation/deprecation\n ...context.metadata,\n dynamicSamplingContext: dsc,\n },\n trimEnd: true,\n };\n } else {\n expandedContext = {\n trimEnd: true,\n ...context,\n };\n }\n\n const finalContext = beforeStartSpan ? beforeStartSpan(expandedContext) : expandedContext;\n\n // If `beforeStartSpan` set a custom name, record that fact\n // eslint-disable-next-line deprecation/deprecation\n finalContext.metadata =\n finalContext.name !== expandedContext.name\n ? // eslint-disable-next-line deprecation/deprecation\n { ...finalContext.metadata, source: 'custom' }\n : // eslint-disable-next-line deprecation/deprecation\n finalContext.metadata;\n\n latestRoute.name = finalContext.name;\n latestRoute.context = finalContext;\n\n if (finalContext.sampled === false) {\n DEBUG_BUILD && logger.log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);\n }\n\n DEBUG_BUILD && logger.log(`[Tracing] Starting ${finalContext.op} transaction on scope`);\n\n const { location } = WINDOW;\n\n const idleTransaction = startIdleTransaction(\n hub,\n finalContext,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n isPageloadTransaction, // should wait for finish signal if it's a pageload transaction\n );\n\n if (isPageloadTransaction && WINDOW.document) {\n WINDOW.document.addEventListener('readystatechange', () => {\n if (['interactive', 'complete'].includes(WINDOW.document.readyState)) {\n idleTransaction.sendAutoFinishSignal();\n }\n });\n\n if (['interactive', 'complete'].includes(WINDOW.document.readyState)) {\n idleTransaction.sendAutoFinishSignal();\n }\n }\n\n idleTransaction.registerBeforeFinishCallback(transaction => {\n _collectWebVitals();\n addPerformanceEntries(transaction);\n });\n\n return idleTransaction ;\n }\n\n return {\n name: BROWSER_TRACING_INTEGRATION_ID,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setupOnce: () => {},\n afterAllSetup(client) {\n const clientOptions = client.getOptions();\n\n const { markBackgroundSpan, traceFetch, traceXHR, shouldCreateSpanForRequest, enableHTTPTimings, _experiments } =\n options;\n\n const clientOptionsTracePropagationTargets = clientOptions && clientOptions.tracePropagationTargets;\n // There are three ways to configure tracePropagationTargets:\n // 1. via top level client option `tracePropagationTargets`\n // 2. via BrowserTracing option `tracePropagationTargets`\n // 3. via BrowserTracing option `tracingOrigins` (deprecated)\n //\n // To avoid confusion, favour top level client option `tracePropagationTargets`, and fallback to\n // BrowserTracing option `tracePropagationTargets` and then `tracingOrigins` (deprecated).\n // This is done as it minimizes bundle size (we don't have to have undefined checks).\n //\n // If both 1 and either one of 2 or 3 are set (from above), we log out a warning.\n // eslint-disable-next-line deprecation/deprecation\n const tracePropagationTargets = clientOptionsTracePropagationTargets || options.tracePropagationTargets;\n if (DEBUG_BUILD && _hasSetTracePropagationTargets && clientOptionsTracePropagationTargets) {\n logger.warn(\n '[Tracing] The `tracePropagationTargets` option was set in the BrowserTracing integration and top level `Sentry.init`. The top level `Sentry.init` value is being used.',\n );\n }\n\n let activeSpan;\n let startingUrl = WINDOW.location && WINDOW.location.href;\n\n if (client.on) {\n client.on('startNavigationSpan', (context) => {\n if (activeSpan) {\n DEBUG_BUILD && logger.log(`[Tracing] Finishing current transaction with op: ${spanToJSON(activeSpan).op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeSpan.end();\n }\n activeSpan = _createRouteTransaction({\n op: 'navigation',\n ...context,\n });\n });\n\n client.on('startPageLoadSpan', (context) => {\n if (activeSpan) {\n DEBUG_BUILD && logger.log(`[Tracing] Finishing current transaction with op: ${spanToJSON(activeSpan).op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeSpan.end();\n }\n activeSpan = _createRouteTransaction({\n op: 'pageload',\n ...context,\n });\n });\n }\n\n if (options.instrumentPageLoad && client.emit && WINDOW.location) {\n const context = {\n name: WINDOW.location.pathname,\n // pageload should always start at timeOrigin (and needs to be in s, not ms)\n startTimestamp: browserPerformanceTimeOrigin ? browserPerformanceTimeOrigin / 1000 : undefined,\n origin: 'auto.pageload.browser',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n },\n };\n startBrowserTracingPageLoadSpan(client, context);\n }\n\n if (options.instrumentNavigation && client.emit && WINDOW.location) {\n addHistoryInstrumentationHandler(({ to, from }) => {\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n const context = {\n name: WINDOW.location.pathname,\n origin: 'auto.navigation.browser',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n },\n };\n\n startBrowserTracingNavigationSpan(client, context);\n }\n });\n }\n\n if (markBackgroundSpan) {\n registerBackgroundTabDetection();\n }\n\n if (_experiments.enableInteractions) {\n registerInteractionListener(options, latestRoute);\n }\n\n if (options.enableInp) {\n registerInpInteractionListener(interactionIdToRouteNameMapping, latestRoute);\n }\n\n instrumentOutgoingRequests({\n traceFetch,\n traceXHR,\n tracePropagationTargets,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n });\n },\n // TODO v8: Remove this again\n // This is private API that we use to fix converted BrowserTracing integrations in Next.js & SvelteKit\n options,\n };\n}) ;\n\n/**\n * Manually start a page load span.\n * This will only do something if the BrowserTracing integration has been setup.\n */\nfunction startBrowserTracingPageLoadSpan(client, spanOptions) {\n if (!client.emit) {\n return;\n }\n\n client.emit('startPageLoadSpan', spanOptions);\n\n const span = getActiveSpan();\n const op = span && spanToJSON(span).op;\n return op === 'pageload' ? span : undefined;\n}\n\n/**\n * Manually start a navigation span.\n * This will only do something if the BrowserTracing integration has been setup.\n */\nfunction startBrowserTracingNavigationSpan(client, spanOptions) {\n if (!client.emit) {\n return;\n }\n\n client.emit('startNavigationSpan', spanOptions);\n\n const span = getActiveSpan();\n const op = span && spanToJSON(span).op;\n return op === 'navigation' ? span : undefined;\n}\n\n/** Returns the value of a meta tag */\nfunction getMetaContent(metaName) {\n // Can't specify generic to `getDomElement` because tracing can be used\n // in a variety of environments, have to disable `no-unsafe-member-access`\n // as a result.\n const metaTag = getDomElement(`meta[name=${metaName}]`);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return metaTag ? metaTag.getAttribute('content') : undefined;\n}\n\n/** Start listener for interaction transactions */\nfunction registerInteractionListener(\n options,\n latestRoute\n\n,\n) {\n let inflightInteractionTransaction;\n const registerInteractionTransaction = () => {\n const { idleTimeout, finalTimeout, heartbeatInterval } = options;\n const op = 'ui.action.click';\n\n // eslint-disable-next-line deprecation/deprecation\n const currentTransaction = getActiveTransaction();\n if (currentTransaction && currentTransaction.op && ['navigation', 'pageload'].includes(currentTransaction.op)) {\n DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Did not create ${op} transaction because a pageload or navigation transaction is in progress.`,\n );\n return undefined;\n }\n\n if (inflightInteractionTransaction) {\n inflightInteractionTransaction.setFinishReason('interactionInterrupted');\n inflightInteractionTransaction.end();\n inflightInteractionTransaction = undefined;\n }\n\n if (!latestRoute.name) {\n DEBUG_BUILD && logger.warn(`[Tracing] Did not create ${op} transaction because _latestRouteName is missing.`);\n return undefined;\n }\n\n const { location } = WINDOW;\n\n const context = {\n name: latestRoute.name,\n op,\n trimEnd: true,\n data: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: latestRoute.context ? getSource(latestRoute.context) : 'url',\n },\n };\n\n inflightInteractionTransaction = startIdleTransaction(\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub(),\n context,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n heartbeatInterval,\n );\n };\n\n ['click'].forEach(type => {\n if (WINDOW.document) {\n addEventListener(type, registerInteractionTransaction, { once: false, capture: true });\n }\n });\n}\n\nfunction isPerformanceEventTiming(entry) {\n return 'duration' in entry;\n}\n\n/** We store up to 10 interaction candidates max to cap memory usage. This is the same cap as getINP from web-vitals */\nconst MAX_INTERACTIONS = 10;\n\n/** Creates a listener on interaction entries, and maps interactionIds to the origin path of the interaction */\nfunction registerInpInteractionListener(\n interactionIdToRouteNameMapping,\n latestRoute\n\n,\n) {\n const handleEntries = ({ entries }) => {\n const client = getClient();\n // We need to get the replay, user, and activeTransaction from the current scope\n // so that we can associate replay id, profile id, and a user display to the span\n const replay =\n client !== undefined && client.getIntegrationByName !== undefined\n ? (client.getIntegrationByName('Replay') )\n : undefined;\n const replayId = replay !== undefined ? replay.getReplayId() : undefined;\n // eslint-disable-next-line deprecation/deprecation\n const activeTransaction = getActiveTransaction();\n const currentScope = getCurrentScope();\n const user = currentScope !== undefined ? currentScope.getUser() : undefined;\n entries.forEach(entry => {\n if (isPerformanceEventTiming(entry)) {\n const interactionId = entry.interactionId;\n if (interactionId === undefined) {\n return;\n }\n const existingInteraction = interactionIdToRouteNameMapping[interactionId];\n const duration = entry.duration;\n const startTime = entry.startTime;\n const keys = Object.keys(interactionIdToRouteNameMapping);\n const minInteractionId =\n keys.length > 0\n ? keys.reduce((a, b) => {\n return interactionIdToRouteNameMapping[a].duration < interactionIdToRouteNameMapping[b].duration\n ? a\n : b;\n })\n : undefined;\n // For a first input event to be considered, we must check that an interaction event does not already exist with the same duration and start time.\n // This is also checked in the web-vitals library.\n if (entry.entryType === 'first-input') {\n const matchingEntry = keys\n .map(key => interactionIdToRouteNameMapping[key])\n .some(interaction => {\n return interaction.duration === duration && interaction.startTime === startTime;\n });\n if (matchingEntry) {\n return;\n }\n }\n // Interactions with an id of 0 and are not first-input are not valid.\n if (!interactionId) {\n return;\n }\n // If the interaction already exists, we want to use the duration of the longest entry, since that is what the INP metric uses.\n if (existingInteraction) {\n existingInteraction.duration = Math.max(existingInteraction.duration, duration);\n } else if (\n keys.length < MAX_INTERACTIONS ||\n minInteractionId === undefined ||\n duration > interactionIdToRouteNameMapping[minInteractionId].duration\n ) {\n // If the interaction does not exist, we want to add it to the mapping if there is space, or if the duration is longer than the shortest entry.\n const routeName = latestRoute.name;\n const parentContext = latestRoute.context;\n if (routeName && parentContext) {\n if (minInteractionId && Object.keys(interactionIdToRouteNameMapping).length >= MAX_INTERACTIONS) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete interactionIdToRouteNameMapping[minInteractionId];\n }\n interactionIdToRouteNameMapping[interactionId] = {\n routeName,\n duration,\n parentContext,\n user,\n activeTransaction,\n replayId,\n startTime,\n };\n }\n }\n }\n });\n };\n addPerformanceInstrumentationHandler('event', handleEntries);\n addPerformanceInstrumentationHandler('first-input', handleEntries);\n}\n\nfunction getSource(context) {\n const sourceFromAttributes = context.attributes && context.attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n // eslint-disable-next-line deprecation/deprecation\n const sourceFromData = context.data && context.data[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n // eslint-disable-next-line deprecation/deprecation\n const sourceFromMetadata = context.metadata && context.metadata.source;\n\n return sourceFromAttributes || sourceFromData || sourceFromMetadata;\n}\n\nexport { BROWSER_TRACING_INTEGRATION_ID, browserTracingIntegration, getMetaContent, startBrowserTracingNavigationSpan, startBrowserTracingPageLoadSpan };\n//# sourceMappingURL=browserTracingIntegration.js.map\n","const bindReporter = (\n callback,\n metric,\n reportAllChanges,\n) => {\n let prevValue;\n let delta;\n return (forceReport) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (delta || prevValue === undefined) {\n prevValue = metric.value;\n metric.delta = delta;\n callback(metric);\n }\n }\n }\n };\n};\n\nexport { bindReporter };\n//# sourceMappingURL=bindReporter.js.map\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nconst generateUniqueID = () => {\n return `v3-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n\nexport { generateUniqueID };\n//# sourceMappingURL=generateUniqueID.js.map\n","import { getNavigationEntry } from './getNavigationEntry.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst getActivationStart = () => {\n const navEntry = getNavigationEntry();\n return (navEntry && navEntry.activationStart) || 0;\n};\n\nexport { getActivationStart };\n//# sourceMappingURL=getActivationStart.js.map\n","import { WINDOW } from '../../types.js';\nimport { generateUniqueID } from './generateUniqueID.js';\nimport { getActivationStart } from './getActivationStart.js';\nimport { getNavigationEntry } from './getNavigationEntry.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst initMetric = (name, value) => {\n const navEntry = getNavigationEntry();\n let navigationType = 'navigate';\n\n if (navEntry) {\n if ((WINDOW.document && WINDOW.document.prerendering) || getActivationStart() > 0) {\n navigationType = 'prerender';\n } else {\n navigationType = navEntry.type.replace(/_/g, '-') ;\n }\n }\n\n return {\n name,\n value: typeof value === 'undefined' ? -1 : value,\n rating: 'good', // Will be updated if the value changes.\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n navigationType,\n };\n};\n\nexport { initMetric };\n//# sourceMappingURL=initMetric.js.map\n","/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nconst observe = (\n type,\n callback,\n opts,\n) => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n const po = new PerformanceObserver(list => {\n callback(list.getEntries() );\n });\n po.observe(\n Object.assign(\n {\n type,\n buffered: true,\n },\n opts || {},\n ) ,\n );\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n\nexport { observe };\n//# sourceMappingURL=observe.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Calculates the [CLS](https://web.dev/cls/) value for the current page and\n * calls the `callback` function once the value is ready to be reported, along\n * with all `layout-shift` performance entries that were used in the metric\n * value calculation. The reported value is a `double` (corresponding to a\n * [layout shift score](https://web.dev/cls/#layout-shift-score)).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** CLS should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nconst onCLS = (\n onReport,\n options = {},\n) => {\n const metric = initMetric('CLS', 0);\n let report;\n\n let sessionValue = 0;\n let sessionEntries = [];\n\n // const handleEntries = (entries: Metric['entries']) => {\n const handleEntries = (entries) => {\n entries.forEach(entry => {\n // Only count layout shifts without recent user input.\n if (!entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (\n sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n });\n };\n\n const po = observe('layout-shift', handleEntries);\n if (po) {\n report = bindReporter(onReport, metric, options.reportAllChanges);\n\n const stopListening = () => {\n handleEntries(po.takeRecords() );\n report(true);\n };\n\n onHidden(stopListening);\n\n return stopListening;\n }\n\n return;\n};\n\nexport { onCLS };\n//# sourceMappingURL=getCLS.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Calculates the [FID](https://web.dev/fid/) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `first-input` performance entry used to determine the value. The\n * reported value is a `DOMHighResTimeStamp`.\n *\n * _**Important:** since FID is only reported after the user interacts with the\n * page, it's possible that it will not be reported for some page loads._\n */\nconst onFID = (onReport) => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n // eslint-disable-next-line prefer-const\n let report;\n\n const handleEntry = (entry) => {\n // Only report if the page wasn't hidden prior to the first input.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const handleEntries = (entries) => {\n (entries ).forEach(handleEntry);\n };\n\n const po = observe('first-input', handleEntries);\n report = bindReporter(onReport, metric);\n\n if (po) {\n onHidden(() => {\n handleEntries(po.takeRecords() );\n po.disconnect();\n }, true);\n }\n};\n\nexport { onFID };\n//# sourceMappingURL=getFID.js.map\n","import { observe } from '../observe.js';\n\nlet interactionCountEstimate = 0;\nlet minKnownInteractionId = Infinity;\nlet maxKnownInteractionId = 0;\n\nconst updateEstimate = (entries) => {\n (entries ).forEach(e => {\n if (e.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, e.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, e.interactionId);\n\n interactionCountEstimate = maxKnownInteractionId ? (maxKnownInteractionId - minKnownInteractionId) / 7 + 1 : 0;\n }\n });\n};\n\nlet po;\n\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nconst getInteractionCount = () => {\n return po ? interactionCountEstimate : performance.interactionCount || 0;\n};\n\n/**\n * Feature detects native support or initializes the polyfill if needed.\n */\nconst initInteractionCountPolyfill = () => {\n if ('interactionCount' in performance || po) return;\n\n po = observe('event', updateEstimate, {\n type: 'event',\n buffered: true,\n durationThreshold: 0,\n } );\n};\n\nexport { getInteractionCount, initInteractionCountPolyfill };\n//# sourceMappingURL=interactionCountPolyfill.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { initInteractionCountPolyfill, getInteractionCount } from './lib/polyfills/interactionCountPolyfill.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Returns the interaction count since the last bfcache restore (or for the\n * full page lifecycle if there were no bfcache restores).\n */\nconst getInteractionCountForNavigation = () => {\n return getInteractionCount();\n};\n\n// To prevent unnecessary memory usage on pages with lots of interactions,\n// store at most 10 of the longest interactions to consider as INP candidates.\nconst MAX_INTERACTIONS_TO_CONSIDER = 10;\n\n// A list of longest interactions on the page (by latency) sorted so the\n// longest one is first. The list is as most MAX_INTERACTIONS_TO_CONSIDER long.\nconst longestInteractionList = [];\n\n// A mapping of longest interactions by their interaction ID.\n// This is used for faster lookup.\nconst longestInteractionMap = {};\n\n/**\n * Takes a performance entry and adds it to the list of worst interactions\n * if its duration is long enough to make it among the worst. If the\n * entry is part of an existing interaction, it is merged and the latency\n * and entries list is updated as needed.\n */\nconst processEntry = (entry) => {\n // The least-long of the 10 longest interactions.\n const minLongestInteraction = longestInteractionList[longestInteractionList.length - 1];\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const existingInteraction = longestInteractionMap[entry.interactionId];\n\n // Only process the entry if it's possibly one of the ten longest,\n // or if it's part of an existing interaction.\n if (\n existingInteraction ||\n longestInteractionList.length < MAX_INTERACTIONS_TO_CONSIDER ||\n entry.duration > minLongestInteraction.latency\n ) {\n // If the interaction already exists, update it. Otherwise create one.\n if (existingInteraction) {\n existingInteraction.entries.push(entry);\n existingInteraction.latency = Math.max(existingInteraction.latency, entry.duration);\n } else {\n const interaction = {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n id: entry.interactionId,\n latency: entry.duration,\n entries: [entry],\n };\n longestInteractionMap[interaction.id] = interaction;\n longestInteractionList.push(interaction);\n }\n\n // Sort the entries by latency (descending) and keep only the top ten.\n longestInteractionList.sort((a, b) => b.latency - a.latency);\n longestInteractionList.splice(MAX_INTERACTIONS_TO_CONSIDER).forEach(i => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete longestInteractionMap[i.id];\n });\n }\n};\n\n/**\n * Returns the estimated p98 longest interaction based on the stored\n * interaction candidates and the interaction count for the current page.\n */\nconst estimateP98LongestInteraction = () => {\n const candidateInteractionIndex = Math.min(\n longestInteractionList.length - 1,\n Math.floor(getInteractionCountForNavigation() / 50),\n );\n\n return longestInteractionList[candidateInteractionIndex];\n};\n\n/**\n * Calculates the [INP](https://web.dev/responsiveness/) value for the current\n * page and calls the `callback` function once the value is ready, along with\n * the `event` performance entries reported for that interaction. The reported\n * value is a `DOMHighResTimeStamp`.\n *\n * A custom `durationThreshold` configuration option can optionally be passed to\n * control what `event-timing` entries are considered for INP reporting. The\n * default threshold is `40`, which means INP scores of less than 40 are\n * reported as 0. Note that this will not affect your 75th percentile INP value\n * unless that value is also less than 40 (well below the recommended\n * [good](https://web.dev/inp/#what-is-a-good-inp-score) threshold).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** INP should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nconst onINP = (onReport, opts) => {\n // Set defaults\n // eslint-disable-next-line no-param-reassign\n opts = opts || {};\n\n // https://web.dev/inp/#what's-a-%22good%22-inp-value\n // const thresholds = [200, 500];\n\n // TODO(philipwalton): remove once the polyfill is no longer needed.\n initInteractionCountPolyfill();\n\n const metric = initMetric('INP');\n // eslint-disable-next-line prefer-const\n let report;\n\n const handleEntries = (entries) => {\n entries.forEach(entry => {\n if (entry.interactionId) {\n processEntry(entry);\n }\n\n // Entries of type `first-input` don't currently have an `interactionId`,\n // so to consider them in INP we have to first check that an existing\n // entry doesn't match the `duration` and `startTime`.\n // Note that this logic assumes that `event` entries are dispatched\n // before `first-input` entries. This is true in Chrome but it is not\n // true in Firefox; however, Firefox doesn't support interactionId, so\n // it's not an issue at the moment.\n // TODO(philipwalton): remove once crbug.com/1325826 is fixed.\n if (entry.entryType === 'first-input') {\n const noMatchingEntry = !longestInteractionList.some(interaction => {\n return interaction.entries.some(prevEntry => {\n return entry.duration === prevEntry.duration && entry.startTime === prevEntry.startTime;\n });\n });\n if (noMatchingEntry) {\n processEntry(entry);\n }\n }\n });\n\n const inp = estimateP98LongestInteraction();\n\n if (inp && inp.latency !== metric.value) {\n metric.value = inp.latency;\n metric.entries = inp.entries;\n report();\n }\n };\n\n const po = observe('event', handleEntries, {\n // Event Timing entries have their durations rounded to the nearest 8ms,\n // so a duration of 40ms would be any event that spans 2.5 or more frames\n // at 60Hz. This threshold is chosen to strike a balance between usefulness\n // and performance. Running this callback for any interaction that spans\n // just one or two frames is likely not worth the insight that could be\n // gained.\n durationThreshold: opts.durationThreshold || 40,\n } );\n\n report = bindReporter(onReport, metric, opts.reportAllChanges);\n\n if (po) {\n // Also observe entries of type `first-input`. This is useful in cases\n // where the first interaction is less than the `durationThreshold`.\n po.observe({ type: 'first-input', buffered: true });\n\n onHidden(() => {\n handleEntries(po.takeRecords() );\n\n // If the interaction count shows that there were interactions but\n // none were captured by the PerformanceObserver, report a latency of 0.\n if (metric.value < 0 && getInteractionCountForNavigation() > 0) {\n metric.value = 0;\n metric.entries = [];\n }\n\n report(true);\n });\n }\n};\n\nexport { onINP };\n//# sourceMappingURL=getINP.js.map\n","import { WINDOW } from '../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst reportedMetricIDs = {};\n\n/**\n * Calculates the [LCP](https://web.dev/lcp/) value for the current page and\n * calls the `callback` function once the value is ready (along with the\n * relevant `largest-contentful-paint` performance entry used to determine the\n * value). The reported value is a `DOMHighResTimeStamp`.\n */\nconst onLCP = (onReport) => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report;\n\n const handleEntries = (entries) => {\n const lastEntry = entries[entries.length - 1] ;\n if (lastEntry) {\n // The startTime attribute returns the value of the renderTime if it is\n // not 0, and the value of the loadTime otherwise. The activationStart\n // reference is used because LCP should be relative to page activation\n // rather than navigation start if the page was prerendered.\n const value = Math.max(lastEntry.startTime - getActivationStart(), 0);\n\n // Only report if the page wasn't hidden prior to LCP.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries = [lastEntry];\n report();\n }\n }\n };\n\n const po = observe('largest-contentful-paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric);\n\n const stopListening = () => {\n if (!reportedMetricIDs[metric.id]) {\n handleEntries(po.takeRecords() );\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n if (WINDOW.document) {\n addEventListener(type, stopListening, { once: true, capture: true });\n }\n });\n\n onHidden(stopListening, true);\n\n return stopListening;\n }\n\n return;\n};\n\nexport { onLCP };\n//# sourceMappingURL=getLCP.js.map\n","import { WINDOW } from '../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getNavigationEntry } from './lib/getNavigationEntry.js';\nimport { initMetric } from './lib/initMetric.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Runs in the next task after the page is done loading and/or prerendering.\n * @param callback\n */\nconst whenReady = (callback) => {\n if (!WINDOW.document) {\n return;\n }\n\n if (WINDOW.document.prerendering) {\n addEventListener('prerenderingchange', () => whenReady(callback), true);\n } else if (WINDOW.document.readyState !== 'complete') {\n addEventListener('load', () => whenReady(callback), true);\n } else {\n // Queue a task so the callback runs after `loadEventEnd`.\n setTimeout(callback, 0);\n }\n};\n\n/**\n * Calculates the [TTFB](https://web.dev/time-to-first-byte/) value for the\n * current page and calls the `callback` function once the page has loaded,\n * along with the relevant `navigation` performance entry used to determine the\n * value. The reported value is a `DOMHighResTimeStamp`.\n *\n * Note, this function waits until after the page is loaded to call `callback`\n * in order to ensure all properties of the `navigation` entry are populated.\n * This is useful if you want to report on other metrics exposed by the\n * [Navigation Timing API](https://w3c.github.io/navigation-timing/). For\n * example, the TTFB metric starts from the page's [time\n * origin](https://www.w3.org/TR/hr-time-2/#sec-time-origin), which means it\n * includes time spent on DNS lookup, connection negotiation, network latency,\n * and server processing time.\n */\nconst onTTFB = (onReport, opts) => {\n // Set defaults\n // eslint-disable-next-line no-param-reassign\n opts = opts || {};\n\n // https://web.dev/ttfb/#what-is-a-good-ttfb-score\n // const thresholds = [800, 1800];\n\n const metric = initMetric('TTFB');\n const report = bindReporter(onReport, metric, opts.reportAllChanges);\n\n whenReady(() => {\n const navEntry = getNavigationEntry() ;\n\n if (navEntry) {\n // The activationStart reference is used because TTFB should be\n // relative to page activation rather than navigation start if the\n // page was prerendered. But in cases where `activationStart` occurs\n // after the first byte is received, this time should be clamped at 0.\n metric.value = Math.max(navEntry.responseStart - getActivationStart(), 0);\n\n // In some cases the value reported is negative or is larger\n // than the current page time. Ignore these cases:\n // https://github.com/GoogleChrome/web-vitals/issues/137\n // https://github.com/GoogleChrome/web-vitals/issues/162\n if (metric.value < 0 || metric.value > performance.now()) return;\n\n metric.entries = [navEntry];\n\n report(true);\n }\n });\n};\n\nexport { onTTFB };\n//# sourceMappingURL=onTTFB.js.map\n","import { logger, getFunctionName } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../common/debug-build.js';\nimport { onCLS } from './web-vitals/getCLS.js';\nimport { onFID } from './web-vitals/getFID.js';\nimport { onINP } from './web-vitals/getINP.js';\nimport { onLCP } from './web-vitals/getLCP.js';\nimport { observe } from './web-vitals/lib/observe.js';\nimport { onTTFB } from './web-vitals/onTTFB.js';\n\nconst handlers = {};\nconst instrumented = {};\n\nlet _previousCls;\nlet _previousFid;\nlet _previousLcp;\nlet _previousTtfb;\nlet _previousInp;\n\n/**\n * Add a callback that will be triggered when a CLS metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for CLS when the cleanup callback is called.\n * This will lead to the CLS being finalized and frozen.\n */\nfunction addClsInstrumentationHandler(\n callback,\n stopOnCallback = false,\n) {\n return addMetricObserver('cls', callback, instrumentCls, _previousCls, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a LCP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for LCP when the cleanup callback is called.\n * This will lead to the LCP being finalized and frozen.\n */\nfunction addLcpInstrumentationHandler(\n callback,\n stopOnCallback = false,\n) {\n return addMetricObserver('lcp', callback, instrumentLcp, _previousLcp, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n */\nfunction addTtfbInstrumentationHandler(callback) {\n return addMetricObserver('ttfb', callback, instrumentTtfb, _previousTtfb);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addFidInstrumentationHandler(callback) {\n return addMetricObserver('fid', callback, instrumentFid, _previousFid);\n}\n\n/**\n * Add a callback that will be triggered when a INP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addInpInstrumentationHandler(\n callback,\n) {\n return addMetricObserver('inp', callback, instrumentInp, _previousInp);\n}\n\n/**\n * Add a callback that will be triggered when a performance observer is triggered,\n * and receives the entries of the observer.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addPerformanceInstrumentationHandler(\n type,\n callback,\n) {\n addHandler(type, callback);\n\n if (!instrumented[type]) {\n instrumentPerformanceObserver(type);\n instrumented[type] = true;\n }\n\n return getCleanupCallback(type, callback);\n}\n\n/** Trigger all handlers of a given type. */\nfunction triggerHandlers(type, data) {\n const typeHandlers = handlers[type];\n\n if (!typeHandlers || !typeHandlers.length) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nfunction instrumentCls() {\n return onCLS(\n metric => {\n triggerHandlers('cls', {\n metric,\n });\n _previousCls = metric;\n },\n { reportAllChanges: true },\n );\n}\n\nfunction instrumentFid() {\n return onFID(metric => {\n triggerHandlers('fid', {\n metric,\n });\n _previousFid = metric;\n });\n}\n\nfunction instrumentLcp() {\n return onLCP(metric => {\n triggerHandlers('lcp', {\n metric,\n });\n _previousLcp = metric;\n });\n}\n\nfunction instrumentTtfb() {\n return onTTFB(metric => {\n triggerHandlers('ttfb', {\n metric,\n });\n _previousTtfb = metric;\n });\n}\n\nfunction instrumentInp() {\n return onINP(metric => {\n triggerHandlers('inp', {\n metric,\n });\n _previousInp = metric;\n });\n}\n\nfunction addMetricObserver(\n type,\n callback,\n instrumentFn,\n previousValue,\n stopOnCallback = false,\n) {\n addHandler(type, callback);\n\n let stopListening;\n\n if (!instrumented[type]) {\n stopListening = instrumentFn();\n instrumented[type] = true;\n }\n\n if (previousValue) {\n callback({ metric: previousValue });\n }\n\n return getCleanupCallback(type, callback, stopOnCallback ? stopListening : undefined);\n}\n\nfunction instrumentPerformanceObserver(type) {\n const options = {};\n\n // Special per-type options we want to use\n if (type === 'event') {\n options.durationThreshold = 0;\n }\n\n observe(\n type,\n entries => {\n triggerHandlers(type, { entries });\n },\n options,\n );\n}\n\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(handler);\n}\n\n// Get a callback which can be called to remove the instrumentation handler\nfunction getCleanupCallback(\n type,\n callback,\n stopListening,\n) {\n return () => {\n if (stopListening) {\n stopListening();\n }\n\n const typeHandlers = handlers[type];\n\n if (!typeHandlers) {\n return;\n }\n\n const index = typeHandlers.indexOf(callback);\n if (index !== -1) {\n typeHandlers.splice(index, 1);\n }\n };\n}\n\nexport { addClsInstrumentationHandler, addFidInstrumentationHandler, addInpInstrumentationHandler, addLcpInstrumentationHandler, addPerformanceInstrumentationHandler, addTtfbInstrumentationHandler };\n//# sourceMappingURL=instrument.js.map\n","/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value) {\n return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n *\n * Note: this will not be possible anymore in v8,\n * unless we do some special handling for browser here...\n */\nfunction _startChild(transaction, { startTimestamp, ...ctx }) {\n // eslint-disable-next-line deprecation/deprecation\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.startTimestamp = startTimestamp;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return transaction.startChild({\n startTimestamp,\n ...ctx,\n });\n}\n\nexport { _startChild, isMeasurementValue };\n//# sourceMappingURL=utils.js.map\n","import { getActiveTransaction, spanToJSON, setMeasurement, getClient, Span, createSpanEnvelope, hasTracingEnabled, isValidSampleRate } from '@sentry/core';\nimport { browserPerformanceTimeOrigin, htmlTreeAsString, getComponentName, logger, parseUrl } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../../common/debug-build.js';\nimport { addPerformanceInstrumentationHandler, addClsInstrumentationHandler, addLcpInstrumentationHandler, addFidInstrumentationHandler, addTtfbInstrumentationHandler, addInpInstrumentationHandler } from '../instrument.js';\nimport { WINDOW } from '../types.js';\nimport { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher.js';\nimport { _startChild, isMeasurementValue } from './utils.js';\nimport { getNavigationEntry } from '../web-vitals/lib/getNavigationEntry.js';\n\nconst MAX_INT_AS_BYTES = 2147483647;\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nfunction msToSec(time) {\n return time / 1000;\n}\n\nfunction getBrowserPerformanceAPI() {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n return WINDOW && WINDOW.addEventListener && WINDOW.performance;\n}\n\nlet _performanceCursor = 0;\n\nlet _measurements = {};\nlet _lcpEntry;\nlet _clsEntry;\n\n/**\n * Start tracking web vitals.\n * The callback returned by this function can be used to stop tracking & ensure all measurements are final & captured.\n *\n * @returns A function that forces web vitals collection\n */\nfunction startTrackingWebVitals() {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n if (performance.mark) {\n WINDOW.performance.mark('sentry-tracing-init');\n }\n const fidCallback = _trackFID();\n const clsCallback = _trackCLS();\n const lcpCallback = _trackLCP();\n const ttfbCallback = _trackTtfb();\n\n return () => {\n fidCallback();\n clsCallback();\n lcpCallback();\n ttfbCallback();\n };\n }\n\n return () => undefined;\n}\n\n/**\n * Start tracking long tasks.\n */\nfunction startTrackingLongTasks() {\n addPerformanceInstrumentationHandler('longtask', ({ entries }) => {\n for (const entry of entries) {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction() ;\n if (!transaction) {\n return;\n }\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n // eslint-disable-next-line deprecation/deprecation\n transaction.startChild({\n description: 'Main UI thread blocked',\n op: 'ui.long-task',\n origin: 'auto.ui.browser.metrics',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n });\n }\n });\n}\n\n/**\n * Start tracking interaction events.\n */\nfunction startTrackingInteractions() {\n addPerformanceInstrumentationHandler('event', ({ entries }) => {\n for (const entry of entries) {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction() ;\n if (!transaction) {\n return;\n }\n\n if (entry.name === 'click') {\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n const span = {\n description: htmlTreeAsString(entry.target),\n op: `ui.interaction.${entry.name}`,\n origin: 'auto.ui.browser.metrics',\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n };\n\n const componentName = getComponentName(entry.target);\n if (componentName) {\n span.attributes = { 'ui.component_name': componentName };\n }\n\n // eslint-disable-next-line deprecation/deprecation\n transaction.startChild(span);\n }\n }\n });\n}\n\n/**\n * Start tracking INP webvital events.\n */\nfunction startTrackingINP(\n interactionIdtoRouteNameMapping,\n interactionsSampleRate,\n) {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n const inpCallback = _trackINP(interactionIdtoRouteNameMapping, interactionsSampleRate);\n\n return () => {\n inpCallback();\n };\n }\n\n return () => undefined;\n}\n\n/** Starts tracking the Cumulative Layout Shift on the current page. */\nfunction _trackCLS() {\n return addClsInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding CLS');\n _measurements['cls'] = { value: metric.value, unit: '' };\n _clsEntry = entry ;\n }, true);\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP() {\n return addLcpInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding LCP');\n _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n _lcpEntry = entry ;\n }, true);\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID() {\n return addFidInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin );\n const startTime = msToSec(entry.startTime);\n DEBUG_BUILD && logger.log('[Measurements] Adding FID');\n _measurements['fid'] = { value: metric.value, unit: 'millisecond' };\n _measurements['mark.fid'] = { value: timeOrigin + startTime, unit: 'second' };\n });\n}\n\nfunction _trackTtfb() {\n return addTtfbInstrumentationHandler(({ metric }) => {\n const entry = metric.entries[metric.entries.length - 1];\n if (!entry) {\n return;\n }\n\n DEBUG_BUILD && logger.log('[Measurements] Adding TTFB');\n _measurements['ttfb'] = { value: metric.value, unit: 'millisecond' };\n });\n}\n\nconst INP_ENTRY_MAP = {\n click: 'click',\n pointerdown: 'click',\n pointerup: 'click',\n mousedown: 'click',\n mouseup: 'click',\n touchstart: 'click',\n touchend: 'click',\n mouseover: 'hover',\n mouseout: 'hover',\n mouseenter: 'hover',\n mouseleave: 'hover',\n pointerover: 'hover',\n pointerout: 'hover',\n pointerenter: 'hover',\n pointerleave: 'hover',\n dragstart: 'drag',\n dragend: 'drag',\n drag: 'drag',\n dragenter: 'drag',\n dragleave: 'drag',\n dragover: 'drag',\n drop: 'drag',\n keydown: 'press',\n keyup: 'press',\n keypress: 'press',\n input: 'press',\n};\n\n/** Starts tracking the Interaction to Next Paint on the current page. */\nfunction _trackINP(\n interactionIdToRouteNameMapping,\n interactionsSampleRate,\n) {\n return addInpInstrumentationHandler(({ metric }) => {\n if (metric.value === undefined) {\n return;\n }\n const entry = metric.entries.find(\n entry => entry.duration === metric.value && INP_ENTRY_MAP[entry.name] !== undefined,\n );\n const client = getClient();\n if (!entry || !client) {\n return;\n }\n const interactionType = INP_ENTRY_MAP[entry.name];\n const options = client.getOptions();\n /** Build the INP span, create an envelope from the span, and then send the envelope */\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(metric.value);\n const interaction =\n entry.interactionId !== undefined ? interactionIdToRouteNameMapping[entry.interactionId] : undefined;\n if (interaction === undefined) {\n return;\n }\n const { routeName, parentContext, activeTransaction, user, replayId } = interaction;\n const userDisplay = user !== undefined ? user.email || user.id || user.ip_address : undefined;\n // eslint-disable-next-line deprecation/deprecation\n const profileId = activeTransaction !== undefined ? activeTransaction.getProfileId() : undefined;\n const span = new Span({\n startTimestamp: startTime,\n endTimestamp: startTime + duration,\n op: `ui.interaction.${interactionType}`,\n name: htmlTreeAsString(entry.target),\n attributes: {\n release: options.release,\n environment: options.environment,\n transaction: routeName,\n ...(userDisplay !== undefined && userDisplay !== '' ? { user: userDisplay } : {}),\n ...(profileId !== undefined ? { profile_id: profileId } : {}),\n ...(replayId !== undefined ? { replay_id: replayId } : {}),\n },\n exclusiveTime: metric.value,\n measurements: {\n inp: { value: metric.value, unit: 'millisecond' },\n },\n });\n\n /** Check to see if the span should be sampled */\n const sampleRate = getSampleRate(parentContext, options, interactionsSampleRate);\n\n if (!sampleRate) {\n return;\n }\n\n if (Math.random() < (sampleRate )) {\n const envelope = span ? createSpanEnvelope([span], client.getDsn()) : undefined;\n const transport = client && client.getTransport();\n if (transport && envelope) {\n transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending interaction:', reason);\n });\n }\n return;\n }\n });\n}\n\n/** Add performance related spans to a transaction */\nfunction addPerformanceEntries(transaction) {\n const performance = getBrowserPerformanceAPI();\n if (!performance || !WINDOW.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n DEBUG_BUILD && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n const performanceEntries = performance.getEntries();\n\n const { op, start_timestamp: transactionStartTime } = spanToJSON(transaction);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n performanceEntries.slice(_performanceCursor).forEach((entry) => {\n const startTime = msToSec(entry.startTime);\n const duration = msToSec(entry.duration);\n\n // eslint-disable-next-line deprecation/deprecation\n if (transaction.op === 'navigation' && transactionStartTime && timeOrigin + startTime < transactionStartTime) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n _addNavigationSpans(transaction, entry, timeOrigin);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n\n // capture web vitals\n const firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n DEBUG_BUILD && logger.log('[Measurements] Adding FP');\n _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n DEBUG_BUILD && logger.log('[Measurements] Adding FCP');\n _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n }\n break;\n }\n case 'resource': {\n _addResourceSpans(transaction, entry, entry.name , startTime, duration, timeOrigin);\n break;\n }\n // Ignore other entry types.\n }\n });\n\n _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n\n _trackNavigator(transaction);\n\n // Measurements are only available for pageload transactions\n if (op === 'pageload') {\n _addTtfbRequestTimeToMeasurements(_measurements);\n\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!_measurements[name] || !transactionStartTime || timeOrigin >= transactionStartTime) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n const oldValue = _measurements[name].value;\n const measurementTimestamp = timeOrigin + msToSec(oldValue);\n\n // normalizedValue should be in milliseconds\n const normalizedValue = Math.abs((measurementTimestamp - transactionStartTime) * 1000);\n const delta = normalizedValue - oldValue;\n\n DEBUG_BUILD && logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n _measurements[name].value = normalizedValue;\n });\n\n const fidMark = _measurements['mark.fid'];\n if (fidMark && _measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: fidMark.value + msToSec(_measurements['fid'].value),\n op: 'ui.action',\n origin: 'auto.ui.browser.metrics',\n startTimestamp: fidMark.value,\n });\n\n // Delete mark.fid as we don't want it to be part of final payload\n delete _measurements['mark.fid'];\n }\n\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in _measurements)) {\n delete _measurements.cls;\n }\n\n Object.keys(_measurements).forEach(measurementName => {\n setMeasurement(measurementName, _measurements[measurementName].value, _measurements[measurementName].unit);\n });\n\n _tagMetricInfo(transaction);\n }\n\n _lcpEntry = undefined;\n _clsEntry = undefined;\n _measurements = {};\n}\n\n/** Create measure related spans */\nfunction _addMeasureSpans(\n transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry,\n startTime,\n duration,\n timeOrigin,\n) {\n const measureStartTimestamp = timeOrigin + startTime;\n const measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name ,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType ,\n origin: 'auto.resource.browser.metrics',\n startTimestamp: measureStartTimestamp,\n });\n\n return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addNavigationSpans(transaction, entry, timeOrigin) {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n _addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n _addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n _addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n _addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n _addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(\n transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry,\n event,\n timeOrigin,\n description,\n eventEnd,\n) {\n const end = eventEnd ? (entry[eventEnd] ) : (entry[`${event}End`] );\n const start = entry[`${event}Start`] ;\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: description || event,\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n\n/** Create request and response related spans */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _addRequest(transaction, entry, timeOrigin) {\n if (entry.responseEnd) {\n // It is possible that we are collecting these metrics when the page hasn't finished loading yet, for example when the HTML slowly streams in.\n // In this case, ie. when the document request hasn't finished yet, `entry.responseEnd` will be 0.\n // In order not to produce faulty spans, where the end timestamp is before the start timestamp, we will only collect\n // these spans when the responseEnd value is available. The backend (Relay) would drop the entire transaction if it contained faulty spans.\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart ),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd ),\n });\n\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart ),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd ),\n });\n }\n}\n\n/** Create resource-related spans */\nfunction _addResourceSpans(\n transaction,\n entry,\n resourceUrl,\n startTime,\n duration,\n timeOrigin,\n) {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n\n const parsedUrl = parseUrl(resourceUrl);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data = {};\n setResourceEntrySizeData(data, entry, 'transferSize', 'http.response_transfer_size');\n setResourceEntrySizeData(data, entry, 'encodedBodySize', 'http.response_content_length');\n setResourceEntrySizeData(data, entry, 'decodedBodySize', 'http.decoded_response_content_length');\n\n if ('renderBlockingStatus' in entry) {\n data['resource.render_blocking_status'] = entry.renderBlockingStatus;\n }\n if (parsedUrl.protocol) {\n data['url.scheme'] = parsedUrl.protocol.split(':').pop(); // the protocol returned by parseUrl includes a :, but OTEL spec does not, so we remove it.\n }\n\n if (parsedUrl.host) {\n data['server.address'] = parsedUrl.host;\n }\n\n data['url.same_origin'] = resourceUrl.includes(WINDOW.location.origin);\n\n const startTimestamp = timeOrigin + startTime;\n const endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceUrl.replace(WINDOW.location.origin, ''),\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource.other',\n origin: 'auto.resource.browser.metrics',\n startTimestamp,\n data,\n });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(transaction) {\n const navigator = WINDOW.navigator ;\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n const connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n _measurements['connection.rtt'] = { value: connection.rtt, unit: 'millisecond' };\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('deviceMemory', `${navigator.deviceMemory} GB`);\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction _tagMetricInfo(transaction) {\n if (_lcpEntry) {\n DEBUG_BUILD && logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (_lcpEntry.element) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.element', htmlTreeAsString(_lcpEntry.element));\n }\n\n if (_lcpEntry.id) {\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.id', _lcpEntry.id);\n }\n\n if (_lcpEntry.url) {\n // Trim URL to the first 200 characters.\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n }\n\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag('lcp.size', _lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (_clsEntry && _clsEntry.sources) {\n DEBUG_BUILD && logger.log('[Measurements] Adding CLS Data');\n _clsEntry.sources.forEach((source, index) =>\n // TODO: Can we rewrite this to an attribute?\n // eslint-disable-next-line deprecation/deprecation\n transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n\nfunction setResourceEntrySizeData(\n data,\n entry,\n key,\n dataKey,\n) {\n const entryVal = entry[key];\n if (entryVal != null && entryVal < MAX_INT_AS_BYTES) {\n data[dataKey] = entryVal;\n }\n}\n\n/**\n * Add ttfb request time information to measurements.\n *\n * ttfb information is added via vendored web vitals library.\n */\nfunction _addTtfbRequestTimeToMeasurements(_measurements) {\n const navEntry = getNavigationEntry();\n if (!navEntry) {\n return;\n }\n\n const { responseStart, requestStart } = navEntry;\n\n if (requestStart <= responseStart) {\n DEBUG_BUILD && logger.log('[Measurements] Adding TTFB Request Time');\n _measurements['ttfb.requestTime'] = {\n value: responseStart - requestStart,\n unit: 'millisecond',\n };\n }\n}\n\n/** Taken from @sentry/core sampling.ts */\nfunction getSampleRate(\n transactionContext,\n options,\n interactionsSampleRate,\n) {\n if (!hasTracingEnabled(options)) {\n return false;\n }\n let sampleRate;\n if (transactionContext !== undefined && typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler({\n transactionContext,\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n location: WINDOW.location,\n });\n } else if (transactionContext !== undefined && transactionContext.sampled !== undefined) {\n sampleRate = transactionContext.sampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n } else {\n sampleRate = 1;\n }\n if (!isValidSampleRate(sampleRate)) {\n DEBUG_BUILD && logger.warn('[Tracing] Discarding interaction span because of invalid sample rate.');\n return false;\n }\n if (sampleRate === true) {\n return interactionsSampleRate;\n } else if (sampleRate === false) {\n return 0;\n }\n return sampleRate * interactionsSampleRate;\n}\n\nexport { _addMeasureSpans, _addResourceSpans, addPerformanceEntries, startTrackingINP, startTrackingInteractions, startTrackingLongTasks, startTrackingWebVitals };\n//# sourceMappingURL=index.js.map\n","import { hasTracingEnabled, getCurrentScope, getClient, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getIsolationScope, spanToTraceHeader, getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromClient, setHttpStatus } from '@sentry/core';\nimport { parseUrl, generateSentryTraceHeader, dynamicSamplingContextToSentryBaggageHeader, isInstanceOf, BAGGAGE_HEADER_NAME } from '@sentry/utils';\n\n/**\n * Create and track fetch request spans for usage in combination with `addInstrumentationHandler`.\n *\n * @returns Span if a span was created, otherwise void.\n */\nfunction instrumentFetchRequest(\n handlerData,\n shouldCreateSpan,\n shouldAttachHeaders,\n spans,\n spanOrigin = 'auto.http.browser',\n) {\n if (!hasTracingEnabled() || !handlerData.fetchData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = shouldCreateSpan(handlerData.fetchData.url);\n\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n endSpan(span, handlerData);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const scope = getCurrentScope();\n const client = getClient();\n\n const { method, url } = handlerData.fetchData;\n\n const fullUrl = getFullURL(url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n\n const span = shouldCreateSpanResult\n ? startInactiveSpan({\n name: `${method} ${url}`,\n onlyIfParent: true,\n attributes: {\n url,\n type: 'fetch',\n 'http.method': method,\n 'http.url': fullUrl,\n 'server.address': host,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n },\n op: 'http.client',\n })\n : undefined;\n\n if (span) {\n handlerData.fetchData.__span = span.spanContext().spanId;\n spans[span.spanContext().spanId] = span;\n }\n\n if (shouldAttachHeaders(handlerData.fetchData.url) && client) {\n const request = handlerData.args[0];\n\n // In case the user hasn't set the second argument of a fetch call we default it to `{}`.\n handlerData.args[1] = handlerData.args[1] || {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const options = handlerData.args[1];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n options.headers = addTracingHeadersToFetchRequest(request, client, scope, options, span);\n }\n\n return span;\n}\n\n/**\n * Adds sentry-trace and baggage headers to the various forms of fetch headers\n */\nfunction addTracingHeadersToFetchRequest(\n request, // unknown is actually type Request but we can't export DOM types from this package,\n client,\n scope,\n options\n\n,\n requestSpan,\n) {\n // eslint-disable-next-line deprecation/deprecation\n const span = requestSpan || scope.getSpan();\n\n const isolationScope = getIsolationScope();\n\n const { traceId, spanId, sampled, dsc } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n const sentryTraceHeader = span ? spanToTraceHeader(span) : generateSentryTraceHeader(traceId, spanId, sampled);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(\n dsc ||\n (span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromClient(traceId, client, scope)),\n );\n\n const headers =\n options.headers ||\n (typeof Request !== 'undefined' && isInstanceOf(request, Request) ? (request ).headers : undefined);\n\n if (!headers) {\n return { 'sentry-trace': sentryTraceHeader, baggage: sentryBaggageHeader };\n } else if (typeof Headers !== 'undefined' && isInstanceOf(headers, Headers)) {\n const newHeaders = new Headers(headers );\n\n newHeaders.append('sentry-trace', sentryTraceHeader);\n\n if (sentryBaggageHeader) {\n // If the same header is appended multiple times the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.append(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n\n return newHeaders ;\n } else if (Array.isArray(headers)) {\n const newHeaders = [...headers, ['sentry-trace', sentryTraceHeader]];\n\n if (sentryBaggageHeader) {\n // If there are multiple entries with the same key, the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.push([BAGGAGE_HEADER_NAME, sentryBaggageHeader]);\n }\n\n return newHeaders ;\n } else {\n const existingBaggageHeader = 'baggage' in headers ? headers.baggage : undefined;\n const newBaggageHeaders = [];\n\n if (Array.isArray(existingBaggageHeader)) {\n newBaggageHeaders.push(...existingBaggageHeader);\n } else if (existingBaggageHeader) {\n newBaggageHeaders.push(existingBaggageHeader);\n }\n\n if (sentryBaggageHeader) {\n newBaggageHeaders.push(sentryBaggageHeader);\n }\n\n return {\n ...(headers ),\n 'sentry-trace': sentryTraceHeader,\n baggage: newBaggageHeaders.length > 0 ? newBaggageHeaders.join(',') : undefined,\n };\n }\n}\n\nfunction getFullURL(url) {\n try {\n const parsed = new URL(url);\n return parsed.href;\n } catch (e) {\n return undefined;\n }\n}\n\nfunction endSpan(span, handlerData) {\n if (handlerData.response) {\n setHttpStatus(span, handlerData.response.status);\n\n const contentLength =\n handlerData.response && handlerData.response.headers && handlerData.response.headers.get('content-length');\n\n if (contentLength) {\n const contentLengthNum = parseInt(contentLength);\n if (contentLengthNum > 0) {\n span.setAttribute('http.response_content_length', contentLengthNum);\n }\n }\n } else if (handlerData.error) {\n span.setStatus('internal_error');\n }\n span.end();\n}\n\nexport { addTracingHeadersToFetchRequest, instrumentFetchRequest };\n//# sourceMappingURL=fetch.js.map\n","import { spanToJSON, hasTracingEnabled, setHttpStatus, getCurrentScope, getIsolationScope, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getClient, spanToTraceHeader, getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromClient } from '@sentry/core';\nimport { addFetchInstrumentationHandler, parseUrl, addXhrInstrumentationHandler, SENTRY_XHR_DATA_KEY, generateSentryTraceHeader, dynamicSamplingContextToSentryBaggageHeader, BAGGAGE_HEADER_NAME, browserPerformanceTimeOrigin, stringMatchesSomePattern } from '@sentry/utils';\nimport { instrumentFetchRequest } from '../common/fetch.js';\nimport { addPerformanceInstrumentationHandler } from './instrument.js';\nimport { WINDOW } from './types.js';\n\n/* eslint-disable max-lines */\n\nconst DEFAULT_TRACE_PROPAGATION_TARGETS = ['localhost', /^\\/(?!\\/)/];\n\n/** Options for Request Instrumentation */\n\nconst defaultRequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n enableHTTPTimings: true,\n // TODO (v8): Remove this property\n tracingOrigins: DEFAULT_TRACE_PROPAGATION_TARGETS,\n tracePropagationTargets: DEFAULT_TRACE_PROPAGATION_TARGETS,\n};\n\n/** Registers span creators for xhr and fetch requests */\nfunction instrumentOutgoingRequests(_options) {\n const {\n traceFetch,\n traceXHR,\n // eslint-disable-next-line deprecation/deprecation\n tracePropagationTargets,\n // eslint-disable-next-line deprecation/deprecation\n tracingOrigins,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n } = {\n traceFetch: defaultRequestInstrumentationOptions.traceFetch,\n traceXHR: defaultRequestInstrumentationOptions.traceXHR,\n ..._options,\n };\n\n const shouldCreateSpan =\n typeof shouldCreateSpanForRequest === 'function' ? shouldCreateSpanForRequest : (_) => true;\n\n // TODO(v8) Remove tracingOrigins here\n // The only reason we're passing it in here is because this instrumentOutgoingRequests function is publicly exported\n // and we don't want to break the API. We can remove it in v8.\n const shouldAttachHeadersWithTargets = (url) =>\n shouldAttachHeaders(url, tracePropagationTargets || tracingOrigins);\n\n const spans = {};\n\n if (traceFetch) {\n addFetchInstrumentationHandler(handlerData => {\n const createdSpan = instrumentFetchRequest(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n // We cannot use `window.location` in the generic fetch instrumentation,\n // but we need it for reliable `server.address` attribute.\n // so we extend this in here\n if (createdSpan) {\n const fullUrl = getFullURL(handlerData.fetchData.url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n createdSpan.setAttributes({\n 'http.url': fullUrl,\n 'server.address': host,\n });\n }\n\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n\n if (traceXHR) {\n addXhrInstrumentationHandler(handlerData => {\n const createdSpan = xhrCallback(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n}\n\nfunction isPerformanceResourceTiming(entry) {\n return (\n entry.entryType === 'resource' &&\n 'initiatorType' in entry &&\n typeof (entry ).nextHopProtocol === 'string' &&\n (entry.initiatorType === 'fetch' || entry.initiatorType === 'xmlhttprequest')\n );\n}\n\n/**\n * Creates a temporary observer to listen to the next fetch/xhr resourcing timings,\n * so that when timings hit their per-browser limit they don't need to be removed.\n *\n * @param span A span that has yet to be finished, must contain `url` on data.\n */\nfunction addHTTPTimings(span) {\n const { url } = spanToJSON(span).data || {};\n\n if (!url || typeof url !== 'string') {\n return;\n }\n\n const cleanup = addPerformanceInstrumentationHandler('resource', ({ entries }) => {\n entries.forEach(entry => {\n if (isPerformanceResourceTiming(entry) && entry.name.endsWith(url)) {\n const spanData = resourceTimingEntryToSpanData(entry);\n spanData.forEach(data => span.setAttribute(...data));\n // In the next tick, clean this handler up\n // We have to wait here because otherwise this cleans itself up before it is fully done\n setTimeout(cleanup);\n }\n });\n });\n}\n\n/**\n * Converts ALPN protocol ids to name and version.\n *\n * (https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids)\n * @param nextHopProtocol PerformanceResourceTiming.nextHopProtocol\n */\nfunction extractNetworkProtocol(nextHopProtocol) {\n let name = 'unknown';\n let version = 'unknown';\n let _name = '';\n for (const char of nextHopProtocol) {\n // http/1.1 etc.\n if (char === '/') {\n [name, version] = nextHopProtocol.split('/');\n break;\n }\n // h2, h3 etc.\n if (!isNaN(Number(char))) {\n name = _name === 'h' ? 'http' : _name;\n version = nextHopProtocol.split(_name)[1];\n break;\n }\n _name += char;\n }\n if (_name === nextHopProtocol) {\n // webrtc, ftp, etc.\n name = _name;\n }\n return { name, version };\n}\n\nfunction getAbsoluteTime(time = 0) {\n return ((browserPerformanceTimeOrigin || performance.timeOrigin) + time) / 1000;\n}\n\nfunction resourceTimingEntryToSpanData(resourceTiming) {\n const { name, version } = extractNetworkProtocol(resourceTiming.nextHopProtocol);\n\n const timingSpanData = [];\n\n timingSpanData.push(['network.protocol.version', version], ['network.protocol.name', name]);\n\n if (!browserPerformanceTimeOrigin) {\n return timingSpanData;\n }\n return [\n ...timingSpanData,\n ['http.request.redirect_start', getAbsoluteTime(resourceTiming.redirectStart)],\n ['http.request.fetch_start', getAbsoluteTime(resourceTiming.fetchStart)],\n ['http.request.domain_lookup_start', getAbsoluteTime(resourceTiming.domainLookupStart)],\n ['http.request.domain_lookup_end', getAbsoluteTime(resourceTiming.domainLookupEnd)],\n ['http.request.connect_start', getAbsoluteTime(resourceTiming.connectStart)],\n ['http.request.secure_connection_start', getAbsoluteTime(resourceTiming.secureConnectionStart)],\n ['http.request.connection_end', getAbsoluteTime(resourceTiming.connectEnd)],\n ['http.request.request_start', getAbsoluteTime(resourceTiming.requestStart)],\n ['http.request.response_start', getAbsoluteTime(resourceTiming.responseStart)],\n ['http.request.response_end', getAbsoluteTime(resourceTiming.responseEnd)],\n ];\n}\n\n/**\n * A function that determines whether to attach tracing headers to a request.\n * This was extracted from `instrumentOutgoingRequests` to make it easier to test shouldAttachHeaders.\n * We only export this fuction for testing purposes.\n */\nfunction shouldAttachHeaders(url, tracePropagationTargets) {\n return stringMatchesSomePattern(url, tracePropagationTargets || DEFAULT_TRACE_PROPAGATION_TARGETS);\n}\n\n/**\n * Create and track xhr request spans\n *\n * @returns Span if a span was created, otherwise void.\n */\n// eslint-disable-next-line complexity\nfunction xhrCallback(\n handlerData,\n shouldCreateSpan,\n shouldAttachHeaders,\n spans,\n) {\n const xhr = handlerData.xhr;\n const sentryXhrData = xhr && xhr[SENTRY_XHR_DATA_KEY];\n\n if (!hasTracingEnabled() || !xhr || xhr.__sentry_own_request__ || !sentryXhrData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = shouldCreateSpan(sentryXhrData.url);\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span && sentryXhrData.status_code !== undefined) {\n setHttpStatus(span, sentryXhrData.status_code);\n span.end();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const scope = getCurrentScope();\n const isolationScope = getIsolationScope();\n\n const fullUrl = getFullURL(sentryXhrData.url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n\n const span = shouldCreateSpanResult\n ? startInactiveSpan({\n name: `${sentryXhrData.method} ${sentryXhrData.url}`,\n onlyIfParent: true,\n attributes: {\n type: 'xhr',\n 'http.method': sentryXhrData.method,\n 'http.url': fullUrl,\n url: sentryXhrData.url,\n 'server.address': host,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser',\n },\n op: 'http.client',\n })\n : undefined;\n\n if (span) {\n xhr.__sentry_xhr_span_id__ = span.spanContext().spanId;\n spans[xhr.__sentry_xhr_span_id__] = span;\n }\n\n const client = getClient();\n\n if (xhr.setRequestHeader && shouldAttachHeaders(sentryXhrData.url) && client) {\n const { traceId, spanId, sampled, dsc } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n const sentryTraceHeader = span ? spanToTraceHeader(span) : generateSentryTraceHeader(traceId, spanId, sampled);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(\n dsc ||\n (span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromClient(traceId, client, scope)),\n );\n\n setHeaderOnXhr(xhr, sentryTraceHeader, sentryBaggageHeader);\n }\n\n return span;\n}\n\nfunction setHeaderOnXhr(\n xhr,\n sentryTraceHeader,\n sentryBaggageHeader,\n) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader('sentry-trace', sentryTraceHeader);\n if (sentryBaggageHeader) {\n // From MDN: \"If this method is called several times with the same header, the values are merged into one single request header.\"\n // We can therefore simply set a baggage header without checking what was there before\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n}\n\nfunction getFullURL(url) {\n try {\n // By adding a base URL to new URL(), this will also work for relative urls\n // If `url` is a full URL, the base URL is ignored anyhow\n const parsed = new URL(url, WINDOW.location.origin);\n return parsed.href;\n } catch (e) {\n return undefined;\n }\n}\n\nexport { DEFAULT_TRACE_PROPAGATION_TARGETS, defaultRequestInstrumentationOptions, extractNetworkProtocol, instrumentOutgoingRequests, shouldAttachHeaders, xhrCallback };\n//# sourceMappingURL=request.js.map\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ\n\n;\n\nexport { WINDOW };\n//# sourceMappingURL=types.js.map\n","import { WINDOW } from '../../types.js';\n\n/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst getNavigationEntryFromPerformanceTiming = () => {\n // eslint-disable-next-line deprecation/deprecation\n const timing = WINDOW.performance.timing;\n // eslint-disable-next-line deprecation/deprecation\n const type = WINDOW.performance.navigation.type;\n\n const navigationEntry = {\n entryType: 'navigation',\n startTime: 0,\n type: type == 2 ? 'back_forward' : type === 1 ? 'reload' : 'navigate',\n };\n\n for (const key in timing) {\n if (key !== 'navigationStart' && key !== 'toJSON') {\n // eslint-disable-next-line deprecation/deprecation\n navigationEntry[key] = Math.max((timing[key ] ) - timing.navigationStart, 0);\n }\n }\n return navigationEntry ;\n};\n\nconst getNavigationEntry = () => {\n if (WINDOW.__WEB_VITALS_POLYFILL__) {\n return (\n WINDOW.performance &&\n ((performance.getEntriesByType && performance.getEntriesByType('navigation')[0]) ||\n getNavigationEntryFromPerformanceTiming())\n );\n } else {\n return WINDOW.performance && performance.getEntriesByType && performance.getEntriesByType('navigation')[0];\n }\n};\n\nexport { getNavigationEntry };\n//# sourceMappingURL=getNavigationEntry.js.map\n","import { WINDOW } from '../../types.js';\nimport { onHidden } from './onHidden.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = () => {\n // If the document is hidden and not prerendering, assume it was always\n // hidden and the page was loaded in the background.\n if (WINDOW.document && WINDOW.document.visibilityState) {\n firstHiddenTime = WINDOW.document.visibilityState === 'hidden' && !WINDOW.document.prerendering ? 0 : Infinity;\n }\n};\n\nconst trackChanges = () => {\n // Update the time if/when the document becomes hidden.\n onHidden(({ timeStamp }) => {\n firstHiddenTime = timeStamp;\n }, true);\n};\n\nconst getVisibilityWatcher = (\n\n) => {\n if (firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n\nexport { getVisibilityWatcher };\n//# sourceMappingURL=getVisibilityWatcher.js.map\n","import { WINDOW } from '../../types.js';\n\n/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst onHidden = (cb, once) => {\n const onHiddenOrPageHide = (event) => {\n if (event.type === 'pagehide' || WINDOW.document.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n\n if (WINDOW.document) {\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n }\n};\n\nexport { onHidden };\n//# sourceMappingURL=onHidden.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 { BaseClient, applySdkMetadata } from '@sentry/core';\nimport { getSDKSource, logger, createClientReportEnvelope, dsnToString } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { WINDOW } from './helpers.js';\nimport { createUserFeedbackEnvelope } from './userfeedback.js';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n applySdkMetadata(options, 'browser', ['browser'], sdkSource);\n\n super(options);\n\n if (options.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n // eslint-disable-next-line deprecation/deprecation\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * Sends user feedback to Sentry.\n */\n captureUserFeedback(feedback) {\n if (!this._isEnabled()) {\n DEBUG_BUILD && logger.warn('SDK not enabled, will not capture user feedback.');\n return;\n }\n\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this.getSdkMetadata(),\n dsn: this.getDsn(),\n tunnel: this.getOptions().tunnel,\n });\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n DEBUG_BUILD && logger.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n DEBUG_BUILD && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n DEBUG_BUILD && logger.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(envelope);\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.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 { getClient } from '@sentry/core';\nimport { addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject, isEvent, isParameterizedString, normalizeToSize, extractExceptionKeysForMessage } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n const client = getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n const event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception ).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex) {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n // eslint-disable-next-line deprecation/deprecation\n level = 'info',\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception) || isDOMException(exception )) {\n const domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n // eslint-disable-next-line deprecation/deprecation\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromString(\n stackParser,\n message,\n syntheticException,\n attachStacktrace,\n) {\n const event = {};\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: message, stacktrace: { frames } }],\n };\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n\nfunction getNonErrorObjectExceptionValue(\n exception,\n { isUnhandledRejection },\n) {\n const keys = extractExceptionKeysForMessage(exception);\n const captureType = isUnhandledRejection ? 'promise rejection' : 'exception';\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n }\n\n if (isEvent(exception)) {\n const className = getObjectClassName(exception);\n return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n }\n\n return `Object captured as ${captureType} with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj) {\n try {\n const prototype = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch (e) {\n // ignore errors here\n }\n}\n\nexport { eventFromError, eventFromException, eventFromMessage, eventFromPlainObject, eventFromString, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n","import '@sentry-internal/tracing';\nimport { withScope, captureException } from '@sentry/core';\nimport { GLOBAL_OBJ, getOriginalFunction, markFunctionWrapped, addNonEnumerableProperty, addExceptionTypeValue, addExceptionMechanism } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n if (typeof wrapper === 'function') {\n return wrapper;\n } else {\n // If we find that the `__sentry_wrapped__` function is not a function at the time of accessing it, it means\n // that something messed with it. In that case we want to return the originally passed function.\n return fn;\n }\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped = function () {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\nexport { WINDOW, ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","import { _optionalChain } from '@sentry/utils';\nimport { defineIntegration, convertIntegrationFnToClass } from '@sentry/core';\n\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType || (NodeType = {}));\nfunction elementClassMatchesRegex(el, regex) {\n for (let eIndex = el.classList.length; eIndex--;) {\n const className = el.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n return false;\n}\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\n if (!node)\n return -1;\n if (node.nodeType !== node.ELEMENT_NODE)\n return -1;\n if (distance > limit)\n return -1;\n if (matchPredicate(node))\n return distance;\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\n}\nfunction createMatchPredicate(className, selector) {\n return (node) => {\n const el = node;\n if (el === null)\n return false;\n try {\n if (className) {\n if (typeof className === 'string') {\n if (el.matches(`.${className}`))\n return true;\n }\n else if (elementClassMatchesRegex(el, className)) {\n return true;\n }\n }\n if (selector && el.matches(selector))\n return true;\n return false;\n }\n catch (e2) {\n return false;\n }\n };\n}\n\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\n '\\r\\n' +\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\n '\\r\\n' +\n 'or you can use record.mirror to access the mirror instance during recording.';\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n};\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === 'map') {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n },\n });\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(target, key, isRevoked\n ? d\n : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n },\n });\n return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === 'function') {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n }\n catch (e2) {\n return () => {\n };\n }\n}\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) ;\nfunction closestElementOfNode(node) {\n if (!node) {\n return null;\n }\n const el = node.nodeType === node.ELEMENT_NODE\n ? node\n : node.parentElement;\n return el;\n}\nfunction isBlocked(node, blockClass, blockSelector, unblockSelector, checkAncestors) {\n if (!node) {\n return false;\n }\n const el = closestElementOfNode(node);\n if (!el) {\n return false;\n }\n const blockedPredicate = createMatchPredicate(blockClass, blockSelector);\n if (!checkAncestors) {\n const isUnblocked = unblockSelector && el.matches(unblockSelector);\n return blockedPredicate(el) && !isUnblocked;\n }\n const blockDistance = distanceToMatch(el, blockedPredicate);\n let unblockDistance = -1;\n if (blockDistance < 0) {\n return false;\n }\n if (unblockSelector) {\n unblockDistance = distanceToMatch(el, createMatchPredicate(null, unblockSelector));\n }\n if (blockDistance > -1 && unblockDistance < 0) {\n return true;\n }\n return blockDistance < unblockDistance;\n}\nconst cachedImplementations = {};\nfunction getImplementation(name) {\n const cached = cachedImplementations[name];\n if (cached) {\n return cached;\n }\n const document = window.document;\n let impl = window[name];\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow[name]) {\n impl =\n contentWindow[name];\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n }\n }\n return (cachedImplementations[name] = impl.bind(window));\n}\nfunction onRequestAnimationFrame(...rest) {\n return getImplementation('requestAnimationFrame')(...rest);\n}\nfunction setTimeout(...rest) {\n return getImplementation('setTimeout')(...rest);\n}\n\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\n\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = ((...rest) => {\n try {\n return cb(...rest);\n }\n catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return () => {\n };\n }\n throw error;\n }\n });\n return rrwebWrapped;\n};\n\n/*\n * base64-arraybuffer 1.0.1 \n * Copyright (c) 2021 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\n\nconst canvasVarMap = new Map();\nfunction variableListFor(ctx, ctor) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nconst saveWebGLVar = (value, win, ctx) => {\n if (!value ||\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\n return;\n const name = value.constructor.name;\n const list = variableListFor(ctx, name);\n let index = list.indexOf(value);\n if (index === -1) {\n index = list.length;\n list.push(value);\n }\n return index;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx));\n }\n else if (value === null) {\n return value;\n }\n else if (value instanceof Float32Array ||\n value instanceof Float64Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Uint8Array ||\n value instanceof Uint16Array ||\n value instanceof Int16Array ||\n value instanceof Int8Array ||\n value instanceof Uint8ClampedArray) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)],\n };\n }\n else if (value instanceof ArrayBuffer) {\n const name = value.constructor.name;\n const base64 = encode(value);\n return {\n rr_type: name,\n base64,\n };\n }\n else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength,\n ],\n };\n }\n else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src,\n };\n }\n else if (value instanceof HTMLCanvasElement) {\n const name = 'HTMLImageElement';\n const src = value.toDataURL();\n return {\n rr_type: name,\n src,\n };\n }\n else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\n };\n }\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\n const name = value.constructor.name;\n const index = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name,\n index: index,\n };\n }\n return value;\n}\nconst serializeArgs = (args, win, ctx) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\nconst isInstanceOfWebGLObject = (value, win) => {\n const webGLConstructorNames = [\n 'WebGLActiveInfo',\n 'WebGLBuffer',\n 'WebGLFramebuffer',\n 'WebGLProgram',\n 'WebGLRenderbuffer',\n 'WebGLShader',\n 'WebGLShaderPrecisionFormat',\n 'WebGLTexture',\n 'WebGLUniformLocation',\n 'WebGLVertexArrayObject',\n 'WebGLVertexArrayObjectOES',\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\n};\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector, unblockSelector) {\n const handlers = [];\n const props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\n for (const prop of props2D) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\n continue;\n }\n const restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\n return function (...args) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, unblockSelector, true)) {\n setTimeout(() => {\n const recordArgs = serializeArgs(args, win, this);\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: recordArgs,\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n });\n handlers.push(restoreHandler);\n }\n catch (e) {\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\n set(v) {\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: [v],\n setter: true,\n });\n },\n });\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\n\nfunction getNormalizedContextName(contextType) {\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, setPreserveDrawingBufferToTrue) {\n const handlers = [];\n try {\n const restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\n return function (contextType, ...args) {\n if (!isBlocked(this, blockClass, blockSelector, unblockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!('__context' in this))\n this.__context = ctxName;\n if (setPreserveDrawingBufferToTrue &&\n ['webgl', 'webgl2'].includes(ctxName)) {\n if (args[0] && typeof args[0] === 'object') {\n const contextAttributes = args[0];\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n }\n else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true,\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n });\n handlers.push(restoreHandler);\n }\n catch (e) {\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, unblockSelector, mirror, win) {\n const handlers = [];\n const props = Object.getOwnPropertyNames(prototype);\n for (const prop of props) {\n if ([\n 'isContextLost',\n 'canvas',\n 'drawingBufferWidth',\n 'drawingBufferHeight',\n ].includes(prop)) {\n continue;\n }\n try {\n if (typeof prototype[prop] !== 'function') {\n continue;\n }\n const restoreHandler = patch(prototype, prop, function (original) {\n return function (...args) {\n const result = original.apply(this, args);\n saveWebGLVar(result, win, this);\n if ('tagName' in this.canvas &&\n !isBlocked(this.canvas, blockClass, blockSelector, unblockSelector, true)) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation = {\n type,\n property: prop,\n args: recordArgs,\n };\n cb(this.canvas, mutation);\n }\n return result;\n };\n });\n handlers.push(restoreHandler);\n }\n catch (e) {\n const hookHandler = hookSetter(prototype, prop, {\n set(v) {\n cb(this.canvas, {\n type,\n property: prop,\n args: [v],\n setter: true,\n });\n },\n });\n handlers.push(hookHandler);\n }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, unblockSelector, mirror) {\n const handlers = [];\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, unblockSelector, mirror, win));\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, unblockSelector, mirror, win));\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\n\nvar r = `for(var e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",t=\"undefined\"==typeof Uint8Array?[]:new Uint8Array(256),a=0;a<64;a++)t[e.charCodeAt(a)]=a;var n=function(t){var a,n=new Uint8Array(t),r=n.length,s=\"\";for(a=0;a>2],s+=e[(3&n[a])<<4|n[a+1]>>4],s+=e[(15&n[a+1])<<2|n[a+2]>>6],s+=e[63&n[a+2]];return r%3==2?s=s.substring(0,s.length-1)+\"=\":r%3==1&&(s=s.substring(0,s.length-2)+\"==\"),s};const r=new Map,s=new Map;const i=self;i.onmessage=async function(e){if(!(\"OffscreenCanvas\"in globalThis))return i.postMessage({id:e.data.id});{const{id:t,bitmap:a,width:o,height:f,maxCanvasSize:c,dataURLOptions:g}=e.data,u=async function(e,t,a){const r=e+\"-\"+t;if(\"OffscreenCanvas\"in globalThis){if(s.has(r))return s.get(r);const i=new OffscreenCanvas(e,t);i.getContext(\"2d\");const o=await i.convertToBlob(a),f=await o.arrayBuffer(),c=n(f);return s.set(r,c),c}return\"\"}(o,f,g),[h,d]=function(e,t,a){if(!a)return[e,t];const[n,r]=a;if(e<=n&&t<=r)return[e,t];let s=e,i=t;return s>n&&(i=Math.floor(n*t/e),s=n),i>r&&(s=Math.floor(r*e/t),i=r),[s,i]}(o,f,c),l=new OffscreenCanvas(h,d),w=l.getContext(\"bitmaprenderer\"),p=h===o&&d===f?a:await createImageBitmap(a,{resizeWidth:h,resizeHeight:d,resizeQuality:\"low\"});w.transferFromImageBitmap(p),a.close();const y=await l.convertToBlob(g),v=y.type,b=await y.arrayBuffer(),m=n(b);if(p.close(),!r.has(t)&&await u===m)return r.set(t,m),i.postMessage({id:t});if(r.get(t)===m)return i.postMessage({id:t});i.postMessage({id:t,type:v,base64:m,width:o,height:f}),r.set(t,m)}};`;\n\nfunction t(){const t=new Blob([r]);return URL.createObjectURL(t)}\n\nclass CanvasManager {\n reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n }\n freeze() {\n this.frozen = true;\n }\n unfreeze() {\n this.frozen = false;\n }\n lock() {\n this.locked = true;\n }\n unlock() {\n this.locked = false;\n }\n constructor(options) {\n this.pendingCanvasMutations = new Map();\n this.rafStamps = { latestId: 0, invokeId: null };\n this.frozen = false;\n this.locked = false;\n this.processMutation = (target, mutation) => {\n const newFrame = this.rafStamps.invokeId &&\n this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n };\n const { sampling = 'all', win, blockClass, blockSelector, unblockSelector, maxCanvasSize, recordCanvas, dataURLOptions, errorHandler, } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n this.options = options;\n if (errorHandler) {\n registerErrorHandler(errorHandler);\n }\n if (options.enableManualSnapshot) {\n return;\n }\n callbackWrapper(() => {\n if (recordCanvas && sampling === 'all')\n this.initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector);\n if (recordCanvas && typeof sampling === 'number')\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, {\n dataURLOptions,\n });\n })();\n }\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, options) {\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, true);\n const rafId = this.takeSnapshot(false, fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, options.dataURLOptions);\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, false);\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector);\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector, this.mirror);\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n snapshot(canvasElement) {\n const { options } = this;\n const rafId = this.takeSnapshot(true, options.sampling === 'all' ? 2 : options.sampling || 2, options.win, options.blockClass, options.blockSelector, options.unblockSelector, options.maxCanvasSize, options.dataURLOptions, canvasElement);\n this.resetObservers = () => {\n cancelAnimationFrame(rafId);\n };\n }\n takeSnapshot(isManualSnapshot, fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, dataURLOptions, canvasElement) {\n const snapshotInProgressMap = new Map();\n const worker = new Worker(t());\n worker.onmessage = (e) => {\n const data = e.data;\n const { id } = data;\n snapshotInProgressMap.set(id, false);\n if (!('base64' in data))\n return;\n const { base64, type, width, height } = data;\n this.mutationCb({\n id,\n type: CanvasContext['2D'],\n commands: [\n {\n property: 'clearRect',\n args: [0, 0, width, height],\n },\n {\n property: 'drawImage',\n args: [\n {\n rr_type: 'ImageBitmap',\n args: [\n {\n rr_type: 'Blob',\n data: [{ rr_type: 'ArrayBuffer', base64 }],\n type,\n },\n ],\n },\n 0,\n 0,\n width,\n height,\n ],\n },\n ],\n });\n };\n const timeBetweenSnapshots = 1000 / fps;\n let lastSnapshotTime = 0;\n let rafId;\n const getCanvas = (canvasElement) => {\n if (canvasElement) {\n return [canvasElement];\n }\n const matchedCanvas = [];\n win.document.querySelectorAll('canvas').forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, unblockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n return matchedCanvas;\n };\n const takeCanvasSnapshots = (timestamp) => {\n if (lastSnapshotTime &&\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n getCanvas(canvasElement).forEach((canvas) => {\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id))\n return;\n if (!canvas.width || !canvas.height)\n return;\n snapshotInProgressMap.set(id, true);\n if (!isManualSnapshot &&\n ['webgl', 'webgl2'].includes(canvas.__context)) {\n const context = canvas.getContext(canvas.__context);\n if (_optionalChain([context, 'optionalAccess', _ => _.getContextAttributes, 'call', _2 => _2(), 'optionalAccess', _3 => _3.preserveDrawingBuffer]) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n createImageBitmap(canvas)\n .then((bitmap) => {\n worker.postMessage({\n id,\n bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions,\n maxCanvasSize,\n }, [bitmap]);\n })\n .catch((error) => {\n callbackWrapper(() => {\n throw error;\n })();\n });\n });\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\n };\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\n return rafId;\n }\n startPendingCanvasMutationFlusher() {\n onRequestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp) => {\n this.rafStamps.latestId = timestamp;\n onRequestAnimationFrame(setLatestRAFTimestamp);\n };\n onRequestAnimationFrame(setLatestRAFTimestamp);\n }\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach((values, canvas) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n });\n onRequestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1)\n return;\n const values = valuesWithType.map((value) => {\n const { type, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n this.mutationCb({ id, type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n }\n}\n\nconst CANVAS_QUALITY = {\n low: {\n sampling: {\n canvas: 1,\n },\n dataURLOptions: {\n type: 'image/webp',\n quality: 0.25,\n },\n },\n medium: {\n sampling: {\n canvas: 2,\n },\n dataURLOptions: {\n type: 'image/webp',\n quality: 0.4,\n },\n },\n high: {\n sampling: {\n canvas: 4,\n },\n dataURLOptions: {\n type: 'image/webp',\n quality: 0.5,\n },\n },\n};\n\nconst INTEGRATION_NAME = 'ReplayCanvas';\nconst DEFAULT_MAX_CANVAS_SIZE = 1280;\n\n/** Exported only for type safe tests. */\nconst _replayCanvasIntegration = ((options = {}) => {\n const [maxCanvasWidth, maxCanvasHeight] = options.maxCanvasSize || [];\n const _canvasOptions = {\n quality: options.quality || 'medium',\n enableManualSnapshot: options.enableManualSnapshot,\n maxCanvasSize: [\n maxCanvasWidth ? Math.min(maxCanvasWidth, DEFAULT_MAX_CANVAS_SIZE) : DEFAULT_MAX_CANVAS_SIZE,\n maxCanvasHeight ? Math.min(maxCanvasHeight, DEFAULT_MAX_CANVAS_SIZE) : DEFAULT_MAX_CANVAS_SIZE,\n ] ,\n };\n\n let canvasManagerResolve;\n const _canvasManager = new Promise(resolve => (canvasManagerResolve = resolve));\n\n return {\n name: INTEGRATION_NAME,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setupOnce() {},\n getOptions() {\n const { quality, enableManualSnapshot, maxCanvasSize } = _canvasOptions;\n\n return {\n enableManualSnapshot,\n recordCanvas: true,\n getCanvasManager: (getCanvasManagerOptions) => {\n const manager = new CanvasManager({\n ...getCanvasManagerOptions,\n enableManualSnapshot,\n maxCanvasSize,\n errorHandler: (err) => {\n try {\n if (typeof err === 'object') {\n (err ).__rrweb__ = true;\n }\n } catch (error) {\n // ignore errors here\n // this can happen if the error is frozen or does not allow mutation for other reasons\n }\n },\n });\n canvasManagerResolve(manager);\n return manager;\n },\n ...(CANVAS_QUALITY[quality || 'medium'] || CANVAS_QUALITY.medium),\n };\n },\n async snapshot(canvasElement) {\n const canvasManager = await _canvasManager;\n canvasManager.snapshot(canvasElement);\n },\n };\n}) ;\n\n/**\n * Add this in addition to `replayIntegration()` to enable canvas recording.\n */\nconst replayCanvasIntegration = defineIntegration(_replayCanvasIntegration);\n\n/**\n * @deprecated Use `replayCanvasIntegration()` instead\n */\n// eslint-disable-next-line deprecation/deprecation\nconst ReplayCanvas = convertIntegrationFnToClass(INTEGRATION_NAME, replayCanvasIntegration)\n\n;\n\nexport { ReplayCanvas, replayCanvasIntegration };\n//# sourceMappingURL=index.js.map\n","import { GLOBAL_OBJ, getLocationHref, logger, isBrowser } from '@sentry/utils';\nimport { prepareEvent, getIsolationScope, getClient, withScope, createEventEnvelope, getCurrentScope } from '@sentry/core';\n\n// exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and feedback packages\nconst WINDOW = GLOBAL_OBJ ;\n\nconst LIGHT_BACKGROUND = '#ffffff';\nconst INHERIT = 'inherit';\nconst SUBMIT_COLOR = 'rgba(108, 95, 199, 1)';\nconst LIGHT_THEME = {\n fontFamily: \"system-ui, 'Helvetica Neue', Arial, sans-serif\",\n fontSize: '14px',\n\n background: LIGHT_BACKGROUND,\n backgroundHover: '#f6f6f7',\n foreground: '#2b2233',\n border: '1.5px solid rgba(41, 35, 47, 0.13)',\n borderRadius: '25px',\n boxShadow: '0px 4px 24px 0px rgba(43, 34, 51, 0.12)',\n\n success: '#268d75',\n error: '#df3338',\n\n submitBackground: 'rgba(88, 74, 192, 1)',\n submitBackgroundHover: SUBMIT_COLOR,\n submitBorder: SUBMIT_COLOR,\n submitOutlineFocus: '#29232f',\n submitForeground: LIGHT_BACKGROUND,\n submitForegroundHover: LIGHT_BACKGROUND,\n\n cancelBackground: 'transparent',\n cancelBackgroundHover: 'var(--background-hover)',\n cancelBorder: 'var(--border)',\n cancelOutlineFocus: 'var(--input-outline-focus)',\n cancelForeground: 'var(--foreground)',\n cancelForegroundHover: 'var(--foreground)',\n\n inputBackground: INHERIT,\n inputForeground: INHERIT,\n inputBorder: 'var(--border)',\n inputOutlineFocus: SUBMIT_COLOR,\n\n formBorderRadius: '20px',\n formContentBorderRadius: '6px',\n};\n\nconst DEFAULT_THEME = {\n light: LIGHT_THEME,\n dark: {\n ...LIGHT_THEME,\n\n background: '#29232f',\n backgroundHover: '#352f3b',\n foreground: '#ebe6ef',\n border: '1.5px solid rgba(235, 230, 239, 0.15)',\n\n success: '#2da98c',\n error: '#f55459',\n },\n};\n\nconst ACTOR_LABEL = 'Report a Bug';\nconst CANCEL_BUTTON_LABEL = 'Cancel';\nconst SUBMIT_BUTTON_LABEL = 'Send Bug Report';\nconst FORM_TITLE = 'Report a Bug';\nconst EMAIL_PLACEHOLDER = 'your.email@example.org';\nconst EMAIL_LABEL = 'Email';\nconst MESSAGE_PLACEHOLDER = \"What's the bug? What did you expect?\";\nconst MESSAGE_LABEL = 'Description';\nconst NAME_PLACEHOLDER = 'Your Name';\nconst NAME_LABEL = 'Name';\nconst IS_REQUIRED_LABEL = '(required)';\nconst SUCCESS_MESSAGE_TEXT = 'Thank you for your report!';\n\nconst FEEDBACK_WIDGET_SOURCE = 'widget';\nconst FEEDBACK_API_SOURCE = 'api';\n\n/**\n * Prepare a feedback event & enrich it with the SDK metadata.\n */\nasync function prepareFeedbackEvent({\n client,\n scope,\n event,\n}) {\n const eventHint = {};\n if (client.emit) {\n client.emit('preprocessEvent', event, eventHint);\n }\n\n const preparedEvent = (await prepareEvent(\n client.getOptions(),\n event,\n eventHint,\n scope,\n client,\n getIsolationScope(),\n )) ;\n\n if (preparedEvent === null) {\n // Taken from baseclient's `_processEvent` method, where this is handled for errors/transactions\n client.recordDroppedEvent('event_processor', 'feedback', event);\n return null;\n }\n\n // This normally happens in browser client \"_prepareEvent\"\n // but since we do not use this private method from the client, but rather the plain import\n // we need to do this manually.\n preparedEvent.platform = preparedEvent.platform || 'javascript';\n\n return preparedEvent;\n}\n\n/**\n * Send feedback using transport\n */\nasync function sendFeedbackRequest(\n { feedback: { message, email, name, source, url } },\n { includeReplay = true } = {},\n) {\n const client = getClient();\n const transport = client && client.getTransport();\n const dsn = client && client.getDsn();\n\n if (!client || !transport || !dsn) {\n return;\n }\n\n const baseEvent = {\n contexts: {\n feedback: {\n contact_email: email,\n name,\n message,\n url,\n source,\n },\n },\n type: 'feedback',\n };\n\n return withScope(async scope => {\n // No use for breadcrumbs in feedback\n scope.clearBreadcrumbs();\n\n if ([FEEDBACK_API_SOURCE, FEEDBACK_WIDGET_SOURCE].includes(String(source))) {\n scope.setLevel('info');\n }\n\n const feedbackEvent = await prepareFeedbackEvent({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n scope: scope ,\n client,\n event: baseEvent,\n });\n\n if (!feedbackEvent) {\n return;\n }\n\n if (client.emit) {\n client.emit('beforeSendFeedback', feedbackEvent, { includeReplay: Boolean(includeReplay) });\n }\n\n const envelope = createEventEnvelope(feedbackEvent, dsn, client.getOptions()._metadata, client.getOptions().tunnel);\n\n let response;\n\n try {\n response = await transport.send(envelope);\n } catch (err) {\n const error = new Error('Unable to send Feedback');\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch (e) {\n // nothing to do\n }\n throw error;\n }\n\n // TODO (v8): we can remove this guard once transport.send's type signature doesn't include void anymore\n if (!response) {\n return;\n }\n\n // Require valid status codes, otherwise can assume feedback was not sent successfully\n if (typeof response.statusCode === 'number' && (response.statusCode < 200 || response.statusCode >= 300)) {\n throw new Error('Unable to send Feedback');\n }\n\n return response;\n });\n}\n\n/*\n * For reference, the fully built event looks something like this:\n * {\n * \"type\": \"feedback\",\n * \"event_id\": \"d2132d31b39445f1938d7e21b6bf0ec4\",\n * \"timestamp\": 1597977777.6189718,\n * \"dist\": \"1.12\",\n * \"platform\": \"javascript\",\n * \"environment\": \"production\",\n * \"release\": 42,\n * \"tags\": {\"transaction\": \"/organizations/:orgId/performance/:eventSlug/\"},\n * \"sdk\": {\"name\": \"name\", \"version\": \"version\"},\n * \"user\": {\n * \"id\": \"123\",\n * \"username\": \"user\",\n * \"email\": \"user@site.com\",\n * \"ip_address\": \"192.168.11.12\",\n * },\n * \"request\": {\n * \"url\": None,\n * \"headers\": {\n * \"user-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15\"\n * },\n * },\n * \"contexts\": {\n * \"feedback\": {\n * \"message\": \"test message\",\n * \"contact_email\": \"test@example.com\",\n * \"type\": \"feedback\",\n * },\n * \"trace\": {\n * \"trace_id\": \"4C79F60C11214EB38604F4AE0781BFB2\",\n * \"span_id\": \"FA90FDEAD5F74052\",\n * \"type\": \"trace\",\n * },\n * \"replay\": {\n * \"replay_id\": \"e2d42047b1c5431c8cba85ee2a8ab25d\",\n * },\n * },\n * }\n */\n\n/**\n * Public API to send a Feedback item to Sentry\n */\nfunction sendFeedback(\n { name, email, message, source = FEEDBACK_API_SOURCE, url = getLocationHref() },\n options = {},\n) {\n if (!message) {\n throw new Error('Unable to submit feedback with empty message');\n }\n\n return sendFeedbackRequest(\n {\n feedback: {\n name,\n email,\n message,\n url,\n source,\n },\n },\n options,\n );\n}\n\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\n/**\n * Quick and dirty deep merge for the Feedback integration options\n */\nfunction mergeOptions(\n defaultOptions,\n optionOverrides,\n) {\n return {\n ...defaultOptions,\n ...optionOverrides,\n themeDark: {\n ...defaultOptions.themeDark,\n ...optionOverrides.themeDark,\n },\n themeLight: {\n ...defaultOptions.themeLight,\n ...optionOverrides.themeLight,\n },\n };\n}\n\n/**\n * Creates