{"version":3,"file":"js/chunk-vendors.2fc8b381.js","mappings":"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","sources":["webpack://cocoportal/./node_modules/@daily-co/daily-js/dist/daily-esm.js","webpack://cocoportal/../../../src/browser/backgroundtab.ts","webpack://cocoportal/../../../src/browser/router.ts","webpack://cocoportal/../../../src/browser/browsertracing.ts","webpack://cocoportal/../../../../../src/browser/web-vitals/lib/bindReporter.ts","webpack://cocoportal/../../../../../src/browser/web-vitals/lib/generateUniqueID.ts","webpack://cocoportal/../../../../../src/browser/web-vitals/lib/getActivationStart.ts","webpack://cocoportal/../../../../../src/browser/web-vitals/lib/initMetric.ts","webpack://cocoportal/../../../../../src/browser/web-vitals/lib/observe.ts","webpack://cocoportal/../../../../src/browser/web-vitals/getCLS.ts","webpack://cocoportal/../../../../src/browser/web-vitals/getFID.ts","webpack://cocoportal/../../../../../src/browser/web-vitals/lib/polyfills/interactionCountPolyfill.ts","webpack://cocoportal/../../../../src/browser/web-vitals/getINP.ts","webpack://cocoportal/../../../../src/browser/web-vitals/getLCP.ts","webpack://cocoportal/../../../../src/browser/web-vitals/onTTFB.ts","webpack://cocoportal/../../../src/browser/instrument.ts","webpack://cocoportal/../span.ts","webpack://cocoportal/../../../src/tracing/measurement.ts","webpack://cocoportal/../../../../src/browser/metrics/utils.ts","webpack://cocoportal/../../../../src/browser/metrics/index.ts","webpack://cocoportal/../../../src/common/fetch.ts","webpack://cocoportal/../../../src/browser/request.ts","webpack://cocoportal/../../../src/browser/types.ts","webpack://cocoportal/../../../../../src/browser/web-vitals/lib/getNavigationEntry.ts","webpack://cocoportal/../../../../../src/browser/web-vitals/lib/getVisibilityWatcher.ts","webpack://cocoportal/../../../../../src/browser/web-vitals/lib/onHidden.ts","webpack://cocoportal/../../../src/common/debug-build.ts","webpack://cocoportal/../constants.ts","webpack://cocoportal/../debug-build.ts","webpack://cocoportal/../exports.ts","webpack://cocoportal/../eventProcessors.ts","webpack://cocoportal/../session.ts","webpack://cocoportal/../../../src/utils/applyScopeDataToEvent.ts","webpack://cocoportal/../scope.ts","webpack://cocoportal/../version.ts","webpack://cocoportal/../hub.ts","webpack://cocoportal/../../../src/metrics/metric-summary.ts","webpack://cocoportal/../semanticAttributes.ts","webpack://cocoportal/../../../src/tracing/dynamicSamplingContext.ts","webpack://cocoportal/../../../src/tracing/errors.ts","webpack://cocoportal/../../../src/tracing/hubextensions.ts","webpack://cocoportal/../../../src/tracing/idletransaction.ts","webpack://cocoportal/../../../src/tracing/sampling.ts","webpack://cocoportal/../../../src/tracing/span.ts","webpack://cocoportal/../../../src/tracing/spanstatus.ts","webpack://cocoportal/../../../src/tracing/trace.ts","webpack://cocoportal/../../../src/tracing/transaction.ts","webpack://cocoportal/../../../src/tracing/utils.ts","webpack://cocoportal/../../../src/utils/getRootSpan.ts","webpack://cocoportal/../../../src/utils/hasTracingEnabled.ts","webpack://cocoportal/../../../src/utils/spanUtils.ts","webpack://cocoportal/../../../src/buildPolyfills/_nullishCoalesce.ts","webpack://cocoportal/../../../src/utils/prepareEvent.ts","webpack://cocoportal/../../../src/utils/isSentryRequestUrl.ts","webpack://cocoportal/../baseclient.ts","webpack://cocoportal/../../../src/constants.ts","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/utils.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/types/dist/rrweb-types.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/mutation.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/error-handler.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observer.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/cross-origin-iframe-mirror.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/iframe-manager.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/stylesheet-manager.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/processed-node-manager.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/index.js","webpack://cocoportal/../../../src/types/rrweb.ts","webpack://cocoportal/../../../src/util/timestamp.ts","webpack://cocoportal/../../../src/coreHandlers/util/addBreadcrumbEvent.ts","webpack://cocoportal/../../../src/coreHandlers/util/domUtils.ts","webpack://cocoportal/../../../src/coreHandlers/util/onWindowOpen.ts","webpack://cocoportal/../../../src/coreHandlers/handleClick.ts","webpack://cocoportal/../../../src/util/createBreadcrumb.ts","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb-snapshot/es/rrweb-snapshot.js","webpack://cocoportal/../../../src/coreHandlers/util/getAttributesToRecord.ts","webpack://cocoportal/../../../src/coreHandlers/handleDom.ts","webpack://cocoportal/../../../src/coreHandlers/handleKeyboardEvent.ts","webpack://cocoportal/../../../src/util/createPerformanceEntries.ts","webpack://cocoportal/../../../src/coreHandlers/performanceObserver.ts","webpack://cocoportal/../../../src/debug-build.ts","webpack://cocoportal/../../../../replay-worker/build/npm/esm/worker.ts","webpack://cocoportal/../../../../replay-worker/build/npm/esm/index.js","webpack://cocoportal/../../../src/util/log.ts","webpack://cocoportal/../../../src/eventBuffer/error.ts","webpack://cocoportal/../../../src/eventBuffer/EventBufferArray.ts","webpack://cocoportal/../../../src/eventBuffer/WorkerHandler.ts","webpack://cocoportal/../../../src/eventBuffer/EventBufferCompressionWorker.ts","webpack://cocoportal/../../../src/eventBuffer/EventBufferProxy.ts","webpack://cocoportal/../../../src/eventBuffer/index.ts","webpack://cocoportal/../../../src/util/hasSessionStorage.ts","webpack://cocoportal/../../../src/session/clearSession.ts","webpack://cocoportal/../../../src/util/isSampled.ts","webpack://cocoportal/../../../src/session/Session.ts","webpack://cocoportal/../../../src/session/saveSession.ts","webpack://cocoportal/../../../src/session/createSession.ts","webpack://cocoportal/../../../src/session/fetchSession.ts","webpack://cocoportal/../../../src/util/isExpired.ts","webpack://cocoportal/../../../src/util/isSessionExpired.ts","webpack://cocoportal/../../../src/session/shouldRefreshSession.ts","webpack://cocoportal/../../../src/session/loadOrCreateSession.ts","webpack://cocoportal/../../../src/util/addEvent.ts","webpack://cocoportal/../../../src/util/eventUtils.ts","webpack://cocoportal/../../../src/coreHandlers/handleAfterSendEvent.ts","webpack://cocoportal/../../../src/coreHandlers/handleBeforeSendEvent.ts","webpack://cocoportal/../../../src/util/isRrwebError.ts","webpack://cocoportal/../../../src/coreHandlers/util/addFeedbackBreadcrumb.ts","webpack://cocoportal/../../../src/coreHandlers/util/shouldSampleForBufferEvent.ts","webpack://cocoportal/../../../src/coreHandlers/handleGlobalEvent.ts","webpack://cocoportal/../../../src/util/createPerformanceSpans.ts","webpack://cocoportal/../../../src/coreHandlers/handleHistory.ts","webpack://cocoportal/../../../src/util/shouldFilterRequest.ts","webpack://cocoportal/../../../src/coreHandlers/util/addNetworkBreadcrumb.ts","webpack://cocoportal/../../../src/coreHandlers/handleFetch.ts","webpack://cocoportal/../../../src/coreHandlers/handleXhr.ts","webpack://cocoportal/../../../src/coreHandlers/util/networkUtils.ts","webpack://cocoportal/../../../src/coreHandlers/util/fetchUtils.ts","webpack://cocoportal/../../../src/coreHandlers/util/xhrUtils.ts","webpack://cocoportal/../../../src/coreHandlers/handleNetworkBreadcrumbs.ts","webpack://cocoportal/../../../src/coreHandlers/handleScope.ts","webpack://cocoportal/../../../src/util/addGlobalListeners.ts","webpack://cocoportal/../../../src/util/addMemoryEntry.ts","webpack://cocoportal/../../../src/util/debounce.ts","webpack://cocoportal/../../../src/util/handleRecordingEmit.ts","webpack://cocoportal/../../../src/util/createReplayEnvelope.ts","webpack://cocoportal/../../../src/util/prepareRecordingData.ts","webpack://cocoportal/../../../src/util/prepareReplayEvent.ts","webpack://cocoportal/../../../src/util/sendReplayRequest.ts","webpack://cocoportal/../../../src/util/sendReplay.ts","webpack://cocoportal/../../../src/util/throttle.ts","webpack://cocoportal/../../../src/replay.ts","webpack://cocoportal/../../../src/util/getPrivacyOptions.ts","webpack://cocoportal/../../../src/util/maskAttribute.ts","webpack://cocoportal/../../../src/integration.ts","webpack://cocoportal/../../../src/util/getReplay.ts","webpack://cocoportal/../aggregate-errors.ts","webpack://cocoportal/../baggage.ts","webpack://cocoportal/../browser.ts","webpack://cocoportal/../../../src/buildPolyfills/_optionalChain.ts","webpack://cocoportal/../dsn.ts","webpack://cocoportal/../env.ts","webpack://cocoportal/../envelope.ts","webpack://cocoportal/../error.ts","webpack://cocoportal/../../../src/instrument/_handlers.ts","webpack://cocoportal/../../../src/instrument/console.ts","webpack://cocoportal/../../../src/instrument/dom.ts","webpack://cocoportal/../../../src/instrument/fetch.ts","webpack://cocoportal/../../../src/instrument/globalError.ts","webpack://cocoportal/../../../src/instrument/globalUnhandledRejection.ts","webpack://cocoportal/../../../src/vendor/supportsHistory.ts","webpack://cocoportal/../../../src/instrument/history.ts","webpack://cocoportal/../../../src/instrument/xhr.ts","webpack://cocoportal/../is.ts","webpack://cocoportal/../isBrowser.ts","webpack://cocoportal/../logger.ts","webpack://cocoportal/../misc.ts","webpack://cocoportal/../node.ts","webpack://cocoportal/../memo.ts","webpack://cocoportal/../normalize.ts","webpack://cocoportal/../object.ts","webpack://cocoportal/../ratelimit.ts","webpack://cocoportal/../severity.ts","webpack://cocoportal/../stacktrace.ts","webpack://cocoportal/../string.ts","webpack://cocoportal/../supports.ts","webpack://cocoportal/../syncpromise.ts","webpack://cocoportal/../time.ts","webpack://cocoportal/../tracing.ts","webpack://cocoportal/../url.ts","webpack://cocoportal/../worldwide.ts","webpack://cocoportal/../errorhandler.ts","webpack://cocoportal/../eventbuilder.ts","webpack://cocoportal/../../../src/integrations/linkederrors.ts","webpack://cocoportal/../index.ts","webpack://cocoportal/../metadata.ts","webpack://cocoportal/../../../src/integrations/metadata.ts","webpack://cocoportal/../../../src/transports/multiplexed.ts","webpack://cocoportal/../../../src/metrics/constants.ts","webpack://cocoportal/../../../src/metrics/instance.ts","webpack://cocoportal/../../../src/metrics/browser-aggregator.ts","webpack://cocoportal/../../../src/metrics/integration.ts","webpack://cocoportal/../../../src/metrics/exports.ts","webpack://cocoportal/../../../src/utils/parameterize.ts","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/serialize-args.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb-worker/es/rrweb-worker/image-bitmap-data-url-worker.js","webpack://cocoportal/../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb-worker/es/rrweb-worker/index.js","webpack://cocoportal/../../../src/canvas.ts","webpack://cocoportal/../../../src/util/prepareFeedbackEvent.ts","webpack://cocoportal/../../../src/util/sendFeedbackRequest.ts","webpack://cocoportal/../../../src/sendFeedback.ts","webpack://cocoportal/../../../src/util/mergeOptions.ts","webpack://cocoportal/../../../src/widget/Actor.css.ts","webpack://cocoportal/../../../src/widget/Dialog.css.ts","webpack://cocoportal/../../../src/widget/Main.css.ts","webpack://cocoportal/../../../src/widget/createShadowHost.ts","webpack://cocoportal/../../../src/util/handleFeedbackSubmit.ts","webpack://cocoportal/../../../src/util/setAttributesNS.ts","webpack://cocoportal/../../../src/widget/Icon.ts","webpack://cocoportal/../../../src/widget/util/createElement.ts","webpack://cocoportal/../../../src/widget/Actor.ts","webpack://cocoportal/../../../src/widget/SubmitButton.ts","webpack://cocoportal/../../../src/widget/Form.ts","webpack://cocoportal/../../../src/widget/Logo.ts","webpack://cocoportal/../../../src/widget/Dialog.ts","webpack://cocoportal/../../../src/widget/SuccessIcon.ts","webpack://cocoportal/../../../src/widget/SuccessMessage.ts","webpack://cocoportal/../../../src/widget/createWidget.ts","webpack://cocoportal/../integration.ts","webpack://cocoportal/../../../src/captureconsole.ts","webpack://cocoportal/../../../src/contextlines.ts","webpack://cocoportal/../../../src/debug.ts","webpack://cocoportal/../../../src/dedupe.ts","webpack://cocoportal/../../../src/extraerrordata.ts","webpack://cocoportal/../../../src/httpclient.ts","webpack://cocoportal/../../../src/reportingobserver.ts","webpack://cocoportal/../path.ts","webpack://cocoportal/../../../src/rewriteframes.ts","webpack://cocoportal/../../../src/sessiontiming.ts","webpack://cocoportal/../../../src/browser/browserTracingIntegration.ts","webpack://cocoportal/../../../src/transports/offline.ts","webpack://cocoportal/../../../../src/transports/offline.ts","webpack://cocoportal/../../../../src/profiling/utils.ts","webpack://cocoportal/../../../../src/profiling/hubextensions.ts","webpack://cocoportal/../../../../src/profiling/integration.ts","webpack://cocoportal/../../../src/index.ts","webpack://cocoportal/../browserTracingIntegration.ts","webpack://cocoportal/../router.ts","webpack://cocoportal/../sdk.ts","webpack://cocoportal/../../../src/vendor/components.ts","webpack://cocoportal/../../../src/utils/sdkMetadata.ts","webpack://cocoportal/../clientreport.ts","webpack://cocoportal/../../../src/client.ts","webpack://cocoportal/../../../src/eventbuilder.ts","webpack://cocoportal/../../../src/helpers.ts","webpack://cocoportal/../../../../src/integrations/breadcrumbs.ts","webpack://cocoportal/../../../../src/integrations/dedupe.ts","webpack://cocoportal/../../../../src/integrations/globalhandlers.ts","webpack://cocoportal/../../../../src/integrations/httpcontext.ts","webpack://cocoportal/../../../../src/integrations/linkederrors.ts","webpack://cocoportal/../../../../src/integrations/trycatch.ts","webpack://cocoportal/../../../src/sdk.ts","webpack://cocoportal/../../../src/stack-parsers.ts","webpack://cocoportal/../../../../src/transports/utils.ts","webpack://cocoportal/../../../../src/transports/fetch.ts","webpack://cocoportal/../../../../src/transports/xhr.ts","webpack://cocoportal/../../../src/userfeedback.ts","webpack://cocoportal/../api.ts","webpack://cocoportal/../../../src/metrics/envelope.ts","webpack://cocoportal/../../../src/integrations/functiontostring.ts","webpack://cocoportal/../../../src/integrations/inboundfilters.ts","webpack://cocoportal/../../../src/metrics/utils.ts","webpack://cocoportal/../../../src/utils/handleCallbackErrors.ts","webpack://cocoportal/../promisebuffer.ts","webpack://cocoportal/../../../src/transports/base.ts","webpack://cocoportal/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://cocoportal/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://cocoportal/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://cocoportal/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://cocoportal/./node_modules/lodash/lodash.js","webpack://cocoportal/./node_modules/vue-confetti-explosion/dist/confetti-explosion.esm.js","webpack://cocoportal/./node_modules/vue-loader/dist/exportHelper.js","webpack://cocoportal/./node_modules/vue3-cookies/dist/index.js","webpack://cocoportal/./node_modules/core-js/internals/a-callable.js","webpack://cocoportal/./node_modules/core-js/internals/a-possible-prototype.js","webpack://cocoportal/./node_modules/core-js/internals/a-set.js","webpack://cocoportal/./node_modules/core-js/internals/add-to-unscopables.js","webpack://cocoportal/./node_modules/core-js/internals/an-instance.js","webpack://cocoportal/./node_modules/core-js/internals/an-object.js","webpack://cocoportal/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://cocoportal/./node_modules/core-js/internals/array-buffer-byte-length.js","webpack://cocoportal/./node_modules/core-js/internals/array-buffer-is-detached.js","webpack://cocoportal/./node_modules/core-js/internals/array-buffer-not-detached.js","webpack://cocoportal/./node_modules/core-js/internals/array-buffer-transfer.js","webpack://cocoportal/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://cocoportal/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://cocoportal/./node_modules/core-js/internals/array-includes.js","webpack://cocoportal/./node_modules/core-js/internals/array-set-length.js","webpack://cocoportal/./node_modules/core-js/internals/array-slice.js","webpack://cocoportal/./node_modules/core-js/internals/array-to-reversed.js","webpack://cocoportal/./node_modules/core-js/internals/array-with.js","webpack://cocoportal/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://cocoportal/./node_modules/core-js/internals/classof-raw.js","webpack://cocoportal/./node_modules/core-js/internals/classof.js","webpack://cocoportal/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://cocoportal/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://cocoportal/./node_modules/core-js/internals/create-iter-result-object.js","webpack://cocoportal/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://cocoportal/./node_modules/core-js/internals/create-property-descriptor.js","webpack://cocoportal/./node_modules/core-js/internals/create-property.js","webpack://cocoportal/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://cocoportal/./node_modules/core-js/internals/define-built-in.js","webpack://cocoportal/./node_modules/core-js/internals/define-built-ins.js","webpack://cocoportal/./node_modules/core-js/internals/define-global-property.js","webpack://cocoportal/./node_modules/core-js/internals/descriptors.js","webpack://cocoportal/./node_modules/core-js/internals/detach-transferable.js","webpack://cocoportal/./node_modules/core-js/internals/document-create-element.js","webpack://cocoportal/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://cocoportal/./node_modules/core-js/internals/dom-exception-constants.js","webpack://cocoportal/./node_modules/core-js/internals/enum-bug-keys.js","webpack://cocoportal/./node_modules/core-js/internals/environment-is-ios.js","webpack://cocoportal/./node_modules/core-js/internals/environment-is-node.js","webpack://cocoportal/./node_modules/core-js/internals/environment-user-agent.js","webpack://cocoportal/./node_modules/core-js/internals/environment-v8-version.js","webpack://cocoportal/./node_modules/core-js/internals/environment.js","webpack://cocoportal/./node_modules/core-js/internals/error-stack-clear.js","webpack://cocoportal/./node_modules/core-js/internals/export.js","webpack://cocoportal/./node_modules/core-js/internals/fails.js","webpack://cocoportal/./node_modules/core-js/internals/function-apply.js","webpack://cocoportal/./node_modules/core-js/internals/function-bind-context.js","webpack://cocoportal/./node_modules/core-js/internals/function-bind-native.js","webpack://cocoportal/./node_modules/core-js/internals/function-call.js","webpack://cocoportal/./node_modules/core-js/internals/function-name.js","webpack://cocoportal/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://cocoportal/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://cocoportal/./node_modules/core-js/internals/function-uncurry-this.js","webpack://cocoportal/./node_modules/core-js/internals/get-built-in-node-module.js","webpack://cocoportal/./node_modules/core-js/internals/get-built-in-prototype-method.js","webpack://cocoportal/./node_modules/core-js/internals/get-built-in.js","webpack://cocoportal/./node_modules/core-js/internals/get-iterator-direct.js","webpack://cocoportal/./node_modules/core-js/internals/get-iterator-flattenable.js","webpack://cocoportal/./node_modules/core-js/internals/get-iterator-method.js","webpack://cocoportal/./node_modules/core-js/internals/get-iterator.js","webpack://cocoportal/./node_modules/core-js/internals/get-method.js","webpack://cocoportal/./node_modules/core-js/internals/get-set-record.js","webpack://cocoportal/./node_modules/core-js/internals/global-this.js","webpack://cocoportal/./node_modules/core-js/internals/has-own-property.js","webpack://cocoportal/./node_modules/core-js/internals/hidden-keys.js","webpack://cocoportal/./node_modules/core-js/internals/html.js","webpack://cocoportal/./node_modules/core-js/internals/ie8-dom-define.js","webpack://cocoportal/./node_modules/core-js/internals/indexed-object.js","webpack://cocoportal/./node_modules/core-js/internals/inherit-if-required.js","webpack://cocoportal/./node_modules/core-js/internals/inspect-source.js","webpack://cocoportal/./node_modules/core-js/internals/internal-state.js","webpack://cocoportal/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://cocoportal/./node_modules/core-js/internals/is-array.js","webpack://cocoportal/./node_modules/core-js/internals/is-big-int-array.js","webpack://cocoportal/./node_modules/core-js/internals/is-callable.js","webpack://cocoportal/./node_modules/core-js/internals/is-forced.js","webpack://cocoportal/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://cocoportal/./node_modules/core-js/internals/is-object.js","webpack://cocoportal/./node_modules/core-js/internals/is-possible-prototype.js","webpack://cocoportal/./node_modules/core-js/internals/is-pure.js","webpack://cocoportal/./node_modules/core-js/internals/is-symbol.js","webpack://cocoportal/./node_modules/core-js/internals/iterate-simple.js","webpack://cocoportal/./node_modules/core-js/internals/iterate.js","webpack://cocoportal/./node_modules/core-js/internals/iterator-close.js","webpack://cocoportal/./node_modules/core-js/internals/iterator-create-proxy.js","webpack://cocoportal/./node_modules/core-js/internals/iterator-map.js","webpack://cocoportal/./node_modules/core-js/internals/iterators-core.js","webpack://cocoportal/./node_modules/core-js/internals/iterators.js","webpack://cocoportal/./node_modules/core-js/internals/length-of-array-like.js","webpack://cocoportal/./node_modules/core-js/internals/make-built-in.js","webpack://cocoportal/./node_modules/core-js/internals/math-trunc.js","webpack://cocoportal/./node_modules/core-js/internals/normalize-string-argument.js","webpack://cocoportal/./node_modules/core-js/internals/not-a-nan.js","webpack://cocoportal/./node_modules/core-js/internals/object-create.js","webpack://cocoportal/./node_modules/core-js/internals/object-define-properties.js","webpack://cocoportal/./node_modules/core-js/internals/object-define-property.js","webpack://cocoportal/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://cocoportal/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://cocoportal/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://cocoportal/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://cocoportal/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://cocoportal/./node_modules/core-js/internals/object-keys-internal.js","webpack://cocoportal/./node_modules/core-js/internals/object-keys.js","webpack://cocoportal/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://cocoportal/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://cocoportal/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://cocoportal/./node_modules/core-js/internals/own-keys.js","webpack://cocoportal/./node_modules/core-js/internals/regexp-flags.js","webpack://cocoportal/./node_modules/core-js/internals/require-object-coercible.js","webpack://cocoportal/./node_modules/core-js/internals/schedulers-fix.js","webpack://cocoportal/./node_modules/core-js/internals/set-clone.js","webpack://cocoportal/./node_modules/core-js/internals/set-difference.js","webpack://cocoportal/./node_modules/core-js/internals/set-helpers.js","webpack://cocoportal/./node_modules/core-js/internals/set-intersection.js","webpack://cocoportal/./node_modules/core-js/internals/set-is-disjoint-from.js","webpack://cocoportal/./node_modules/core-js/internals/set-is-subset-of.js","webpack://cocoportal/./node_modules/core-js/internals/set-is-superset-of.js","webpack://cocoportal/./node_modules/core-js/internals/set-iterate.js","webpack://cocoportal/./node_modules/core-js/internals/set-method-accept-set-like.js","webpack://cocoportal/./node_modules/core-js/internals/set-size.js","webpack://cocoportal/./node_modules/core-js/internals/set-symmetric-difference.js","webpack://cocoportal/./node_modules/core-js/internals/set-union.js","webpack://cocoportal/./node_modules/core-js/internals/shared-key.js","webpack://cocoportal/./node_modules/core-js/internals/shared-store.js","webpack://cocoportal/./node_modules/core-js/internals/shared.js","webpack://cocoportal/./node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack://cocoportal/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://cocoportal/./node_modules/core-js/internals/task.js","webpack://cocoportal/./node_modules/core-js/internals/to-absolute-index.js","webpack://cocoportal/./node_modules/core-js/internals/to-big-int.js","webpack://cocoportal/./node_modules/core-js/internals/to-index.js","webpack://cocoportal/./node_modules/core-js/internals/to-indexed-object.js","webpack://cocoportal/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://cocoportal/./node_modules/core-js/internals/to-length.js","webpack://cocoportal/./node_modules/core-js/internals/to-object.js","webpack://cocoportal/./node_modules/core-js/internals/to-positive-integer.js","webpack://cocoportal/./node_modules/core-js/internals/to-primitive.js","webpack://cocoportal/./node_modules/core-js/internals/to-property-key.js","webpack://cocoportal/./node_modules/core-js/internals/to-string-tag-support.js","webpack://cocoportal/./node_modules/core-js/internals/to-string.js","webpack://cocoportal/./node_modules/core-js/internals/try-to-string.js","webpack://cocoportal/./node_modules/core-js/internals/uid.js","webpack://cocoportal/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://cocoportal/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://cocoportal/./node_modules/core-js/internals/validate-arguments-length.js","webpack://cocoportal/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://cocoportal/./node_modules/core-js/internals/well-known-symbol.js","webpack://cocoportal/./node_modules/core-js/modules/es.array-buffer.detached.js","webpack://cocoportal/./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js","webpack://cocoportal/./node_modules/core-js/modules/es.array-buffer.transfer.js","webpack://cocoportal/./node_modules/core-js/modules/es.array.push.js","webpack://cocoportal/./node_modules/core-js/modules/es.array.to-reversed.js","webpack://cocoportal/./node_modules/core-js/modules/es.array.to-sorted.js","webpack://cocoportal/./node_modules/core-js/modules/es.array.to-spliced.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.constructor.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.drop.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.every.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.filter.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.find.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.flat-map.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.for-each.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.map.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.reduce.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.some.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.take.js","webpack://cocoportal/./node_modules/core-js/modules/es.iterator.to-array.js","webpack://cocoportal/./node_modules/core-js/modules/es.regexp.flags.js","webpack://cocoportal/./node_modules/core-js/modules/es.set.difference.v2.js","webpack://cocoportal/./node_modules/core-js/modules/es.set.intersection.v2.js","webpack://cocoportal/./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js","webpack://cocoportal/./node_modules/core-js/modules/es.set.is-subset-of.v2.js","webpack://cocoportal/./node_modules/core-js/modules/es.set.is-superset-of.v2.js","webpack://cocoportal/./node_modules/core-js/modules/es.set.symmetric-difference.v2.js","webpack://cocoportal/./node_modules/core-js/modules/es.set.union.v2.js","webpack://cocoportal/./node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack://cocoportal/./node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack://cocoportal/./node_modules/core-js/modules/es.typed-array.with.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.constructor.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.drop.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.every.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.filter.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.find.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.flat-map.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.for-each.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.map.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.reduce.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.some.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.take.js","webpack://cocoportal/./node_modules/core-js/modules/esnext.iterator.to-array.js","webpack://cocoportal/./node_modules/core-js/modules/web.clear-immediate.js","webpack://cocoportal/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://cocoportal/./node_modules/core-js/modules/web.immediate.js","webpack://cocoportal/./node_modules/core-js/modules/web.set-immediate.js","webpack://cocoportal/./node_modules/core-js/modules/web.url-search-params.delete.js","webpack://cocoportal/./node_modules/core-js/modules/web.url-search-params.has.js","webpack://cocoportal/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://cocoportal/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://cocoportal/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://cocoportal/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://cocoportal/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://cocoportal/./node_modules/@vueuse/shared/index.mjs","webpack://cocoportal/./node_modules/@vueuse/core/index.mjs","webpack://cocoportal/./node_modules/axios/lib/helpers/bind.js","webpack://cocoportal/./node_modules/axios/lib/utils.js","webpack://cocoportal/./node_modules/axios/lib/core/AxiosError.js","webpack://cocoportal/./node_modules/axios/lib/helpers/null.js","webpack://cocoportal/./node_modules/axios/lib/helpers/toFormData.js","webpack://cocoportal/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://cocoportal/./node_modules/axios/lib/helpers/buildURL.js","webpack://cocoportal/./node_modules/axios/lib/core/InterceptorManager.js","webpack://cocoportal/./node_modules/axios/lib/defaults/transitional.js","webpack://cocoportal/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://cocoportal/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://cocoportal/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://cocoportal/./node_modules/axios/lib/platform/browser/index.js","webpack://cocoportal/./node_modules/axios/lib/platform/common/utils.js","webpack://cocoportal/./node_modules/axios/lib/platform/index.js","webpack://cocoportal/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://cocoportal/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://cocoportal/./node_modules/axios/lib/defaults/index.js","webpack://cocoportal/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://cocoportal/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://cocoportal/./node_modules/axios/lib/core/transformData.js","webpack://cocoportal/./node_modules/axios/lib/cancel/isCancel.js","webpack://cocoportal/./node_modules/axios/lib/cancel/CanceledError.js","webpack://cocoportal/./node_modules/axios/lib/core/settle.js","webpack://cocoportal/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://cocoportal/./node_modules/axios/lib/helpers/speedometer.js","webpack://cocoportal/./node_modules/axios/lib/helpers/throttle.js","webpack://cocoportal/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://cocoportal/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://cocoportal/./node_modules/axios/lib/helpers/cookies.js","webpack://cocoportal/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://cocoportal/./node_modules/axios/lib/helpers/combineURLs.js","webpack://cocoportal/./node_modules/axios/lib/core/buildFullPath.js","webpack://cocoportal/./node_modules/axios/lib/core/mergeConfig.js","webpack://cocoportal/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://cocoportal/./node_modules/axios/lib/adapters/xhr.js","webpack://cocoportal/./node_modules/axios/lib/helpers/composeSignals.js","webpack://cocoportal/./node_modules/axios/lib/helpers/trackStream.js","webpack://cocoportal/./node_modules/axios/lib/adapters/fetch.js","webpack://cocoportal/./node_modules/axios/lib/adapters/adapters.js","webpack://cocoportal/./node_modules/axios/lib/core/dispatchRequest.js","webpack://cocoportal/./node_modules/axios/lib/env/data.js","webpack://cocoportal/./node_modules/axios/lib/helpers/validator.js","webpack://cocoportal/./node_modules/axios/lib/core/Axios.js","webpack://cocoportal/./node_modules/axios/lib/cancel/CancelToken.js","webpack://cocoportal/./node_modules/axios/lib/helpers/spread.js","webpack://cocoportal/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://cocoportal/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://cocoportal/./node_modules/axios/lib/axios.js","webpack://cocoportal/./node_modules/vue-router/dist/vue-router.mjs"],"sourcesContent":["function e(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function t(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(e){return n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},n(e)}function r(e){var t=function(e,t){if(\"object\"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||\"default\");if(\"object\"!==n(i))return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"===n(t)?t:String(t)}function i(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&a.length>i&&!a.warned){a.warned=!0;var c=new Error(\"Possible EventEmitter memory leak detected. \"+a.length+\" \"+String(t)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");c.name=\"MaxListenersExceededWarning\",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function T(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function P(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=T.bind(r);return i.listener=n,r.wrapFn=i,i}function O(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:\"function\"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(o=t[0]),o instanceof Error)throw o;var a=new Error(\"Unhandled error.\"+(o?\" (\"+o.message+\")\":\"\"));throw a.context=o,a}var s=i[e];if(void 0===s)return!1;if(\"function\"==typeof s)b(s,this,t);else{var c=s.length,l=j(s,c);for(n=0;n=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},S.prototype.listeners=function(e){return O(this,e,!0)},S.prototype.rawListeners=function(e){return O(this,e,!1)},S.listenerCount=function(e,t){return\"function\"==typeof e.listenerCount?e.listenerCount(t):A.call(e,t)},S.prototype.listenerCount=A,S.prototype.eventNames=function(){return this._eventsCount>0?m(this._events):[]};var L=Object.prototype.hasOwnProperty;function I(e,t,n){for(n of e.keys())if(D(n,t))return n}function D(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&D(e[r],t[r]););return-1===r}if(n===Set){if(e.size!==t.size)return!1;for(r of e){if((i=r)&&\"object\"==typeof i&&!(i=I(t,i)))return!1;if(!t.has(i))return!1}return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e){if((i=r[0])&&\"object\"==typeof i&&!(i=I(t,i)))return!1;if(!D(r[1],t.get(i)))return!1}return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return-1===r}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return-1===r}if(!n||\"object\"==typeof e){for(n in r=0,e){if(L.call(e,n)&&++r&&!L.call(t,n))return!1;if(!(n in t)||!D(e[n],t[n]))return!1}return Object.keys(t).length===r}}return e!=e&&t!=t}const N={\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",Bada:\"bada\",BlackBerry:\"blackberry\",Chrome:\"chrome\",Chromium:\"chromium\",Electron:\"electron\",Epiphany:\"epiphany\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",\"Internet Explorer\":\"ie\",\"K-Meleon\":\"k_meleon\",Maxthon:\"maxthon\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",PhantomJS:\"phantomjs\",Puffin:\"puffin\",QupZilla:\"qupzilla\",QQ:\"qq\",QQLite:\"qqlite\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",\"Yandex Browser\":\"yandex\",Roku:\"roku\"},R={amazon_silk:\"Amazon Silk\",android:\"Android Browser\",bada:\"Bada\",blackberry:\"BlackBerry\",chrome:\"Chrome\",chromium:\"Chromium\",electron:\"Electron\",epiphany:\"Epiphany\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",googlebot:\"Googlebot\",google_search:\"Google Search\",ie:\"Internet Explorer\",k_meleon:\"K-Meleon\",maxthon:\"Maxthon\",edge:\"Microsoft Edge\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",opera:\"Opera\",opera_coast:\"Opera Coast\",phantomjs:\"PhantomJS\",puffin:\"Puffin\",qupzilla:\"QupZilla\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yandex:\"Yandex Browser\"},F={tablet:\"tablet\",mobile:\"mobile\",desktop:\"desktop\",tv:\"tv\"},B={WindowsPhone:\"Windows Phone\",Windows:\"Windows\",MacOS:\"macOS\",iOS:\"iOS\",Android:\"Android\",WebOS:\"WebOS\",BlackBerry:\"BlackBerry\",Bada:\"Bada\",Tizen:\"Tizen\",Linux:\"Linux\",ChromeOS:\"Chrome OS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\"},U={EdgeHTML:\"EdgeHTML\",Blink:\"Blink\",Trident:\"Trident\",Presto:\"Presto\",Gecko:\"Gecko\",WebKit:\"WebKit\"};class V{static getFirstMatch(e,t){const n=t.match(e);return n&&n.length>0&&n[1]||\"\"}static getSecondMatch(e,t){const n=t.match(e);return n&&n.length>1&&n[2]||\"\"}static matchAndReturnConst(e,t,n){if(e.test(t))return n}static getWindowsVersionName(e){switch(e){case\"NT\":return\"NT\";case\"XP\":case\"NT 5.1\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}}static getMacOSVersionName(e){const t=e.split(\".\").splice(0,2).map((e=>parseInt(e,10)||0));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}}static getAndroidVersionName(e){const t=e.split(\".\").splice(0,2).map((e=>parseInt(e,10)||0));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0}static getVersionPrecision(e){return e.split(\".\").length}static compareVersions(e,t,n=!1){const r=V.getVersionPrecision(e),i=V.getVersionPrecision(t);let o=Math.max(r,i),a=0;const s=V.map([e,t],(e=>{const t=o-V.getVersionPrecision(e),n=e+new Array(t+1).join(\".0\");return V.map(n.split(\".\"),(e=>new Array(20-e.length).join(\"0\")+e)).reverse()}));for(n&&(a=o-Math.min(r,i)),o-=1;o>=a;){if(s[0][o]>s[1][o])return 1;if(s[0][o]===s[1][o]){if(o===a)return 0;o-=1}else if(s[0][o]{n[t]=e[t]}))}}return e}static getBrowserAlias(e){return N[e]}static getBrowserTypeByAlias(e){return R[e]||\"\"}}const J=/version\\/(\\d+(\\.?_?\\d+)+)/i,$=[{test:[/googlebot/i],describe(e){const t={name:\"Googlebot\"},n=V.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/opera/i],describe(e){const t={name:\"Opera\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opr\\/|opios/i],describe(e){const t={name:\"Opera\"},n=V.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/SamsungBrowser/i],describe(e){const t={name:\"Samsung Internet for Android\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Whale/i],describe(e){const t={name:\"NAVER Whale Browser\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MZBrowser/i],describe(e){const t={name:\"MZ Browser\"},n=V.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/focus/i],describe(e){const t={name:\"Focus\"},n=V.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/swing/i],describe(e){const t={name:\"Swing\"},n=V.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/coast/i],describe(e){const t={name:\"Opera Coast\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe(e){const t={name:\"Opera Touch\"},n=V.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/yabrowser/i],describe(e){const t={name:\"Yandex Browser\"},n=V.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/ucbrowser/i],describe(e){const t={name:\"UC Browser\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Maxthon|mxios/i],describe(e){const t={name:\"Maxthon\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/epiphany/i],describe(e){const t={name:\"Epiphany\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/puffin/i],describe(e){const t={name:\"Puffin\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sleipnir/i],describe(e){const t={name:\"Sleipnir\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/k-meleon/i],describe(e){const t={name:\"K-Meleon\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/micromessenger/i],describe(e){const t={name:\"WeChat\"},n=V.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/qqbrowser/i],describe(e){const t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},n=V.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/msie|trident/i],describe(e){const t={name:\"Internet Explorer\"},n=V.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/\\sedg\\//i],describe(e){const t={name:\"Microsoft Edge\"},n=V.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/edg([ea]|ios)/i],describe(e){const t={name:\"Microsoft Edge\"},n=V.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/vivaldi/i],describe(e){const t={name:\"Vivaldi\"},n=V.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/seamonkey/i],describe(e){const t={name:\"SeaMonkey\"},n=V.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sailfish/i],describe(e){const t={name:\"Sailfish\"},n=V.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return n&&(t.version=n),t}},{test:[/silk/i],describe(e){const t={name:\"Amazon Silk\"},n=V.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/phantom/i],describe(e){const t={name:\"PhantomJS\"},n=V.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/slimerjs/i],describe(e){const t={name:\"SlimerJS\"},n=V.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe(e){const t={name:\"BlackBerry\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(web|hpw)[o0]s/i],describe(e){const t={name:\"WebOS Browser\"},n=V.getFirstMatch(J,e)||V.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/bada/i],describe(e){const t={name:\"Bada\"},n=V.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/tizen/i],describe(e){const t={name:\"Tizen\"},n=V.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/qupzilla/i],describe(e){const t={name:\"QupZilla\"},n=V.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/firefox|iceweasel|fxios/i],describe(e){const t={name:\"Firefox\"},n=V.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/electron/i],describe(e){const t={name:\"Electron\"},n=V.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MiuiBrowser/i],describe(e){const t={name:\"Miui\"},n=V.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/chromium/i],describe(e){const t={name:\"Chromium\"},n=V.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/chrome|crios|crmo/i],describe(e){const t={name:\"Chrome\"},n=V.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/GSA/i],describe(e){const t={name:\"Google Search\"},n=V.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test(e){const t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe(e){const t={name:\"Android Browser\"},n=V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/playstation 4/i],describe(e){const t={name:\"PlayStation 4\"},n=V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/safari|applewebkit/i],describe(e){const t={name:\"Safari\"},n=V.getFirstMatch(J,e);return n&&(t.version=n),t}},{test:[/.*/i],describe(e){const t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:V.getFirstMatch(t,e),version:V.getSecondMatch(t,e)}}}];var q=[{test:[/Roku\\/DVP/],describe(e){const t=V.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:B.Roku,version:t}}},{test:[/windows phone/i],describe(e){const t=V.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:B.WindowsPhone,version:t}}},{test:[/windows /i],describe(e){const t=V.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),n=V.getWindowsVersionName(t);return{name:B.Windows,version:t,versionName:n}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe(e){const t={name:B.iOS},n=V.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return n&&(t.version=n),t}},{test:[/macintosh/i],describe(e){const t=V.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),n=V.getMacOSVersionName(t),r={name:B.MacOS,version:t};return n&&(r.versionName=n),r}},{test:[/(ipod|iphone|ipad)/i],describe(e){const t=V.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:B.iOS,version:t}}},{test(e){const t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe(e){const t=V.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),n=V.getAndroidVersionName(t),r={name:B.Android,version:t};return n&&(r.versionName=n),r}},{test:[/(web|hpw)[o0]s/i],describe(e){const t=V.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),n={name:B.WebOS};return t&&t.length&&(n.version=t),n}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe(e){const t=V.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||V.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||V.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:B.BlackBerry,version:t}}},{test:[/bada/i],describe(e){const t=V.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:B.Bada,version:t}}},{test:[/tizen/i],describe(e){const t=V.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:B.Tizen,version:t}}},{test:[/linux/i],describe:()=>({name:B.Linux})},{test:[/CrOS/],describe:()=>({name:B.ChromeOS})},{test:[/PlayStation 4/],describe(e){const t=V.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:B.PlayStation4,version:t}}}],W=[{test:[/googlebot/i],describe:()=>({type:\"bot\",vendor:\"Google\"})},{test:[/huawei/i],describe(e){const t=V.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",n={type:F.mobile,vendor:\"Huawei\"};return t&&(n.model=t),n}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:()=>({type:F.tablet,vendor:\"Nexus\"})},{test:[/ipad/i],describe:()=>({type:F.tablet,vendor:\"Apple\",model:\"iPad\"})},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:()=>({type:F.tablet,vendor:\"Apple\",model:\"iPad\"})},{test:[/kftt build/i],describe:()=>({type:F.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"})},{test:[/silk/i],describe:()=>({type:F.tablet,vendor:\"Amazon\"})},{test:[/tablet(?! pc)/i],describe:()=>({type:F.tablet})},{test(e){const t=e.test(/ipod|iphone/i),n=e.test(/like (ipod|iphone)/i);return t&&!n},describe(e){const t=V.getFirstMatch(/(ipod|iphone)/i,e);return{type:F.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:()=>({type:F.mobile,vendor:\"Nexus\"})},{test:[/[^-]mobi/i],describe:()=>({type:F.mobile})},{test:e=>\"blackberry\"===e.getBrowserName(!0),describe:()=>({type:F.mobile,vendor:\"BlackBerry\"})},{test:e=>\"bada\"===e.getBrowserName(!0),describe:()=>({type:F.mobile})},{test:e=>\"windows phone\"===e.getBrowserName(),describe:()=>({type:F.mobile,vendor:\"Microsoft\"})},{test(e){const t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:()=>({type:F.tablet})},{test:e=>\"android\"===e.getOSName(!0),describe:()=>({type:F.mobile})},{test:e=>\"macos\"===e.getOSName(!0),describe:()=>({type:F.desktop,vendor:\"Apple\"})},{test:e=>\"windows\"===e.getOSName(!0),describe:()=>({type:F.desktop})},{test:e=>\"linux\"===e.getOSName(!0),describe:()=>({type:F.desktop})},{test:e=>\"playstation 4\"===e.getOSName(!0),describe:()=>({type:F.tv})},{test:e=>\"roku\"===e.getOSName(!0),describe:()=>({type:F.tv})}],z=[{test:e=>\"microsoft edge\"===e.getBrowserName(!0),describe(e){if(/\\sedg\\//i.test(e))return{name:U.Blink};const t=V.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:U.EdgeHTML,version:t}}},{test:[/trident/i],describe(e){const t={name:U.Trident},n=V.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:e=>e.test(/presto/i),describe(e){const t={name:U.Presto},n=V.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test(e){const t=e.test(/gecko/i),n=e.test(/like gecko/i);return t&&!n},describe(e){const t={name:U.Gecko},n=V.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:()=>({name:U.Blink})},{test:[/(apple)?webkit/i],describe(e){const t={name:U.WebKit},n=V.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}}];class H{constructor(e,t=!1){if(null==e||\"\"===e)throw new Error(\"UserAgent parameter can't be empty\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}getUA(){return this._ua}test(e){return e.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const e=V.find($,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.browser=e.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(e){return e?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const e=V.find(q,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.os=e.describe(this.getUA())),this.parsedResult.os}getOSName(e){const{name:t}=this.getOS();return e?String(t).toLowerCase()||\"\":t||\"\"}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(e=!1){const{type:t}=this.getPlatform();return e?String(t).toLowerCase()||\"\":t||\"\"}parsePlatform(){this.parsedResult.platform={};const e=V.find(W,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.platform=e.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(e){return e?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"}parseEngine(){this.parsedResult.engine={};const e=V.find(z,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.engine=e.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return V.assign({},this.parsedResult)}satisfies(e){const t={};let n=0;const r={};let i=0;if(Object.keys(e).forEach((o=>{const a=e[o];\"string\"==typeof a?(r[o]=a,i+=1):\"object\"==typeof a&&(t[o]=a,n+=1)})),n>0){const e=Object.keys(t),n=V.find(e,(e=>this.isOS(e)));if(n){const e=this.satisfies(t[n]);if(void 0!==e)return e}const r=V.find(e,(e=>this.isPlatform(e)));if(r){const e=this.satisfies(t[r]);if(void 0!==e)return e}}if(i>0){const e=Object.keys(r),t=V.find(e,(e=>this.isBrowser(e,!0)));if(void 0!==t)return this.compareVersion(r[t])}}isBrowser(e,t=!1){const n=this.getBrowserName().toLowerCase();let r=e.toLowerCase();const i=V.getBrowserTypeByAlias(r);return t&&i&&(r=i.toLowerCase()),r===n}compareVersion(e){let t=[0],n=e,r=!1;const i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(n=e.substr(1),\"=\"===e[1]?(r=!0,n=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?n=e.substr(1):\"~\"===e[0]&&(r=!0,n=e.substr(1)),t.indexOf(V.compareVersions(i,n,r))>-1}isOS(e){return this.getOSName(!0)===String(e).toLowerCase()}isPlatform(e){return this.getPlatformType(!0)===String(e).toLowerCase()}isEngine(e){return this.getEngineName(!0)===String(e).toLowerCase()}is(e,t=!1){return this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)}some(e=[]){return e.some((e=>this.is(e)))}}\n/*!\n * Bowser - a browser detector\n * https://github.com/lancedikson/bowser\n * MIT License | (c) Dustin Diaz 2012-2015\n * MIT License | (c) Denis Demchenko 2015-2019\n */class G{static getParser(e,t=!1){if(\"string\"!=typeof e)throw new Error(\"UserAgent should be a string\");return new H(e,t)}static parse(e){return new H(e).getResult()}static get BROWSER_MAP(){return R}static get ENGINE_MAP(){return U}static get OS_MAP(){return B}static get PLATFORMS_MAP(){return F}}function Q(){return Date.now()+Math.random().toString()}function K(){throw new Error(\"Method must be implemented in subclass\")}function Y(e,t){return null!=t&&t.proxyUrl?t.proxyUrl+(\"/\"===t.proxyUrl.slice(-1)?\"\":\"/\")+e.substring(8):e}function X(e){return null!=e&&e.callObjectBundleUrlOverride?e.callObjectBundleUrlOverride:Y(\"https://c.daily.co/call-machine/versioned/\".concat(\"0.74.0\",\"/static/call-machine-object-bundle.js\"),e)}function Z(e){try{new URL(e)}catch(e){return!1}return!0}const ee=Object.prototype.toString;function te(e){switch(ee.call(e)){case\"[object Error]\":case\"[object Exception]\":case\"[object DOMException]\":return!0;default:return de(e,Error)}}function ne(e,t){return ee.call(e)===`[object ${t}]`}function re(e){return ne(e,\"ErrorEvent\")}function ie(e){return ne(e,\"DOMError\")}function oe(e){return ne(e,\"String\")}function ae(e){return\"object\"==typeof e&&null!==e&&\"__sentry_template_string__\"in e&&\"__sentry_template_values__\"in e}function se(e){return null===e||ae(e)||\"object\"!=typeof e&&\"function\"!=typeof e}function ce(e){return ne(e,\"Object\")}function le(e){return\"undefined\"!=typeof Event&&de(e,Event)}function ue(e){return Boolean(e&&e.then&&\"function\"==typeof e.then)}function de(e,t){try{return e instanceof t}catch(e){return!1}}function pe(e){return!(\"object\"!=typeof e||null===e||!e.__isVue&&!e._isVue)}function he(e,t=0){return\"string\"!=typeof e||0===t||e.length<=t?e:`${e.slice(0,t)}...`}function fe(e,t){if(!Array.isArray(e))return\"\";const n=[];for(let t=0;tve(e,t,n)))}function ge(e,t,n=250,r,i,o,a){if(!(o.exception&&o.exception.values&&a&&de(a.originalException,Error)))return;const s=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;var c,l;s&&(o.exception.values=(c=ye(e,t,i,a.originalException,r,o.exception.values,s,0),l=n,c.map((e=>(e.value&&(e.value=he(e.value,l)),e)))))}function ye(e,t,n,r,i,o,a,s){if(o.length>=n+1)return o;let c=[...o];if(de(r[i],Error)){_e(a,s);const o=e(t,r[i]),l=c.length;be(o,i,l,s),c=ye(e,t,n,r[i],i,[o,...c],o,l)}return Array.isArray(r.errors)&&r.errors.forEach(((r,o)=>{if(de(r,Error)){_e(a,s);const l=e(t,r),u=c.length;be(l,`errors[${o}]`,u,s),c=ye(e,t,n,r,i,[l,...c],l,u)}})),c}function _e(e,t){e.mechanism=e.mechanism||{type:\"generic\",handled:!0},e.mechanism={...e.mechanism,...\"AggregateError\"===e.type&&{is_exception_group:!0},exception_id:t}}function be(e,t,n,r){e.mechanism=e.mechanism||{type:\"generic\",handled:!0},e.mechanism={...e.mechanism,type:\"chained\",source:t,exception_id:n,parent_id:r}}function we(e){return void 0===e?void 0:e>=400&&e<500?\"warning\":e>=500?\"error\":void 0}const Se=\"8.33.1\",ke=globalThis;function Me(e,t,n){const r=n||ke,i=r.__SENTRY__=r.__SENTRY__||{},o=i[Se]=i[Se]||{};return o[e]||(o[e]=t())}const Ce=ke;function Ee(e,t={}){if(!e)return\"\";try{let n=e;const r=5,i=[];let o=0,a=0;const s=\" > \",c=s.length;let l;const u=Array.isArray(t)?t:t.keyAttrs,d=!Array.isArray(t)&&t.maxStringLength||80;for(;n&&o++1&&a+i.length*c+l.length>=d));)i.push(l),a+=l.length,n=n.parentNode;return i.reverse().join(s)}catch(e){return\"\"}}function Te(e,t){const n=e,r=[];if(!n||!n.tagName)return\"\";if(Ce.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());const i=t&&t.length?t.filter((e=>n.getAttribute(e))).map((e=>[e,n.getAttribute(e)])):null;if(i&&i.length)i.forEach((e=>{r.push(`[${e[0]}=\"${e[1]}\"]`)}));else{n.id&&r.push(`#${n.id}`);const e=n.className;if(e&&oe(e)){const t=e.split(/\\s+/);for(const e of t)r.push(`.${e}`)}}const o=[\"aria-label\",\"type\",\"name\",\"title\",\"alt\"];for(const e of o){const t=n.getAttribute(e);t&&r.push(`[${e}=\"${t}\"]`)}return r.join(\"\")}const Pe=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,Oe=[\"debug\",\"info\",\"warn\",\"error\",\"log\",\"assert\",\"trace\"],Ae={};function je(e){if(!(\"console\"in ke))return e();const t=ke.console,n={},r=Object.keys(Ae);r.forEach((e=>{const r=Ae[e];n[e]=t[e],t[e]=r}));try{return e()}finally{r.forEach((e=>{t[e]=n[e]}))}}const xe=Me(\"logger\",(function(){let e=!1;const t={enable:()=>{e=!0},disable:()=>{e=!1},isEnabled:()=>e};return Pe?Oe.forEach((n=>{t[n]=(...t)=>{e&&je((()=>{ke.console[n](`Sentry Logger [${n}]:`,...t)}))}})):Oe.forEach((e=>{t[e]=()=>{}})),t})),Le=/^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;function Ie(e,t=!1){const{host:n,path:r,pass:i,port:o,projectId:a,protocol:s,publicKey:c}=e;return`${s}://${c}${t&&i?`:${i}`:\"\"}@${n}${o?`:${o}`:\"\"}/${r?`${r}/`:r}${a}`}function De(e){return{protocol:e.protocol,publicKey:e.publicKey||\"\",pass:e.pass||\"\",host:e.host,port:e.port||\"\",path:e.path||\"\",projectId:e.projectId}}function Ne(e){const t=\"string\"==typeof e?function(e){const t=Le.exec(e);if(!t)return void je((()=>{console.error(`Invalid Sentry Dsn: ${e}`)}));const[n,r,i=\"\",o=\"\",a=\"\",s=\"\"]=t.slice(1);let c=\"\",l=s;const u=l.split(\"/\");if(u.length>1&&(c=u.slice(0,-1).join(\"/\"),l=u.pop()),l){const e=l.match(/^\\d+/);e&&(l=e[0])}return De({host:o,pass:i,path:c,projectId:l,port:a,protocol:n,publicKey:r})}(e):De(e);if(t&&function(e){if(!Pe)return!0;const{port:t,projectId:n,protocol:r}=e;return!([\"protocol\",\"publicKey\",\"host\",\"projectId\"].find((t=>!e[t]&&(xe.error(`Invalid Sentry Dsn: ${t} missing`),!0)))||(n.match(/^\\d+$/)?function(e){return\"http\"===e||\"https\"===e}(r)?t&&isNaN(parseInt(t,10))&&(xe.error(`Invalid Sentry Dsn: Invalid port ${t}`),1):(xe.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),1):(xe.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),1)))}(t))return t}class Re extends Error{constructor(e,t=\"warn\"){super(e),this.message=e,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype),this.logLevel=t}}function Fe(e,t,n){if(!(t in e))return;const r=e[t],i=n(r);\"function\"==typeof i&&Ue(i,r),e[t]=i}function Be(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch(n){Pe&&xe.log(`Failed to add non-enumerable property \"${t}\" to object`,e)}}function Ue(e,t){try{const n=t.prototype||{};e.prototype=t.prototype=n,Be(e,\"__sentry_original__\",t)}catch(e){}}function Ve(e){return e.__sentry_original__}function Je(e){if(te(e))return{message:e.message,name:e.name,stack:e.stack,...qe(e)};if(le(e)){const t={type:e.type,target:$e(e.target),currentTarget:$e(e.currentTarget),...qe(e)};return\"undefined\"!=typeof CustomEvent&&de(e,CustomEvent)&&(t.detail=e.detail),t}return e}function $e(e){try{return t=e,\"undefined\"!=typeof Element&&de(t,Element)?Ee(e):Object.prototype.toString.call(e)}catch(e){return\"\"}var t}function qe(e){if(\"object\"==typeof e&&null!==e){const t={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}return{}}function We(e){return ze(e,new Map)}function ze(e,t){if(function(e){if(!ce(e))return!1;try{const t=Object.getPrototypeOf(e).constructor.name;return!t||\"Object\"===t}catch(e){return!0}}(e)){const n=t.get(e);if(void 0!==n)return n;const r={};t.set(e,r);for(const n of Object.getOwnPropertyNames(e))void 0!==e[n]&&(r[n]=ze(e[n],t));return r}if(Array.isArray(e)){const n=t.get(e);if(void 0!==n)return n;const r=[];return t.set(e,r),e.forEach((e=>{r.push(ze(e,t))})),r}return e}const He=\"?\",Ge=/\\(error: (.*)\\)/,Qe=/captureMessage|captureException/;function Ke(e){return e[e.length-1]||{}}const Ye=\"\";function Xe(e){try{return e&&\"function\"==typeof e&&e.name||Ye}catch(e){return Ye}}function Ze(e){const t=e.exception;if(t){const e=[];try{return t.values.forEach((t=>{t.stacktrace.frames&&e.push(...t.stacktrace.frames)})),e}catch(e){return}}}const et={},tt={};function nt(e,t){et[e]=et[e]||[],et[e].push(t)}function rt(e,t){tt[e]||(t(),tt[e]=!0)}function it(e,t){const n=e&&et[e];if(n)for(const r of n)try{r(t)}catch(t){Pe&&xe.error(`Error while triggering instrumentation handler.\\nType: ${e}\\nName: ${Xe(r)}\\nError:`,t)}}function ot(){\"console\"in ke&&Oe.forEach((function(e){e in ke.console&&Fe(ke.console,e,(function(t){return Ae[e]=t,function(...t){it(\"console\",{args:t,level:e});const n=Ae[e];n&&n.apply(ke.console,t)}}))}))}const at=ke;function st(e){return e&&/^function\\s+\\w+\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(e.toString())}function ct(){if(\"string\"==typeof EdgeRuntime)return!0;if(!function(){if(!(\"fetch\"in at))return!1;try{return new Headers,new Request(\"http://www.example.com\"),new Response,!0}catch(e){return!1}}())return!1;if(st(at.fetch))return!0;let e=!1;const t=at.document;if(t&&\"function\"==typeof t.createElement)try{const n=t.createElement(\"iframe\");n.hidden=!0,t.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(e=st(n.contentWindow.fetch)),t.head.removeChild(n)}catch(e){Pe&&xe.warn(\"Could not create sandbox iframe for pure fetch check, bailing to window.fetch: \",e)}return e}function lt(){return Date.now()/1e3}const ut=function(){const{performance:e}=ke;if(!e||!e.now)return lt;const t=Date.now()-e.now(),n=null==e.timeOrigin?t:e.timeOrigin;return()=>(n+e.now())/1e3}();function dt(e,t){const n=\"fetch\";nt(n,e),rt(n,(()=>function(e,t=!1){if(t&&!ct())return;Fe(ke,\"fetch\",(function(t){return function(...n){const{method:r,url:i}=function(e){if(0===e.length)return{method:\"GET\",url:\"\"};if(2===e.length){const[t,n]=e;return{url:ht(t),method:pt(n,\"method\")?String(n.method).toUpperCase():\"GET\"}}const t=e[0];return{url:ht(t),method:pt(t,\"method\")?String(t.method).toUpperCase():\"GET\"}}(n),o={args:n,fetchData:{method:r,url:i},startTimestamp:1e3*ut()};e||it(\"fetch\",{...o});const a=(new Error).stack;return t.apply(ke,n).then((async t=>(e?e(t):it(\"fetch\",{...o,endTimestamp:1e3*ut(),response:t}),t)),(e=>{throw it(\"fetch\",{...o,endTimestamp:1e3*ut(),error:e}),te(e)&&void 0===e.stack&&(e.stack=a,Be(e,\"framesToPop\",1)),e}))}}))}(void 0,t)))}function pt(e,t){return!!e&&\"object\"==typeof e&&!!e[t]}function ht(e){return\"string\"==typeof e?e:e?pt(e,\"url\")?e.url:e.toString?e.toString():\"\":\"\"}(()=>{const{performance:e}=ke;if(!e||!e.now)return;const t=36e5,n=e.now(),r=Date.now(),i=e.timeOrigin?Math.abs(e.timeOrigin+n-r):t,o=i16*Math.random();try{if(t&&t.randomUUID)return t.randomUUID().replace(/-/g,\"\");t&&t.getRandomValues&&(n=()=>{const e=new Uint8Array(1);return t.getRandomValues(e),e[0]})}catch(e){}return([1e7]+1e3+4e3+8e3+1e11).replace(/[018]/g,(e=>(e^(15&n())>>e/4).toString(16)))}function _t(e){return e.exception&&e.exception.values?e.exception.values[0]:void 0}function bt(e){const{message:t,event_id:n}=e;if(t)return t;const r=_t(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||\"\":n||\"\"}function wt(e,t,n){const r=e.exception=e.exception||{},i=r.values=r.values||[],o=i[0]=i[0]||{};o.value||(o.value=t||\"\"),o.type||(o.type=n||\"Error\")}function St(e,t){const n=_t(e);if(!n)return;const r=n.mechanism;if(n.mechanism={type:\"generic\",handled:!0,...r,...t},t&&\"data\"in t){const e={...r&&r.data,...t.data};n.mechanism.data=e}}function kt(e){if(e&&e.__sentry_captured__)return!0;try{Be(e,\"__sentry_captured__\",!0)}catch(e){}return!1}function Mt(e,t=100,n=1/0){try{return Et(\"\",e,t,n)}catch(e){return{ERROR:`**non-serializable** (${e})`}}}function Ct(e,t=3,n=102400){const r=Mt(e,t);return i=r,function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(i))>n?Ct(e,t-1,n):r;var i}function Et(e,t,n=1/0,r=1/0,i=function(){const e=\"function\"==typeof WeakSet,t=e?new WeakSet:[];return[function(n){if(e)return!!t.has(n)||(t.add(n),!1);for(let e=0;e=r){u[e]=\"[MaxProperties ~]\";break}const t=p[e];u[e]=Et(e,t,c-1,r,i),d++}return a(t),u}var Tt;function Pt(e){return new At((t=>{t(e)}))}function Ot(e){return new At(((t,n)=>{n(e)}))}!function(e){e[e.PENDING=0]=\"PENDING\";e[e.RESOLVED=1]=\"RESOLVED\";e[e.REJECTED=2]=\"REJECTED\"}(Tt||(Tt={}));class At{constructor(e){At.prototype.__init.call(this),At.prototype.__init2.call(this),At.prototype.__init3.call(this),At.prototype.__init4.call(this),this._state=Tt.PENDING,this._handlers=[];try{e(this._resolve,this._reject)}catch(e){this._reject(e)}}then(e,t){return new At(((n,r)=>{this._handlers.push([!1,t=>{if(e)try{n(e(t))}catch(e){r(e)}else n(t)},e=>{if(t)try{n(t(e))}catch(e){r(e)}else r(e)}]),this._executeHandlers()}))}catch(e){return this.then((e=>e),e)}finally(e){return new At(((t,n)=>{let r,i;return this.then((t=>{i=!1,r=t,e&&e()}),(t=>{i=!0,r=t,e&&e()})).then((()=>{i?n(r):t(r)}))}))}__init(){this._resolve=e=>{this._setResult(Tt.RESOLVED,e)}}__init2(){this._reject=e=>{this._setResult(Tt.REJECTED,e)}}__init3(){this._setResult=(e,t)=>{this._state===Tt.PENDING&&(ue(t)?t.then(this._resolve,this._reject):(this._state=e,this._value=t,this._executeHandlers()))}}__init4(){this._executeHandlers=()=>{if(this._state===Tt.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach((e=>{e[0]||(this._state===Tt.RESOLVED&&e[1](this._value),this._state===Tt.REJECTED&&e[2](this._value),e[0]=!0)}))}}}function jt(e){const t=[];function n(e){return t.splice(t.indexOf(e),1)[0]||Promise.resolve(void 0)}return{$:t,add:function(r){if(!(void 0===e||t.lengthn(i))).then(null,(()=>n(i).then(null,(()=>{})))),i},drain:function(e){return new At(((n,r)=>{let i=t.length;if(!i)return n(!0);const o=setTimeout((()=>{e&&e>0&&n(!1)}),e);t.forEach((e=>{Pt(e).then((()=>{--i||(clearTimeout(o),n(!0))}),r)}))}))}}}function xt(e){if(!e)return{};const t=e.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);if(!t)return{};const n=t[6]||\"\",r=t[8]||\"\";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}const Lt=[\"fatal\",\"error\",\"warning\",\"log\",\"info\",\"debug\"];function It(e){return\"warn\"===e?\"warning\":Lt.includes(e)?e:\"log\"}const Dt=/^sentry-/;function Nt(e){const t=function(e){if(!e||!oe(e)&&!Array.isArray(e))return;if(Array.isArray(e))return e.reduce(((e,t)=>{const n=Rt(t);return Object.entries(n).forEach((([t,n])=>{e[t]=n})),e}),{});return Rt(e)}(e);if(!t)return;const n=Object.entries(t).reduce(((e,[t,n])=>{if(t.match(Dt)){e[t.slice(7)]=n}return e}),{});return Object.keys(n).length>0?n:void 0}function Rt(e){return e.split(\",\").map((e=>e.split(\"=\").map((e=>decodeURIComponent(e.trim()))))).reduce(((e,[t,n])=>(t&&n&&(e[t]=n),e)),{})}function Ft(e,t=[]){return[e,t]}function Bt(e,t){const[n,r]=e;return[n,[...r,t]]}function Ut(e,t){const n=e[1];for(const e of n){if(t(e,e[0].type))return!0}return!1}function Vt(e){return ke.__SENTRY__&&ke.__SENTRY__.encodePolyfill?ke.__SENTRY__.encodePolyfill(e):(new TextEncoder).encode(e)}function Jt(e){const[t,n]=e;let r=JSON.stringify(t);function i(e){\"string\"==typeof r?r=\"string\"==typeof e?r+e:[Vt(r),e]:r.push(\"string\"==typeof e?Vt(e):e)}for(const e of n){const[t,n]=e;if(i(`\\n${JSON.stringify(t)}\\n`),\"string\"==typeof n||n instanceof Uint8Array)i(n);else{let e;try{e=JSON.stringify(n)}catch(t){e=JSON.stringify(Mt(n))}i(e)}}return\"string\"==typeof r?r:function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n}(r)}function $t(e){const t=\"string\"==typeof e.data?Vt(e.data):e.data;return[We({type:\"attachment\",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType}),t]}const qt={session:\"session\",sessions:\"session\",attachment:\"attachment\",transaction:\"transaction\",event:\"error\",client_report:\"internal\",user_report:\"default\",profile:\"profile\",profile_chunk:\"profile\",replay_event:\"replay\",replay_recording:\"replay\",check_in:\"monitor\",feedback:\"feedback\",span:\"span\",statsd:\"metric_bucket\"};function Wt(e){return qt[e]}function zt(e){if(!e||!e.sdk)return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}function Ht(e,{statusCode:t,headers:n},r=Date.now()){const i={...e},o=n&&n[\"x-sentry-rate-limits\"],a=n&&n[\"retry-after\"];if(o)for(const e of o.trim().split(\",\")){const[t,n,,,o]=e.split(\":\",5),a=parseInt(t,10),s=1e3*(isNaN(a)?60:a);if(n)for(const e of n.split(\";\"))\"metric_bucket\"===e&&o&&!o.split(\";\").includes(\"custom\")||(i[e]=r+s);else i.all=r+s}else a?i.all=r+function(e,t=Date.now()){const n=parseInt(`${e}`,10);if(!isNaN(n))return 1e3*n;const r=Date.parse(`${e}`);return isNaN(r)?6e4:r-t}(a,r):429===t&&(i.all=r+6e4);return i}function Gt(){return{traceId:yt(),spanId:yt().substring(16)}}const Qt=ke;const Kt=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__;function Yt(){return Xt(ke),ke}function Xt(e){const t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Se,t[Se]=t[Se]||{}}function Zt(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),e.did||t.did||(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||ut(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=32===t.sid.length?t.sid:yt()),void 0!==t.init&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),\"number\"==typeof t.started&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(\"number\"==typeof t.duration)e.duration=t.duration;else{const t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),\"number\"==typeof t.errors&&(e.errors=t.errors),t.status&&(e.status=t.status)}const en=\"_sentrySpan\";function tn(e,t){t?Be(e,en,t):delete e[en]}function nn(e){return e[en]}class rn{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext=Gt()}clone(){const e=new rn;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._requestSession=this._requestSession,e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,tn(e,nn(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&Zt(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(e){return this._requestSession=e,this}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return null===t?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t=\"function\"==typeof e?e(this):e,[n,r]=t instanceof on?[t.getScopeData(),t.getRequestSession()]:ce(t)?[e,e.requestSession]:[],{tags:i,extra:o,user:a,contexts:s,level:c,fingerprint:l=[],propagationContext:u}=n||{};return this._tags={...this._tags,...i},this._extra={...this._extra,...o},this._contexts={...this._contexts,...s},a&&Object.keys(a).length&&(this._user=a),c&&(this._level=c),l.length&&(this._fingerprint=l),u&&(this._propagationContext=u),r&&(this._requestSession=r),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._session=void 0,tn(this,void 0),this._attachments=[],this._propagationContext=Gt(),this._notifyScopeListeners(),this}addBreadcrumb(e,t){const n=\"number\"==typeof t?t:100;if(n<=0)return this;const r={timestamp:lt(),...e},i=this._breadcrumbs;return i.push(r),this._breadcrumbs=i.length>n?i.slice(-n):i,this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:nn(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata={...this._sdkProcessingMetadata,...e},this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const n=t&&t.event_id?t.event_id:yt();if(!this._client)return xe.warn(\"No client configured on scope - will not capture exception!\"),n;const r=new Error(\"Sentry syntheticException\");return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:n},this),n}captureMessage(e,t,n){const r=n&&n.event_id?n.event_id:yt();if(!this._client)return xe.warn(\"No client configured on scope - will not capture message!\"),r;const i=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:i,...n,event_id:r},this),r}captureEvent(e,t){const n=t&&t.event_id?t.event_id:yt();return this._client?(this._client.captureEvent(e,{...t,event_id:n},this),n):(xe.warn(\"No client configured on scope - will not capture event!\"),n)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach((e=>{e(this)})),this._notifyingListeners=!1)}}const on=rn;class an{constructor(e,t){let n,r;n=e||new on,r=t||new on,this._stack=[{scope:n}],this._isolationScope=r}withScope(e){const t=this._pushScope();let n;try{n=e(t)}catch(e){throw this._popScope(),e}return ue(n)?n.then((e=>(this._popScope(),e)),(e=>{throw this._popScope(),e})):(this._popScope(),n)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return!(this._stack.length<=1)&&!!this._stack.pop()}}function sn(){const e=Xt(Yt());return e.stack=e.stack||new an(Me(\"defaultCurrentScope\",(()=>new on)),Me(\"defaultIsolationScope\",(()=>new on)))}function cn(e){return sn().withScope(e)}function ln(e,t){const n=sn();return n.withScope((()=>(n.getStackTop().scope=e,t(e))))}function un(e){return sn().withScope((()=>e(sn().getIsolationScope())))}function dn(e){const t=Xt(e);return t.acs?t.acs:{withIsolationScope:un,withScope:cn,withSetScope:ln,withSetIsolationScope:(e,t)=>un(t),getCurrentScope:()=>sn().getScope(),getIsolationScope:()=>sn().getIsolationScope()}}function pn(){return dn(Yt()).getCurrentScope()}function hn(){return dn(Yt()).getIsolationScope()}function fn(){return pn().getClient()}function vn(e){const t=e._sentryMetrics;if(!t)return;const n={};for(const[,[e,r]]of t){(n[e]||(n[e]=[])).push(We(r))}return n}function mn(e){const{spanId:t,traceId:n}=e.spanContext(),{parent_span_id:r}=_n(e);return We({parent_span_id:r,span_id:t,trace_id:n})}function gn(e){return\"number\"==typeof e?yn(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?yn(e.getTime()):ut()}function yn(e){return e>9999999999?e/1e3:e}function _n(e){if(function(e){return\"function\"==typeof e.getSpanJSON}(e))return e.getSpanJSON();try{const{spanId:t,traceId:n}=e.spanContext();if(function(e){const t=e;return!!(t.attributes&&t.startTime&&t.name&&t.endTime&&t.status)}(e)){const{attributes:r,startTime:i,name:o,endTime:a,parentSpanId:s,status:c}=e;return We({span_id:t,trace_id:n,data:r,description:o,parent_span_id:s,start_timestamp:gn(i),timestamp:gn(a)||void 0,status:bn(c),op:r[\"sentry.op\"],origin:r[\"sentry.origin\"],_metrics_summary:vn(e)})}return{span_id:t,trace_id:n}}catch(e){return{}}}function bn(e){if(e&&0!==e.code)return 1===e.code?\"ok\":e.message||\"unknown_error\"}function wn(e){return e._sentryRootSpan||e}const Sn=\"production\";function kn(e,t){const n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i=We({environment:n.environment||Sn,release:n.release,public_key:r,trace_id:e});return t.emit(\"createDsc\",i),i}function Mn(e){const t=fn();if(!t)return{};const n=kn(_n(e).trace_id||\"\",t),r=wn(e),i=r._frozenDsc;if(i)return i;const o=r.spanContext().traceState,a=o&&o.get(\"sentry.dsc\"),s=a&&Nt(a);if(s)return s;const c=_n(r),l=c.data||{},u=l[\"sentry.sample_rate\"];null!=u&&(n.sample_rate=`${u}`);const d=l[\"sentry.source\"],p=c.description;return\"url\"!==d&&p&&(n.transaction=p),function(e){if(\"boolean\"==typeof __SENTRY_TRACING__&&!__SENTRY_TRACING__)return!1;const t=fn(),n=e||t&&t.getOptions();return!!n&&(n.enableTracing||\"tracesSampleRate\"in n||\"tracesSampler\"in n)}()&&(n.sampled=String(function(e){const{traceFlags:t}=e.spanContext();return 1===t}(r))),t.emit(\"createDsc\",n,r),n}function Cn(e,t,n,r){const i=zt(n),o=e.type&&\"replay_event\"!==e.type?e.type:\"event\";!function(e,t){t&&(e.sdk=e.sdk||{},e.sdk.name=e.sdk.name||t.name,e.sdk.version=e.sdk.version||t.version,e.sdk.integrations=[...e.sdk.integrations||[],...t.integrations||[]],e.sdk.packages=[...e.sdk.packages||[],...t.packages||[]])}(e,n&&n.sdk);const a=function(e,t,n,r){const i=e.sdkProcessingMetadata&&e.sdkProcessingMetadata.dynamicSamplingContext;return{event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:Ie(r)},...i&&{trace:We({...i})}}}(e,i,r,t);delete e.sdkProcessingMetadata;return Ft(a,[[{type:o},e]])}function En(e,t,n,r=0){return new At(((i,o)=>{const a=e[r];if(null===t||\"function\"!=typeof a)i(t);else{const s=a({...t},n);Kt&&a.id&&null===s&&xe.log(`Event processor \"${a.id}\" dropped event`),ue(s)?s.then((t=>En(e,t,n,r+1).then(i))).then(null,o):En(e,s,n,r+1).then(i).then(null,o)}}))}function Tn(e,t){const{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:o}=t;!function(e,t){const{extra:n,tags:r,user:i,contexts:o,level:a,transactionName:s}=t,c=We(n);c&&Object.keys(c).length&&(e.extra={...c,...e.extra});const l=We(r);l&&Object.keys(l).length&&(e.tags={...l,...e.tags});const u=We(i);u&&Object.keys(u).length&&(e.user={...u,...e.user});const d=We(o);d&&Object.keys(d).length&&(e.contexts={...d,...e.contexts});a&&(e.level=a);s&&\"transaction\"!==e.type&&(e.transaction=s)}(e,t),r&&function(e,t){e.contexts={trace:mn(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:Mn(t),...e.sdkProcessingMetadata};const n=wn(t),r=_n(n).description;r&&!e.transaction&&\"transaction\"===e.type&&(e.transaction=r)}(e,r),function(e,t){e.fingerprint=e.fingerprint?function(e){return Array.isArray(e)?e:[e]}(e.fingerprint):[],t&&(e.fingerprint=e.fingerprint.concat(t));e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint}(e,n),function(e,t){const n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}(e,i),function(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}(e,o)}function Pn(e,t){const{extra:n,tags:r,user:i,contexts:o,level:a,sdkProcessingMetadata:s,breadcrumbs:c,fingerprint:l,eventProcessors:u,attachments:d,propagationContext:p,transactionName:h,span:f}=t;On(e,\"extra\",n),On(e,\"tags\",r),On(e,\"user\",i),On(e,\"contexts\",o),On(e,\"sdkProcessingMetadata\",s),a&&(e.level=a),h&&(e.transactionName=h),f&&(e.span=f),c.length&&(e.breadcrumbs=[...e.breadcrumbs,...c]),l.length&&(e.fingerprint=[...e.fingerprint,...l]),u.length&&(e.eventProcessors=[...e.eventProcessors,...u]),d.length&&(e.attachments=[...e.attachments,...d]),e.propagationContext={...e.propagationContext,...p}}function On(e,t,n){if(n&&Object.keys(n).length){e[t]={...e[t]};for(const r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[t][r]=n[r])}}function An(e,t,n,r,i,o){const{normalizeDepth:a=3,normalizeMaxBreadth:s=1e3}=e,c={...t,event_id:t.event_id||n.event_id||yt(),timestamp:t.timestamp||lt()},l=n.integrations||e.integrations.map((e=>e.name));!function(e,t){const{environment:n,release:r,dist:i,maxValueLength:o=250}=t;\"environment\"in e||(e.environment=\"environment\"in t?n:Sn);void 0===e.release&&void 0!==r&&(e.release=r);void 0===e.dist&&void 0!==i&&(e.dist=i);e.message&&(e.message=he(e.message,o));const a=e.exception&&e.exception.values&&e.exception.values[0];a&&a.value&&(a.value=he(a.value,o));const s=e.request;s&&s.url&&(s.url=he(s.url,o))}(c,e),function(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}(c,l),i&&i.emit(\"applyFrameMetadata\",t),void 0===t.type&&function(e,t){const n=ke._sentryDebugIds;if(!n)return;let r;const i=jn.get(t);i?r=i:(r=new Map,jn.set(t,r));const o=Object.entries(n).reduce(((e,[n,i])=>{let o;const a=r.get(n);a?o=a:(o=t(n),r.set(n,o));for(let t=o.length-1;t>=0;t--){const n=o[t];if(n.filename){e[n.filename]=i;break}}return e}),{});try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.filename&&(e.debug_id=o[e.filename])}))}))}catch(e){}}(c,e.stackParser);const u=function(e,t){if(!t)return e;const n=e?e.clone():new on;return n.update(t),n}(r,n.captureContext);n.mechanism&&St(c,n.mechanism);const d=i?i.getEventProcessors():[],p=Me(\"globalScope\",(()=>new on)).getScopeData();if(o){Pn(p,o.getScopeData())}if(u){Pn(p,u.getScopeData())}const h=[...n.attachments||[],...p.attachments];h.length&&(n.attachments=h),Tn(c,p);return En([...d,...p.eventProcessors],c,n).then((e=>(e&&function(e){const t={};try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)}))}))}catch(e){}if(0===Object.keys(t).length)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.entries(t).forEach((([e,t])=>{n.push({type:\"sourcemap\",code_file:e,debug_id:t})}))}(e),\"number\"==typeof a&&a>0?function(e,t,n){if(!e)return null;const r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map((e=>({...e,...e.data&&{data:Mt(e.data,t,n)}})))},...e.user&&{user:Mt(e.user,t,n)},...e.contexts&&{contexts:Mt(e.contexts,t,n)},...e.extra&&{extra:Mt(e.extra,t,n)}};e.contexts&&e.contexts.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=Mt(e.contexts.trace.data,t,n)));e.spans&&(r.spans=e.spans.map((e=>({...e,...e.data&&{data:Mt(e.data,t,n)}}))));return r}(e,a,s):e)))}const jn=new WeakMap;function xn(e){if(e)return function(e){return e instanceof on||\"function\"==typeof e}(e)||function(e){return Object.keys(e).some((e=>Ln.includes(e)))}(e)?{captureContext:e}:e}const Ln=[\"user\",\"level\",\"extra\",\"contexts\",\"tags\",\"fingerprint\",\"requestSession\",\"propagationContext\"];function In(e,t){return pn().captureEvent(e,t)}function Dn(e,t){return n={sentry_key:e.publicKey,sentry_version:\"7\",...t&&{sentry_client:`${t.name}/${t.version}`}},Object.keys(n).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(n[e])}`)).join(\"&\");var n}const Nn=[];function Rn(e,t){for(const n of t)n&&n.afterAllSetup&&n.afterAllSetup(e)}function Fn(e,t,n){if(n[t.name])Kt&&xe.log(`Integration skipped because it was already installed: ${t.name}`);else{if(n[t.name]=t,-1===Nn.indexOf(t.name)&&\"function\"==typeof t.setupOnce&&(t.setupOnce(),Nn.push(t.name)),t.setup&&\"function\"==typeof t.setup&&t.setup(e),\"function\"==typeof t.preprocessEvent){const n=t.preprocessEvent.bind(t);e.on(\"preprocessEvent\",((t,r)=>n(t,r,e)))}if(\"function\"==typeof t.processEvent){const n=t.processEvent.bind(t),r=Object.assign(((t,r)=>n(t,r,e)),{id:t.name});e.addEventProcessor(r)}Kt&&xe.log(`Integration installed: ${t.name}`)}}const Bn=\"Not capturing exception because it's already been captured.\";class Un{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=Ne(e.dsn):Kt&&xe.warn(\"No DSN provided, client will not send events.\"),this._dsn){const i=(t=this._dsn,n=e.tunnel,r=e._metadata?e._metadata.sdk:void 0,n||`${function(e){return`${function(e){const t=e.protocol?`${e.protocol}:`:\"\",n=e.port?`:${e.port}`:\"\";return`${t}//${e.host}${n}${e.path?`/${e.path}`:\"\"}/api/`}(e)}${e.projectId}/envelope/`}(t)}?${Dn(t,r)}`);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:i})}var t,n,r}captureException(e,t,n){const r=yt();if(kt(e))return Kt&&xe.log(Bn),r;const i={event_id:r,...t};return this._process(this.eventFromException(e,i).then((e=>this._captureEvent(e,i,n)))),i.event_id}captureMessage(e,t,n,r){const i={event_id:yt(),...n},o=ae(e)?e:String(e),a=se(e)?this.eventFromMessage(o,t,i):this.eventFromException(e,i);return this._process(a.then((e=>this._captureEvent(e,i,r)))),i.event_id}captureEvent(e,t,n){const r=yt();if(t&&t.originalException&&kt(t.originalException))return Kt&&xe.log(Bn),r;const i={event_id:r,...t},o=(e.sdkProcessingMetadata||{}).capturedSpanScope;return this._process(this._captureEvent(e,i,o||n)),i.event_id}captureSession(e){\"string\"!=typeof e.release?Kt&&xe.warn(\"Discarded session because of missing or non-string release\"):(this.sendSession(e),Zt(e,{init:!1}))}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?(this.emit(\"flush\"),this._isClientDoneProcessing(e).then((n=>t.flush(e).then((e=>n&&e))))):Pt(!0)}close(e){return this.flush(e).then((e=>(this.getOptions().enabled=!1,this.emit(\"close\"),e)))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some((({name:e})=>e.startsWith(\"Spotlight\"))))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];Fn(this,e,this._integrations),t||Rn(this,[e])}sendEvent(e,t={}){this.emit(\"beforeSendEvent\",e,t);let n=Cn(e,this._dsn,this._options._metadata,this._options.tunnel);for(const e of t.attachments||[])n=Bt(n,$t(e));const r=this.sendEnvelope(n);r&&r.then((t=>this.emit(\"afterSendEvent\",e,t)),null)}sendSession(e){const t=function(e,t,n,r){const i=zt(n);return Ft({sent_at:(new Date).toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:Ie(t)}},[\"aggregates\"in e?[{type:\"sessions\"},e]:[{type:\"session\"},e.toJSON()]])}(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(t)}recordDroppedEvent(e,t,n){if(this._options.sendClientReports){const r=\"number\"==typeof n?n:1,i=`${e}:${t}`;Kt&&xe.log(`Recording outcome: \"${i}\"${r>1?` (${r} times)`:\"\"}`),this._outcomes[i]=(this._outcomes[i]||0)+r}}on(e,t){const n=this._hooks[e]=this._hooks[e]||[];return n.push(t),()=>{const e=n.indexOf(t);e>-1&&n.splice(e,1)}}emit(e,...t){const n=this._hooks[e];n&&n.forEach((e=>e(...t)))}sendEnvelope(e){return this.emit(\"beforeEnvelope\",e),this._isEnabled()&&this._transport?this._transport.send(e).then(null,(e=>(Kt&&xe.error(\"Error while sending event:\",e),e))):(Kt&&xe.error(\"Transport disabled\"),Pt({}))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=function(e,t){const n={};return t.forEach((t=>{t&&Fn(e,t,n)})),n}(this,e),Rn(this,e)}_updateSessionFromEvent(e,t){let n=!1,r=!1;const i=t.exception&&t.exception.values;if(i){r=!0;for(const e of i){const t=e.mechanism;if(t&&!1===t.handled){n=!0;break}}}const o=\"ok\"===e.status;(o&&0===e.errors||o&&n)&&(Zt(e,{...n&&{status:\"crashed\"},errors:e.errors||Number(r||n)}),this.captureSession(e))}_isClientDoneProcessing(e){return new At((t=>{let n=0;const r=setInterval((()=>{0==this._numProcessing?(clearInterval(r),t(!0)):(n+=1,e&&n>=e&&(clearInterval(r),t(!1)))}),1)}))}_isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._transport}_prepareEvent(e,t,n,r=hn()){const i=this.getOptions(),o=Object.keys(this._integrations);return!t.integrations&&o.length>0&&(t.integrations=o),this.emit(\"preprocessEvent\",e,t),e.type||r.setLastEventId(e.event_id||t.event_id),An(i,e,t,n,this,r).then((e=>{if(null===e)return e;const t={...r.getPropagationContext(),...n?n.getPropagationContext():void 0};if(!(e.contexts&&e.contexts.trace)&&t){const{traceId:n,spanId:r,parentSpanId:i,dsc:o}=t;e.contexts={trace:We({trace_id:n,span_id:r,parent_span_id:i}),...e.contexts};const a=o||kn(n,this);e.sdkProcessingMetadata={dynamicSamplingContext:a,...e.sdkProcessingMetadata}}return e}))}_captureEvent(e,t={},n){return this._processEvent(e,t,n).then((e=>e.event_id),(e=>{if(Kt){const t=e;\"log\"===t.logLevel?xe.log(t.message):xe.warn(t)}}))}_processEvent(e,t,n){const r=this.getOptions(),{sampleRate:i}=r,o=Jn(e),a=Vn(e),s=e.type||\"error\",c=`before send for type \\`${s}\\``,l=void 0===i?void 0:function(e){if(\"boolean\"==typeof e)return Number(e);const t=\"string\"==typeof e?parseFloat(e):e;if(!(\"number\"!=typeof t||isNaN(t)||t<0||t>1))return t;Kt&&xe.warn(`[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`)}(i);if(a&&\"number\"==typeof l&&Math.random()>l)return this.recordDroppedEvent(\"sample_rate\",\"error\",e),Ot(new Re(`Discarding event because it's not included in the random sample (sampling rate = ${i})`,\"log\"));const u=\"replay_event\"===s?\"replay\":s,d=(e.sdkProcessingMetadata||{}).capturedSpanIsolationScope;return this._prepareEvent(e,t,n,d).then((n=>{if(null===n)throw this.recordDroppedEvent(\"event_processor\",u,e),new Re(\"An event processor returned `null`, will not send event.\",\"log\");if(t.data&&!0===t.data.__sentry__)return n;const i=function(e,t,n,r){const{beforeSend:i,beforeSendTransaction:o,beforeSendSpan:a}=t;if(Vn(n)&&i)return i(n,r);if(Jn(n)){if(n.spans&&a){const t=[];for(const r of n.spans){const n=a(r);n?t.push(n):e.recordDroppedEvent(\"before_send\",\"span\")}n.spans=t}if(o){if(n.spans){const e=n.spans.length;n.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:e}}return o(n,r)}}return n}(this,r,n,t);return function(e,t){const n=`${t} must return \\`null\\` or a valid event.`;if(ue(e))return e.then((e=>{if(!ce(e)&&null!==e)throw new Re(n);return e}),(e=>{throw new Re(`${t} rejected with ${e}`)}));if(!ce(e)&&null!==e)throw new Re(n);return e}(i,c)})).then((r=>{if(null===r){if(this.recordDroppedEvent(\"before_send\",u,e),o){const t=1+(e.spans||[]).length;this.recordDroppedEvent(\"before_send\",\"span\",t)}throw new Re(`${c} returned \\`null\\`, will not send event.`,\"log\")}const i=n&&n.getSession();if(!o&&i&&this._updateSessionFromEvent(i,r),o){const e=(r.sdkProcessingMetadata&&r.sdkProcessingMetadata.spanCountBeforeProcessing||0)-(r.spans?r.spans.length:0);e>0&&this.recordDroppedEvent(\"before_send\",\"span\",e)}const a=r.transaction_info;if(o&&a&&r.transaction!==e.transaction){const e=\"custom\";r.transaction_info={...a,source:e}}return this.sendEvent(r,t),r})).then(null,(e=>{if(e instanceof Re)throw e;throw this.captureException(e,{data:{__sentry__:!0},originalException:e}),new Re(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${e}`)}))}_process(e){this._numProcessing++,e.then((e=>(this._numProcessing--,e)),(e=>(this._numProcessing--,e)))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map((([e,t])=>{const[n,r]=e.split(\":\");return{reason:n,category:r,quantity:t}}))}_flushOutcomes(){Kt&&xe.log(\"Flushing outcomes...\");const e=this._clearOutcomes();if(0===e.length)return void(Kt&&xe.log(\"No outcomes to send\"));if(!this._dsn)return void(Kt&&xe.log(\"No dsn provided, will not send outcomes\"));Kt&&xe.log(\"Sending outcomes:\",e);const t=(n=e,Ft((r=this._options.tunnel&&Ie(this._dsn))?{dsn:r}:{},[[{type:\"client_report\"},{timestamp:i||lt(),discarded_events:n}]]));var n,r,i;this.sendEnvelope(t)}}function Vn(e){return void 0===e.type}function Jn(e){return\"transaction\"===e.type}function $n(e,t,n=jt(e.bufferSize||64)){let r={};return{send:function(i){const o=[];if(Ut(i,((t,n)=>{const i=Wt(n);if(function(e,t,n=Date.now()){return function(e,t){return e[t]||e.all||0}(e,t)>n}(r,i)){const r=qn(t,n);e.recordDroppedEvent(\"ratelimit_backoff\",i,r)}else o.push(t)})),0===o.length)return Pt({});const a=Ft(i[0],o),s=t=>{Ut(a,((n,r)=>{const i=qn(n,r);e.recordDroppedEvent(t,Wt(r),i)}))};return n.add((()=>t({body:Jt(a)}).then((e=>(void 0!==e.statusCode&&(e.statusCode<200||e.statusCode>=300)&&Kt&&xe.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),r=Ht(r,e),e)),(e=>{throw s(\"network_error\"),e})))).then((e=>e),(e=>{if(e instanceof Re)return Kt&&xe.error(\"Skipped sending event because buffer is full.\"),s(\"queue_overflow\"),Pt({});throw e}))},flush:e=>n.drain(e)}}function qn(e,t){if(\"event\"===t||\"transaction\"===t)return Array.isArray(e)?e[1]:void 0}const Wn=100;function zn(e,t){const n=fn(),r=hn();if(!n)return;const{beforeBreadcrumb:i=null,maxBreadcrumbs:o=Wn}=n.getOptions();if(o<=0)return;const a={timestamp:lt(),...e},s=i?je((()=>i(a,t))):a;null!==s&&(n.emit&&n.emit(\"beforeAddBreadcrumb\",s,t),r.addBreadcrumb(s,o))}let Hn;const Gn=new WeakMap,Qn=()=>({name:\"FunctionToString\",setupOnce(){Hn=Function.prototype.toString;try{Function.prototype.toString=function(...e){const t=Ve(this),n=Gn.has(fn())&&void 0!==t?t:this;return Hn.apply(n,e)}}catch(e){}},setup(e){Gn.set(e,!0)}}),Kn=[/^Script error\\.?$/,/^Javascript error: Script error\\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,\"undefined is not an object (evaluating 'a.L')\",'can\\'t redefine non-configurable property \"solana\"',\"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)\",\"Can't find variable: _AutofillCallbackHandler\"],Yn=(e={})=>({name:\"InboundFilters\",processEvent(t,n,r){const i=r.getOptions(),o=function(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:Kn],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]],ignoreInternal:void 0===e.ignoreInternal||e.ignoreInternal}}(e,i);return function(e,t){if(t.ignoreInternal&&function(e){try{return\"SentryError\"===e.exception.values[0].type}catch(e){}return!1}(e))return Kt&&xe.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${bt(e)}`),!0;if(function(e,t){if(e.type||!t||!t.length)return!1;return function(e){const t=[];e.message&&t.push(e.message);let n;try{n=e.exception.values[e.exception.values.length-1]}catch(e){}n&&n.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`));return t}(e).some((e=>me(e,t)))}(e,t.ignoreErrors))return Kt&&xe.warn(`Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${bt(e)}`),!0;if(function(e){if(e.type)return!1;if(!e.exception||!e.exception.values||0===e.exception.values.length)return!1;return!e.message&&!e.exception.values.some((e=>e.stacktrace||e.type&&\"Error\"!==e.type||e.value))}(e))return Kt&&xe.warn(`Event dropped due to not having an error message, error type or stacktrace.\\nEvent: ${bt(e)}`),!0;if(function(e,t){if(\"transaction\"!==e.type||!t||!t.length)return!1;const n=e.transaction;return!!n&&me(n,t)}(e,t.ignoreTransactions))return Kt&&xe.warn(`Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${bt(e)}`),!0;if(function(e,t){if(!t||!t.length)return!1;const n=Xn(e);return!!n&&me(n,t)}(e,t.denyUrls))return Kt&&xe.warn(`Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${bt(e)}.\\nUrl: ${Xn(e)}`),!0;if(!function(e,t){if(!t||!t.length)return!0;const n=Xn(e);return!n||me(n,t)}(e,t.allowUrls))return Kt&&xe.warn(`Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${bt(e)}.\\nUrl: ${Xn(e)}`),!0;return!1}(t,o)?null:t}});function Xn(e){try{let t;try{t=e.exception.values[0].stacktrace.frames}catch(e){}return t?function(e=[]){for(let t=e.length-1;t>=0;t--){const n=e[t];if(n&&\"\"!==n.filename&&\"[native code]\"!==n.filename)return n.filename||null}return null}(t):null}catch(t){return Kt&&xe.error(`Cannot extract url for event ${bt(e)}`),null}}const Zn=()=>{let e;return{name:\"Dedupe\",processEvent(t){if(t.type)return t;try{if(function(e,t){if(!t)return!1;if(function(e,t){const n=e.message,r=t.message;if(!n&&!r)return!1;if(n&&!r||!n&&r)return!1;if(n!==r)return!1;if(!tr(e,t))return!1;if(!er(e,t))return!1;return!0}(e,t))return!0;if(function(e,t){const n=nr(t),r=nr(e);if(!n||!r)return!1;if(n.type!==r.type||n.value!==r.value)return!1;if(!tr(e,t))return!1;if(!er(e,t))return!1;return!0}(e,t))return!0;return!1}(t,e))return Kt&&xe.warn(\"Event dropped due to being a duplicate of previously captured event.\"),null}catch(e){}return e=t}}};function er(e,t){let n=Ze(e),r=Ze(t);if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;if(r.length!==n.length)return!1;for(let e=0;e0}function ar(e,t={},n){if(\"function\"!=typeof e)return e;try{const t=e.__sentry_wrapped__;if(t)return\"function\"==typeof t?t:e;if(Ve(e))return e}catch(t){return e}const r=function(){const r=Array.prototype.slice.call(arguments);try{n&&\"function\"==typeof n&&n.apply(this,arguments);const i=r.map((e=>ar(e,t)));return e.apply(this,i)}catch(e){throw ir++,setTimeout((()=>{ir--})),function(...e){const t=dn(Yt());if(2===e.length){const[n,r]=e;return n?t.withSetScope(n,r):t.withScope(r)}t.withScope(e[0])}((n=>{var i,o;n.addEventProcessor((e=>(t.mechanism&&(wt(e,void 0,void 0),St(e,t.mechanism)),e.extra={...e.extra,arguments:r},e))),i=e,pn().captureException(i,xn(o))})),e}};try{for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])}catch(e){}Ue(r,e),Be(e,\"__sentry_wrapped__\",r);try{Object.getOwnPropertyDescriptor(r,\"name\").configurable&&Object.defineProperty(r,\"name\",{get:()=>e.name})}catch(e){}return r}const sr=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__;function cr(e,t){const n=dr(e,t),r={type:t&&t.name,value:hr(t)};return n.length&&(r.stacktrace={frames:n}),void 0===r.type&&\"\"===r.value&&(r.value=\"Unrecoverable error caught\"),r}function lr(e,t,n,r){const i=fn(),o=i&&i.getOptions().normalizeDepth,a=function(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const n=e[t];if(n instanceof Error)return n}return}(t),s={__serialized__:Ct(t,o)};if(a)return{exception:{values:[cr(e,a)]},extra:s};const c={exception:{values:[{type:le(t)?t.constructor.name:r?\"UnhandledRejection\":\"Error\",value:mr(t,{isUnhandledRejection:r})}]},extra:s};if(n){const t=dr(e,n);t.length&&(c.exception.values[0].stacktrace={frames:t})}return c}function ur(e,t){return{exception:{values:[cr(e,t)]}}}function dr(e,t){const n=t.stacktrace||t.stack||\"\",r=function(e){if(e&&pr.test(e.message))return 1;return 0}(t),i=function(e){if(\"number\"==typeof e.framesToPop)return e.framesToPop;return 0}(t);try{return e(n,r,i)}catch(e){}return[]}const pr=/Minified React error #\\d+;/i;function hr(e){const t=e&&e.message;return t?t.error&&\"string\"==typeof t.error.message?t.error.message:t:\"No error message\"}function fr(e,t,n,r,i){let o;if(re(t)&&t.error){return ur(e,t.error)}if(ie(t)||ne(t,\"DOMException\")){const i=t;if(\"stack\"in t)o=ur(e,t);else{const t=i.name||(ie(i)?\"DOMError\":\"DOMException\"),a=i.message?`${t}: ${i.message}`:t;o=vr(e,a,n,r),wt(o,a)}return\"code\"in i&&(o.tags={...o.tags,\"DOMException.code\":`${i.code}`}),o}if(te(t))return ur(e,t);if(ce(t)||le(t)){return o=lr(e,t,n,i),St(o,{synthetic:!0}),o}return o=vr(e,t,n,r),wt(o,`${t}`,void 0),St(o,{synthetic:!0}),o}function vr(e,t,n,r){const i={};if(r&&n){const r=dr(e,n);r.length&&(i.exception={values:[{value:t,stacktrace:{frames:r}}]})}if(ae(t)){const{__sentry_template_string__:e,__sentry_template_values__:n}=t;return i.logentry={message:e,params:n},i}return i.message=t,i}function mr(e,{isUnhandledRejection:t}){const n=function(e,t=40){const n=Object.keys(Je(e));n.sort();const r=n[0];if(!r)return\"[object has no keys]\";if(r.length>=t)return he(r,t);for(let e=n.length;e>0;e--){const r=n.slice(0,e).join(\", \");if(!(r.length>t))return e===n.length?r:he(r,t)}return\"\"}(e),r=t?\"promise rejection\":\"exception\";if(re(e))return`Event \\`ErrorEvent\\` captured as ${r} with message \\`${e.message}\\``;if(le(e)){return`Event \\`${function(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch(e){}}(e)}\\` (type=${e.type}) captured as ${r}`}return`Object captured as ${r} with keys: ${n}`}class gr extends Un{constructor(e){const t={parentSpanIsAlwaysRootSpan:!0,...e};!function(e,t,n=[t],r=\"npm\"){const i=e._metadata||{};i.sdk||(i.sdk={name:`sentry.javascript.${t}`,packages:n.map((e=>({name:`${r}:@sentry/${e}`,version:Se}))),version:Se}),e._metadata=i}(t,\"browser\",[\"browser\"],rr.SENTRY_SDK_SOURCE||\"npm\"),super(t),t.sendClientReports&&rr.document&&rr.document.addEventListener(\"visibilitychange\",(()=>{\"hidden\"===rr.document.visibilityState&&this._flushOutcomes()}))}eventFromException(e,t){return function(e,t,n,r){const i=fr(e,t,n&&n.syntheticException||void 0,r);return St(i),i.level=\"error\",n&&n.event_id&&(i.event_id=n.event_id),Pt(i)}(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t=\"info\",n){return function(e,t,n=\"info\",r,i){const o=vr(e,t,r&&r.syntheticException||void 0,i);return o.level=n,r&&r.event_id&&(o.event_id=r.event_id),Pt(o)}(this._options.stackParser,e,t,n,this._options.attachStacktrace)}captureUserFeedback(e){if(!this._isEnabled())return void(sr&&xe.warn(\"SDK not enabled, will not capture user feedback.\"));const t=function(e,{metadata:t,tunnel:n,dsn:r}){const i={event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&t.sdk&&{sdk:{name:t.sdk.name,version:t.sdk.version}},...!!n&&!!r&&{dsn:Ie(r)}},o=function(e){return[{type:\"user_report\"},e]}(e);return Ft(i,[o])}(e,{metadata:this.getSdkMetadata(),dsn:this.getDsn(),tunnel:this.getOptions().tunnel});this.sendEnvelope(t)}_prepareEvent(e,t,n){return e.platform=e.platform||\"javascript\",super._prepareEvent(e,t,n)}}const yr=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,_r=ke;let br,wr,Sr,kr;function Mr(){if(!_r.document)return;const e=it.bind(null,\"dom\"),t=Cr(e,!0);_r.document.addEventListener(\"click\",t,!1),_r.document.addEventListener(\"keypress\",t,!1),[\"EventTarget\",\"Node\"].forEach((t=>{const n=_r[t]&&_r[t].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty(\"addEventListener\")&&(Fe(n,\"addEventListener\",(function(t){return function(n,r,i){if(\"click\"===n||\"keypress\"==n)try{const r=this,o=r.__sentry_instrumentation_handlers__=r.__sentry_instrumentation_handlers__||{},a=o[n]=o[n]||{refCount:0};if(!a.handler){const r=Cr(e);a.handler=r,t.call(this,n,r,i)}a.refCount++}catch(e){}return t.call(this,n,r,i)}})),Fe(n,\"removeEventListener\",(function(e){return function(t,n,r){if(\"click\"===t||\"keypress\"==t)try{const n=this,i=n.__sentry_instrumentation_handlers__||{},o=i[t];o&&(o.refCount--,o.refCount<=0&&(e.call(this,t,o.handler,r),o.handler=void 0,delete i[t]),0===Object.keys(i).length&&delete n.__sentry_instrumentation_handlers__)}catch(e){}return e.call(this,t,n,r)}})))}))}function Cr(e,t=!1){return n=>{if(!n||n._sentryCaptured)return;const r=function(e){try{return e.target}catch(e){return null}}(n);if(function(e,t){return\"keypress\"===e&&(!t||!t.tagName||\"INPUT\"!==t.tagName&&\"TEXTAREA\"!==t.tagName&&!t.isContentEditable)}(n.type,r))return;Be(n,\"_sentryCaptured\",!0),r&&!r._sentryId&&Be(r,\"_sentryId\",yt());const i=\"keypress\"===n.type?\"input\":n.type;if(!function(e){if(e.type!==wr)return!1;try{if(!e.target||e.target._sentryId!==Sr)return!1}catch(e){}return!0}(n)){e({event:n,name:i,global:t}),wr=n.type,Sr=r?r._sentryId:void 0}clearTimeout(br),br=_r.setTimeout((()=>{Sr=void 0,wr=void 0}),1e3)}}function Er(){if(!function(){const e=Qt.chrome,t=e&&e.app&&e.app.runtime,n=\"history\"in Qt&&!!Qt.history.pushState&&!!Qt.history.replaceState;return!t&&n}())return;const e=_r.onpopstate;function t(e){return function(...t){const n=t.length>2?t[2]:void 0;if(n){const e=kr,t=String(n);kr=t;it(\"history\",{from:e,to:t})}return e.apply(this,t)}}_r.onpopstate=function(...t){const n=_r.location.href,r=kr;kr=n;if(it(\"history\",{from:r,to:n}),e)try{return e.apply(this,t)}catch(e){}},Fe(_r.history,\"pushState\",t),Fe(_r.history,\"replaceState\",t)}const Tr={};function Pr(e){Tr[e]=void 0}const Or=\"__sentry_xhr_v3__\";function Ar(){if(!_r.XMLHttpRequest)return;const e=XMLHttpRequest.prototype;e.open=new Proxy(e.open,{apply(e,t,n){const r=1e3*ut(),i=oe(n[0])?n[0].toUpperCase():void 0,o=function(e){if(oe(e))return e;try{return e.toString()}catch(e){}return}(n[1]);if(!i||!o)return e.apply(t,n);t[Or]={method:i,url:o,request_headers:{}},\"POST\"===i&&o.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const a=()=>{const e=t[Or];if(e&&4===t.readyState){try{e.status_code=t.status}catch(e){}it(\"xhr\",{endTimestamp:1e3*ut(),startTimestamp:r,xhr:t})}};return\"onreadystatechange\"in t&&\"function\"==typeof t.onreadystatechange?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply:(e,t,n)=>(a(),e.apply(t,n))}):t.addEventListener(\"readystatechange\",a),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(e,t,n){const[r,i]=n,o=t[Or];return o&&oe(r)&&oe(i)&&(o.request_headers[r.toLowerCase()]=i),e.apply(t,n)}}),e.apply(t,n)}}),e.send=new Proxy(e.send,{apply(e,t,n){const r=t[Or];if(!r)return e.apply(t,n);void 0!==n[0]&&(r.body=n[0]);return it(\"xhr\",{startTimestamp:1e3*ut(),xhr:t}),e.apply(t,n)}})}function jr(e,t=function(e){const t=Tr[e];if(t)return t;let n=_r[e];if(st(n))return Tr[e]=n.bind(_r);const r=_r.document;if(r&&\"function\"==typeof r.createElement)try{const t=r.createElement(\"iframe\");t.hidden=!0,r.head.appendChild(t);const i=t.contentWindow;i&&i[e]&&(n=i[e]),r.head.removeChild(t)}catch(t){yr&&xe.warn(`Could not create sandbox iframe for ${e} check, bailing to window.${e}: `,t)}return n?Tr[e]=n.bind(_r):n}(\"fetch\")){let n=0,r=0;return $n(e,(function(i){const o=i.body.length;n+=o,r++;const a={body:i.body,method:\"POST\",referrerPolicy:\"origin\",headers:e.headers,keepalive:n<=6e4&&r<15,...e.fetchOptions};if(!t)return Pr(\"fetch\"),Ot(\"No fetch implementation available\");try{return t(e.url,a).then((e=>(n-=o,r--,{statusCode:e.status,headers:{\"x-sentry-rate-limits\":e.headers.get(\"X-Sentry-Rate-Limits\"),\"retry-after\":e.headers.get(\"Retry-After\")}})))}catch(e){return Pr(\"fetch\"),n-=o,r--,Ot(e)}}))}function xr(e,t,n,r){const i={filename:e,function:\"\"===t?He:t,in_app:!0};return void 0!==n&&(i.lineno=n),void 0!==r&&(i.colno=r),i}const Lr=/^\\s*at (\\S+?)(?::(\\d+))(?::(\\d+))\\s*$/i,Ir=/^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,Dr=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/,Nr=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i,Rr=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i,Fr=function(...e){const t=e.sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));return(e,n=0,r=0)=>{const i=[],o=e.split(\"\\n\");for(let e=n;e1024)continue;const a=Ge.test(n)?n.replace(Ge,\"$1\"):n;if(!a.match(/\\S*Error: /)){for(const e of t){const t=e(a);if(t){i.push(t);break}}if(i.length>=50+r)break}}return function(e){if(!e.length)return[];const t=Array.from(e);/sentryWrapped/.test(Ke(t).function||\"\")&&t.pop();t.reverse(),Qe.test(Ke(t).function||\"\")&&(t.pop(),Qe.test(Ke(t).function||\"\")&&t.pop());return t.slice(0,50).map((e=>({...e,filename:e.filename||Ke(t).filename,function:e.function||He})))}(i.slice(r))}}(...[[30,e=>{const t=Lr.exec(e);if(t){const[,e,n,r]=t;return xr(e,He,+n,+r)}const n=Ir.exec(e);if(n){if(n[2]&&0===n[2].indexOf(\"eval\")){const e=Dr.exec(n[2]);e&&(n[2]=e[1],n[3]=e[2],n[4]=e[3])}const[e,t]=Br(n[1]||He,n[2]);return xr(t,e,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}}],[50,e=>{const t=Nr.exec(e);if(t){if(t[3]&&t[3].indexOf(\" > eval\")>-1){const e=Rr.exec(t[3]);e&&(t[1]=t[1]||\"eval\",t[3]=e[1],t[4]=e[2],t[5]=\"\")}let e=t[3],n=t[1]||He;return[n,e]=Br(n,e),xr(e,n,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}}]]),Br=(e,t)=>{const n=-1!==e.indexOf(\"safari-extension\"),r=-1!==e.indexOf(\"safari-web-extension\");return n||r?[-1!==e.indexOf(\"@\")?e.split(\"@\")[0]:He,n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]},Ur=1024,Vr=(e={})=>{const t={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e};return{name:\"Breadcrumbs\",setup(e){var n;t.console&&function(e){const t=\"console\";nt(t,e),rt(t,ot)}(function(e){return function(t){if(fn()!==e)return;const n={category:\"console\",data:{arguments:t.args,logger:\"console\"},level:It(t.level),message:fe(t.args,\" \")};if(\"assert\"===t.level){if(!1!==t.args[0])return;n.message=`Assertion failed: ${fe(t.args.slice(1),\" \")||\"console.assert\"}`,n.data.arguments=t.args.slice(1)}zn(n,{input:t.args,level:t.level})}}(e)),t.dom&&(n=function(e,t){return function(n){if(fn()!==e)return;let r,i,o=\"object\"==typeof t?t.serializeAttribute:void 0,a=\"object\"==typeof t&&\"number\"==typeof t.maxStringLength?t.maxStringLength:void 0;a&&a>Ur&&(sr&&xe.warn(`\\`dom.maxStringLength\\` cannot exceed 1024, but a value of ${a} was configured. Sentry will use 1024 instead.`),a=Ur),\"string\"==typeof o&&(o=[o]);try{const e=n.event,t=function(e){return!!e&&!!e.target}(e)?e.target:e;r=Ee(t,{keyAttrs:o,maxStringLength:a}),i=function(e){if(!Ce.HTMLElement)return null;let t=e;for(let e=0;e<5;e++){if(!t)return null;if(t instanceof HTMLElement){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}t=t.parentNode}return null}(t)}catch(e){r=\"\"}if(0===r.length)return;const s={category:`ui.${n.name}`,message:r};i&&(s.data={\"ui.component_name\":i}),zn(s,{event:n.event,name:n.name,global:n.global})}}(e,t.dom),nt(\"dom\",n),rt(\"dom\",Mr)),t.xhr&&function(e){nt(\"xhr\",e),rt(\"xhr\",Ar)}(function(e){return function(t){if(fn()!==e)return;const{startTimestamp:n,endTimestamp:r}=t,i=t.xhr[Or];if(!n||!r||!i)return;const{method:o,url:a,status_code:s,body:c}=i,l={method:o,url:a,status_code:s},u={xhr:t.xhr,input:c,startTimestamp:n,endTimestamp:r};zn({category:\"xhr\",data:l,type:\"http\",level:we(s)},u)}}(e)),t.fetch&&dt(function(e){return function(t){if(fn()!==e)return;const{startTimestamp:n,endTimestamp:r}=t;if(r&&(!t.fetchData.url.match(/sentry_key/)||\"POST\"!==t.fetchData.method))if(t.error){zn({category:\"fetch\",data:t.fetchData,level:\"error\",type:\"http\"},{data:t.error,input:t.args,startTimestamp:n,endTimestamp:r})}else{const e=t.response,i={...t.fetchData,status_code:e&&e.status},o={input:t.args,response:e,startTimestamp:n,endTimestamp:r};zn({category:\"fetch\",data:i,type:\"http\",level:we(i.status_code)},o)}}}(e)),t.history&&function(e){const t=\"history\";nt(t,e),rt(t,Er)}(function(e){return function(t){if(fn()!==e)return;let n=t.from,r=t.to;const i=xt(rr.location.href);let o=n?xt(n):void 0;const a=xt(r);o&&o.path||(o=i),i.protocol===a.protocol&&i.host===a.host&&(r=a.relative),i.protocol===o.protocol&&i.host===o.host&&(n=o.relative),zn({category:\"navigation\",data:{from:n,to:r}})}}(e)),t.sentry&&e.on(\"beforeSendEvent\",function(e){return function(t){fn()===e&&zn({category:\"sentry.\"+(\"transaction\"===t.type?\"transaction\":\"event\"),event_id:t.event_id,level:t.level,message:bt(t)},{event:t})}}(e))}}};const Jr=[\"EventTarget\",\"Window\",\"Node\",\"ApplicationCache\",\"AudioTrackList\",\"BroadcastChannel\",\"ChannelMergerNode\",\"CryptoOperation\",\"EventSource\",\"FileReader\",\"HTMLUnknownElement\",\"IDBDatabase\",\"IDBRequest\",\"IDBTransaction\",\"KeyOperation\",\"MediaController\",\"MessagePort\",\"ModalWindow\",\"Notification\",\"SVGElementInstance\",\"Screen\",\"SharedWorker\",\"TextTrack\",\"TextTrackCue\",\"TextTrackList\",\"WebSocket\",\"WebSocketWorker\",\"Worker\",\"XMLHttpRequest\",\"XMLHttpRequestEventTarget\",\"XMLHttpRequestUpload\"],$r=(e={})=>{const t={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,...e};return{name:\"BrowserApiErrors\",setupOnce(){t.setTimeout&&Fe(rr,\"setTimeout\",qr),t.setInterval&&Fe(rr,\"setInterval\",qr),t.requestAnimationFrame&&Fe(rr,\"requestAnimationFrame\",Wr),t.XMLHttpRequest&&\"XMLHttpRequest\"in rr&&Fe(XMLHttpRequest.prototype,\"send\",zr);const e=t.eventTarget;if(e){(Array.isArray(e)?e:Jr).forEach(Hr)}}}};function qr(e){return function(...t){const n=t[0];return t[0]=ar(n,{mechanism:{data:{function:Xe(e)},handled:!1,type:\"instrument\"}}),e.apply(this,t)}}function Wr(e){return function(t){return e.apply(this,[ar(t,{mechanism:{data:{function:\"requestAnimationFrame\",handler:Xe(e)},handled:!1,type:\"instrument\"}})])}}function zr(e){return function(...t){const n=this;return[\"onload\",\"onerror\",\"onprogress\",\"onreadystatechange\"].forEach((e=>{e in n&&\"function\"==typeof n[e]&&Fe(n,e,(function(t){const n={mechanism:{data:{function:e,handler:Xe(t)},handled:!1,type:\"instrument\"}},r=Ve(t);return r&&(n.mechanism.data.handler=Xe(r)),ar(t,n)}))})),e.apply(this,t)}}function Hr(e){const t=rr,n=t[e]&&t[e].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty(\"addEventListener\")&&(Fe(n,\"addEventListener\",(function(t){return function(n,r,i){try{\"function\"==typeof r.handleEvent&&(r.handleEvent=ar(r.handleEvent,{mechanism:{data:{function:\"handleEvent\",handler:Xe(r),target:e},handled:!1,type:\"instrument\"}}))}catch(e){}return t.apply(this,[n,ar(r,{mechanism:{data:{function:\"addEventListener\",handler:Xe(r),target:e},handled:!1,type:\"instrument\"}}),i])}})),Fe(n,\"removeEventListener\",(function(e){return function(t,n,r){const i=n;try{const n=i&&i.__sentry_wrapped__;n&&e.call(this,t,n,r)}catch(e){}return e.call(this,t,i,r)}})))}const Gr=(e={})=>{const t={onerror:!0,onunhandledrejection:!0,...e};return{name:\"GlobalHandlers\",setupOnce(){Error.stackTraceLimit=50},setup(e){t.onerror&&(!function(e){!function(e){const t=\"error\";nt(t,e),rt(t,vt)}((t=>{const{stackParser:n,attachStacktrace:r}=Kr();if(fn()!==e||or())return;const{msg:i,url:o,line:a,column:s,error:c}=t,l=function(e,t,n,r){const i=e.exception=e.exception||{},o=i.values=i.values||[],a=o[0]=o[0]||{},s=a.stacktrace=a.stacktrace||{},c=s.frames=s.frames||[],l=isNaN(parseInt(r,10))?void 0:r,u=isNaN(parseInt(n,10))?void 0:n,d=oe(t)&&t.length>0?t:function(){try{return Ce.document.location.href}catch(e){return\"\"}}();0===c.length&&c.push({colno:l,filename:d,function:He,in_app:!0,lineno:u});return e}(fr(n,c||i,void 0,r,!1),o,a,s);l.level=\"error\",In(l,{originalException:c,mechanism:{handled:!1,type:\"onerror\"}})}))}(e),Qr(\"onerror\")),t.onunhandledrejection&&(!function(e){!function(e){const t=\"unhandledrejection\";nt(t,e),rt(t,gt)}((t=>{const{stackParser:n,attachStacktrace:r}=Kr();if(fn()!==e||or())return;const i=function(e){if(se(e))return e;try{if(\"reason\"in e)return e.reason;if(\"detail\"in e&&\"reason\"in e.detail)return e.detail.reason}catch(e){}return e}(t),o=se(i)?{exception:{values:[{type:\"UnhandledRejection\",value:`Non-Error promise rejection captured with value: ${String(i)}`}]}}:fr(n,i,void 0,r,!0);o.level=\"error\",In(o,{originalException:i,mechanism:{handled:!1,type:\"onunhandledrejection\"}})}))}(e),Qr(\"onunhandledrejection\"))}}};function Qr(e){sr&&xe.log(`Global Handler attached: ${e}`)}function Kr(){const e=fn();return e&&e.getOptions()||{stackParser:()=>[],attachStacktrace:!1}}const Yr=()=>({name:\"HttpContext\",preprocessEvent(e){if(!rr.navigator&&!rr.location&&!rr.document)return;const t=e.request&&e.request.url||rr.location&&rr.location.href,{referrer:n}=rr.document||{},{userAgent:r}=rr.navigator||{},i={...e.request&&e.request.headers,...n&&{Referer:n},...r&&{\"User-Agent\":r}},o={...e.request,...t&&{url:t},headers:i};e.request=o}}),Xr=(e={})=>{const t=e.limit||5,n=e.key||\"cause\";return{name:\"LinkedErrors\",preprocessEvent(e,r,i){const o=i.getOptions();ge(cr,o.stackParser,o.maxValueLength,n,t,e,r)}}};var Zr=\"new\",ei=\"loading\",ti=\"loaded\",ni=\"joining-meeting\",ri=\"joined-meeting\",ii=\"left-meeting\",oi=\"error\",ai=\"blocked\",si=\"off\",ci=\"sendable\",li=\"loading\",ui=\"interrupted\",di=\"playable\",pi=\"unknown\",hi=\"full\",fi=\"lobby\",vi=\"none\",mi=\"base\",gi=\"*\",yi=\"ejected\",_i=\"nbf-room\",bi=\"nbf-token\",wi=\"exp-room\",Si=\"exp-token\",ki=\"no-room\",Mi=\"meeting-full\",Ci=\"end-of-life\",Ei=\"not-allowed\",Ti=\"connection-error\",Pi=\"cam-in-use\",Oi=\"mic-in-use\",Ai=\"cam-mic-in-use\",ji=\"permissions\",xi=\"undefined-mediadevices\",Li=\"not-found\",Ii=\"constraints\",Di=\"unknown\",Ni=\"iframe-ready-for-launch-config\",Ri=\"iframe-launch-config\",Fi=\"theme-updated\",Bi=\"loading\",Ui=\"load-attempt-failed\",Vi=\"loaded\",Ji=\"started-camera\",$i=\"camera-error\",qi=\"joining-meeting\",Wi=\"joined-meeting\",zi=\"left-meeting\",Hi=\"participant-joined\",Gi=\"participant-updated\",Qi=\"participant-left\",Ki=\"participant-counts-updated\",Yi=\"access-state-updated\",Xi=\"meeting-session-summary-updated\",Zi=\"meeting-session-state-updated\",eo=\"meeting-session-data-error\",to=\"waiting-participant-added\",no=\"waiting-participant-updated\",ro=\"waiting-participant-removed\",io=\"track-started\",oo=\"track-stopped\",ao=\"transcription-started\",so=\"transcription-stopped\",co=\"transcription-error\",lo=\"recording-started\",uo=\"recording-stopped\",po=\"recording-stats\",ho=\"recording-error\",fo=\"recording-upload-completed\",vo=\"recording-data\",mo=\"app-message\",go=\"transcription-message\",yo=\"remote-media-player-started\",_o=\"remote-media-player-updated\",bo=\"remote-media-player-stopped\",wo=\"local-screen-share-started\",So=\"local-screen-share-stopped\",ko=\"local-screen-share-canceled\",Mo=\"active-speaker-change\",Co=\"active-speaker-mode-change\",Eo=\"network-quality-change\",To=\"network-connection\",Po=\"cpu-load-change\",Oo=\"face-counts-updated\",Ao=\"fullscreen\",jo=\"exited-fullscreen\",xo=\"live-streaming-started\",Lo=\"live-streaming-updated\",Io=\"live-streaming-stopped\",Do=\"live-streaming-error\",No=\"lang-updated\",Ro=\"receive-settings-updated\",Fo=\"input-settings-updated\",Bo=\"nonfatal-error\",Uo=\"error\",Vo=4096,Jo=102400,$o=\"iframe-call-message\",qo=\"local-screen-start\",Wo=\"daily-method-update-live-streaming-endpoints\",zo=\"transmit-log\",Ho=\"daily-custom-track\",Go={NONE:\"none\",BGBLUR:\"background-blur\",BGIMAGE:\"background-image\",FACE_DETECTION:\"face-detection\"},Qo={NONE:\"none\",NOISE_CANCELLATION:\"noise-cancellation\"},Ko={PLAY:\"play\",PAUSE:\"pause\"},Yo=[\"jpg\",\"png\",\"jpeg\"],Xo=\"add-endpoints\",Zo=\"remove-endpoints\",ea=\"sip-call-transfer\";function ta(){return!na()&&\"undefined\"!=typeof window&&window.navigator&&window.navigator.userAgent?window.navigator.userAgent:\"\"}function na(){return\"undefined\"!=typeof navigator&&navigator.product&&\"ReactNative\"===navigator.product}function ra(){return navigator&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function ia(){return!!(navigator&&navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)&&(function(e,t){if(!e||!t)return!0;switch(e){case\"Chrome\":return t.major>=75;case\"Safari\":return RTCRtpTransceiver.prototype.hasOwnProperty(\"currentDirection\")&&!(13===t.major&&0===t.minor&&0===t.point);case\"Firefox\":return t.major>=67}return!0}(pa(),ha())||na())}function oa(){if(na())return!1;if(!document)return!1;var e=document.createElement(\"iframe\");return!!e.requestFullscreen||!!e.webkitRequestFullscreen}var aa=function(){try{var e=document.createElement(\"canvas\"),t=null!=e.getContext(\"webgl2\");return e.remove(),t}catch(e){return!1}}();function sa(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return!na()&&(!!aa&&(e?function(){if(da())return!1;return[\"Chrome\",\"Firefox\"].includes(pa())}():function(){if(da())return!1;var e=pa();if(\"Safari\"===e){var t=ga();if(t.major<15||15===t.major&&t.minor<4)return!1}if(\"Chrome\"===e){return fa().major>=77}if(\"Firefox\"===e){return ya().major>=97}return[\"Chrome\",\"Firefox\",\"Safari\"].includes(e)}()))}function ca(){if(na())return!1;if(ua())return!1;if(\"undefined\"==typeof AudioWorkletNode)return!1;switch(pa()){case\"Chrome\":case\"Firefox\":return!0;case\"Safari\":var e=ha();return e.major>17||17===e.major&&e.minor>=4}return!1}function la(){return ra()&&!function(){var e,t=pa();if(!ta())return!0;switch(t){case\"Chrome\":return(e=fa()).major&&e.major>0&&e.major<75;case\"Firefox\":return(e=ya()).major<91;case\"Safari\":return(e=ga()).major<13||13===e.major&&e.minor<1;default:return!0}}()}function ua(){return ta().match(/Linux; Android/)}function da(){var e,t,n=ta(),r=n.match(/Mac/)&&(!na()&&\"undefined\"!=typeof window&&null!==(e=window)&&void 0!==e&&null!==(t=e.navigator)&&void 0!==t&&t.maxTouchPoints?window.navigator.maxTouchPoints:0)>=5;return!!(n.match(/Mobi/)||n.match(/Android/)||r)||(!!ta().match(/DailyAnd\\//)||void 0)}function pa(){if(\"undefined\"!=typeof window){var e=ta();return va()?\"Safari\":e.indexOf(\"Edge\")>-1?\"Edge\":e.match(/Chrome\\//)?\"Chrome\":e.indexOf(\"Safari\")>-1||ma()?\"Safari\":e.indexOf(\"Firefox\")>-1?\"Firefox\":e.indexOf(\"MSIE\")>-1||e.indexOf(\".NET\")>-1?\"IE\":\"Unknown Browser\"}}function ha(){switch(pa()){case\"Chrome\":return fa();case\"Safari\":return ga();case\"Firefox\":return ya();case\"Edge\":return function(){var e=0,t=0;if(\"undefined\"!=typeof window){var n=ta().match(/Edge\\/(\\d+).(\\d+)/);if(n)try{e=parseInt(n[1]),t=parseInt(n[2])}catch(e){}}return{major:e,minor:t}}()}}function fa(){var e=0,t=0,n=0,r=0,i=!1;if(\"undefined\"!=typeof window){var o=ta(),a=o.match(/Chrome\\/(\\d+).(\\d+).(\\d+).(\\d+)/);if(a)try{e=parseInt(a[1]),t=parseInt(a[2]),n=parseInt(a[3]),r=parseInt(a[4]),i=o.indexOf(\"OPR/\")>-1}catch(e){}}return{major:e,minor:t,build:n,patch:r,opera:i}}function va(){return!!ta().match(/iPad|iPhone|iPod/i)&&ra()}function ma(){return ta().indexOf(\"AppleWebKit/605.1.15\")>-1}function ga(){var e=0,t=0,n=0;if(\"undefined\"!=typeof window){var r=ta().match(/Version\\/(\\d+).(\\d+)(.(\\d+))?/);if(r)try{e=parseInt(r[1]),t=parseInt(r[2]),n=parseInt(r[4])}catch(e){}else(va()||ma())&&(e=14,t=0,n=3)}return{major:e,minor:t,point:n}}function ya(){var e=0,t=0;if(\"undefined\"!=typeof window){var n=ta().match(/Firefox\\/(\\d+).(\\d+)/);if(n)try{e=parseInt(n[1]),t=parseInt(n[2])}catch(e){}}return{major:e,minor:t}}var _a=function(){function e(){t(this,e)}return o(e,[{key:\"addListenerForMessagesFromCallMachine\",value:function(e,t,n){K()}},{key:\"addListenerForMessagesFromDailyJs\",value:function(e,t,n){K()}},{key:\"sendMessageToCallMachine\",value:function(e,t,n,r){K()}},{key:\"sendMessageToDailyJs\",value:function(e,t){K()}},{key:\"removeListener\",value:function(e){K()}}]),e}();function ba(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wa(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},r=n.data,i=n.mergeStrategy,o=void 0===i?Ta:i;t(this,e),e._validateMergeStrategy(o),e._validateData(r,o),this.mergeStrategy=o,this.data=r}return o(e,[{key:\"isNoOp\",value:function(){return e.isNoOpUpdate(this.data,this.mergeStrategy)}}],[{key:\"isNoOpUpdate\",value:function(e,t){return 0===Object.keys(e).length&&t===Pa}},{key:\"_validateMergeStrategy\",value:function(e){if(!Oa.includes(e))throw Error(\"Unrecognized mergeStrategy provided. Options are: [\".concat(Oa,\"]\"))}},{key:\"_validateData\",value:function(e,t){if(!function(e){if(null==e||\"object\"!==n(e))return!1;var t=Object.getPrototypeOf(e);return null==t||t===Object.prototype}(e))throw Error(\"Meeting session data must be a plain (map-like) object\");var r;try{if(r=JSON.stringify(e),t===Ta){var i=JSON.parse(r);D(i,e)||console.warn(\"The meeting session data provided will be modified when serialized.\",i,e)}else if(t===Pa)for(var o in e)if(Object.hasOwnProperty.call(e,o)&&void 0!==e[o]){var a=JSON.parse(JSON.stringify(e[o]));D(e[o],a)||console.warn(\"At least one key in the meeting session data provided will be modified when serialized.\",a,e[o])}}catch(e){throw Error(\"Meeting session data must be serializable to JSON: \".concat(e))}if(r.length>Jo)throw Error(\"Meeting session data is too large (\".concat(r.length,\" characters). Maximum size suppported is \").concat(Jo,\".\"))}}]),e}();function ja(e,t,n){return ja=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&s(i,n.prototype),i},ja.apply(null,arguments)}function xa(e){var t=\"function\"==typeof Map?new Map:void 0;return xa=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf(\"[native code]\")))return e;var n;if(\"function\"!=typeof e)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return ja(e,arguments,u(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),s(r,e)},xa(e)}function La(e){var t=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=u(e);if(t){var i=u(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return l(this,n)}}function Ia(e){var t,n=null===(t=window._daily)||void 0===t?void 0:t.pendings;if(n){var r=n.indexOf(e);-1!==r&&n.splice(r,1)}}var Da=function(){function e(n){t(this,e),this._currentLoad=null,this._callClientId=n}return o(e,[{key:\"load\",value:function(){var e,t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0;if(this.loaded)return window._daily.instances[this._callClientId].callMachine.reset(),void r(!0);e=this._callClientId,window._daily.pendings.push(e),this._currentLoad&&this._currentLoad.cancel(),this._currentLoad=new Na(n,(function(){r(!1)}),(function(e,n){n||Ia(t._callClientId),i(e,n)})),this._currentLoad.start()}},{key:\"cancel\",value:function(){this._currentLoad&&this._currentLoad.cancel(),Ia(this._callClientId)}},{key:\"loaded\",get:function(){return this._currentLoad&&this._currentLoad.succeeded}}]),e}(),Na=function(){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0;t(this,e),this._attemptsRemaining=3,this._currentAttempt=null,this._dailyConfig=n,this._successCallback=r,this._failureCallback=i}return o(e,[{key:\"start\",value:function(){var e=this;if(!this._currentAttempt){this._currentAttempt=new Ba(this._dailyConfig,this._successCallback,(function t(n){e._currentAttempt.cancelled||(e._attemptsRemaining--,e._failureCallback(n,e._attemptsRemaining>0),e._attemptsRemaining<=0||setTimeout((function(){e._currentAttempt.cancelled||(e._currentAttempt=new Ba(e._dailyConfig,e._successCallback,t),e._currentAttempt.start())}),3e3))})),this._currentAttempt.start()}}},{key:\"cancel\",value:function(){this._currentAttempt&&this._currentAttempt.cancel()}},{key:\"cancelled\",get:function(){return this._currentAttempt&&this._currentAttempt.cancelled}},{key:\"succeeded\",get:function(){return this._currentAttempt&&this._currentAttempt.succeeded}}]),e}(),Ra=function(){c(n,xa(Error));var e=La(n);function n(){return t(this,n),e.apply(this,arguments)}return o(n)}(),Fa=2e4,Ba=function(){function e(n,r,i){t(this,e),this._loadAttemptImpl=na()||!n.avoidEval?new Ua(n,r,i):new Va(n,r,i)}var n;return o(e,[{key:\"start\",value:(n=h((function*(){return this._loadAttemptImpl.start()})),function(){return n.apply(this,arguments)})},{key:\"cancel\",value:function(){this._loadAttemptImpl.cancel()}},{key:\"cancelled\",get:function(){return this._loadAttemptImpl.cancelled}},{key:\"succeeded\",get:function(){return this._loadAttemptImpl.succeeded}}]),e}(),Ua=function(){function e(n,r,i){t(this,e),this.cancelled=!1,this.succeeded=!1,this._networkTimedOut=!1,this._networkTimeout=null,this._iosCache=\"undefined\"!=typeof iOSCallObjectBundleCache&&iOSCallObjectBundleCache,this._refetchHeaders=null,this._dailyConfig=n,this._successCallback=r,this._failureCallback=i}var n,r,i,a;return o(e,[{key:\"start\",value:(a=h((function*(){var e=X(this._dailyConfig);!(yield this._tryLoadFromIOSCache(e))&&this._loadFromNetwork(e)})),function(){return a.apply(this,arguments)})},{key:\"cancel\",value:function(){clearTimeout(this._networkTimeout),this.cancelled=!0}},{key:\"_tryLoadFromIOSCache\",value:(i=h((function*(e){if(!this._iosCache)return!1;try{var t=yield this._iosCache.get(e);return!!this.cancelled||!!t&&(t.code?(Function('\"use strict\";'+t.code)(),this.succeeded=!0,this._successCallback(),!0):(this._refetchHeaders=t.refetchHeaders,!1))}catch(e){return!1}})),function(e){return i.apply(this,arguments)})},{key:\"_loadFromNetwork\",value:(r=h((function*(e){var t=this;this._networkTimeout=setTimeout((function(){t._networkTimedOut=!0,t._failureCallback({msg:\"Timed out (>\".concat(Fa,\" ms) when loading call object bundle \").concat(e),type:\"timeout\"})}),Fa);try{var n=this._refetchHeaders?{headers:this._refetchHeaders}:{},r=yield fetch(e,n);if(clearTimeout(this._networkTimeout),this.cancelled||this._networkTimedOut)throw new Ra;var i=yield this._getBundleCodeFromResponse(e,r);if(this.cancelled)throw new Ra;Function('\"use strict\";'+i)(),this._iosCache&&this._iosCache.set(e,i,r.headers),this.succeeded=!0,this._successCallback()}catch(t){if(clearTimeout(this._networkTimeout),t instanceof Ra||this.cancelled||this._networkTimedOut)return;this._failureCallback({msg:\"Failed to load call object bundle \".concat(e,\": \").concat(t),type:t.message})}})),function(e){return r.apply(this,arguments)})},{key:\"_getBundleCodeFromResponse\",value:(n=h((function*(e,t){if(t.ok)return yield t.text();if(this._iosCache&&304===t.status)return(yield this._iosCache.renew(e,t.headers)).code;throw new Error(\"Received \".concat(t.status,\" response\"))})),function(e,t){return n.apply(this,arguments)})}]),e}(),Va=function(){function e(n,r,i){t(this,e),this.cancelled=!1,this.succeeded=!1,this._dailyConfig=n,this._successCallback=r,this._failureCallback=i,this._attemptId=Q(),this._networkTimeout=null,this._scriptElement=null}return o(e,[{key:\"start\",value:function(){window._dailyCallMachineLoadWaitlist||(window._dailyCallMachineLoadWaitlist=new Set);var e=X(this._dailyConfig);\"object\"===(\"undefined\"==typeof document?\"undefined\":n(document))?this._startLoading(e):this._failureCallback({msg:\"Call object bundle must be loaded in a DOM/web context\",type:\"missing context\"})}},{key:\"cancel\",value:function(){this._stopLoading(),this.cancelled=!0}},{key:\"_startLoading\",value:function(e){var t=this;this._signUpForCallMachineLoadWaitlist(),this._networkTimeout=setTimeout((function(){t._stopLoading(),t._failureCallback({msg:\"Timed out (>\".concat(Fa,\" ms) when loading call object bundle \").concat(e),type:\"timeout\"})}),Fa);var n=document.getElementsByTagName(\"head\")[0],r=document.createElement(\"script\");this._scriptElement=r,r.onload=function(){t._stopLoading(),t.succeeded=!0,t._successCallback()},r.onerror=function(e){t._stopLoading(),t._failureCallback({msg:\"Failed to load call object bundle \".concat(e.target.src),type:e.message})},r.src=e,n.appendChild(r)}},{key:\"_stopLoading\",value:function(){this._withdrawFromCallMachineLoadWaitlist(),clearTimeout(this._networkTimeout),this._scriptElement&&(this._scriptElement.onload=null,this._scriptElement.onerror=null)}},{key:\"_signUpForCallMachineLoadWaitlist\",value:function(){window._dailyCallMachineLoadWaitlist.add(this._attemptId)}},{key:\"_withdrawFromCallMachineLoadWaitlist\",value:function(){window._dailyCallMachineLoadWaitlist.delete(this._attemptId)}}]),e}(),Ja=function(e,t,n){return!0===Wa(e.local,t,n)},$a=function(e,t,n){return e.local.streams&&e.local.streams[t]&&e.local.streams[t].stream&&e.local.streams[t].stream[\"get\".concat(\"video\"===n?\"Video\":\"Audio\",\"Tracks\")]()[0]},qa=function(e,t,n,r){var i=za(e,t,n,r);return i&&i.pendingTrack},Wa=function(e,t,n){if(!e)return!1;var r=function(e){switch(e){case\"avatar\":return!0;case\"staged\":return e;default:return!!e}},i=e.public.subscribedTracks;return i&&i[t]?-1===[\"cam-audio\",\"cam-video\",\"screen-video\",\"screen-audio\",\"rmpAudio\",\"rmpVideo\"].indexOf(n)&&i[t].custom?[!0,\"staged\"].includes(i[t].custom)?r(i[t].custom):r(i[t].custom[n]):r(i[t][n]):!i||r(i.ALL)},za=function(e,t,n,r){var i=Object.values(e.streams||{}).filter((function(e){return e.participantId===t&&e.type===n&&e.pendingTrack&&e.pendingTrack.kind===r})).sort((function(e,t){return new Date(t.starttime)-new Date(e.starttime)}));return i&&i[0]},Ha=function(e,t){var n=e.local.public.customTracks;if(n&&n[t])return n[t].track};function Ga(e,t){for(var n=t.getState(),r=0,i=[\"cam\",\"screen\"];r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Za(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function rs(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function gs(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n49)return console.error(\"grid.maxTilesPerPage can't be larger than 49 without sacrificing browser performance. Please contact us at https://www.daily.co/contact to talk about your use case.\"),!1}if(\"minTilesPerPage\"in t){if(!Number.isInteger(t.minTilesPerPage))return console.error(\"grid.minTilesPerPage should be an integer. You passed \".concat(t.minTilesPerPage,\".\")),!1;if(t.minTilesPerPage<1)return console.error(\"grid.minTilesPerPage can't be lower than 1.\"),!1;if(\"maxTilesPerPage\"in t&&t.minTilesPerPage>t.maxTilesPerPage)return console.error(\"grid.minTilesPerPage can't be higher than grid.maxTilesPerPage.\"),!1}}return!0},help:\"unsupported layoutConfig. Check error logs for detailed info.\"},receiveSettings:{validate:function(e){return $s(e,{allowAllParticipantsKey:!1})},help:Hs({allowAllParticipantsKey:!1})},sendSettings:{validate:function(e,t){return!!function(e,t){try{return t.validateUpdateSendSettings(e),!0}catch(e){return console.error(\"Failed to validate send settings\",e),!1}}(e,t)&&(t._preloadCache.sendSettings=e,!0)},help:\"Invalid sendSettings provided. Check error logs for detailed info.\"},inputSettings:{validate:function(e,t){var n;return!!qs(e)&&(t._preloadCache.inputSettings||(t._preloadCache.inputSettings={}),Ws(e,null===(n=t.properties)||void 0===n?void 0:n.dailyConfig),e.audio&&(t._preloadCache.inputSettings.audio=e.audio),e.video&&(t._preloadCache.inputSettings.video=e.video),!0)},help:zs()},layout:{validate:function(e){return\"custom-v1\"===e||\"browser\"===e||\"none\"===e},help:'layout may only be set to \"custom-v1\"',queryString:\"layout\"},emb:{queryString:\"emb\"},embHref:{queryString:\"embHref\"},dailyJsVersion:{queryString:\"dailyJsVersion\"},proxy:{queryString:\"proxy\"},strictMode:!0,allowMultipleCallInstances:!0},As={styles:{validate:function(e){for(var t in e)if(\"cam\"!==t&&\"screen\"!==t)return!1;if(e.cam)for(var n in e.cam)if(\"div\"!==n&&\"video\"!==n)return!1;if(e.screen)for(var r in e.screen)if(\"div\"!==r&&\"video\"!==r)return!1;return!0},help:\"styles format should be a subset of: { cam: {div: {}, video: {}}, screen: {div: {}, video: {}} }\"},setSubscribedTracks:{validate:function(e,t){if(t._preloadCache.subscribeToTracksAutomatically)return!1;var n=[!0,!1,\"staged\"];if(n.includes(e)||!na()&&\"avatar\"===e)return!0;var r=[\"audio\",\"video\",\"screenAudio\",\"screenVideo\",\"rmpAudio\",\"rmpVideo\"];return function e(t){var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(var o in t)if(\"custom\"===o){if(!n.includes(t[o])&&!e(t[o],!0))return!1}else{var a=!i&&!r.includes(o),s=!n.includes(t[o]);if(a||s)return!1}return!0}(e)},help:\"setSubscribedTracks cannot be used when setSubscribeToTracksAutomatically is enabled, and should be of the form: \"+\"true\".concat(na()?\"\":\" | 'avatar'\",\" | false | 'staged' | { [audio: true|false|'staged'], [video: true|false|'staged'], [screenAudio: true|false|'staged'], [screenVideo: true|false|'staged'] }\")},setAudio:!0,setVideo:!0,setScreenShare:{validate:function(e){return!1===e},help:\"setScreenShare must be false, as it's only meant for stopping remote participants' screen shares\"},eject:!0,updatePermissions:{validate:function(e){for(var t=0,n=Object.entries(e);t1&&void 0!==arguments[1]?arguments[1]:{};if(t(this,ee),d(a(r=Z.call(this)),\"startListeningForDeviceChanges\",(function(){as(r.handleDeviceChange)})),d(a(r),\"stopListeningForDeviceChanges\",(function(){ss(r.handleDeviceChange)})),d(a(r),\"handleDeviceChange\",(function(e){e=e.map((function(e){return JSON.parse(JSON.stringify(e))})),r.emitDailyJSEvent({action:\"available-devices-updated\",availableDevices:e})})),d(a(r),\"handleNativeAppStateChange\",function(){var e=h((function*(e){if(\"destroyed\"===e)return console.warn(\"App has been destroyed before leaving the meeting. Cleaning up all the resources!\"),void(yield r.destroy());var t=\"active\"===e;r.disableReactNativeAutoDeviceManagement(\"video\")||(t?r.camUnmutedBeforeLosingNativeActiveState&&r.setLocalVideo(!0):(r.camUnmutedBeforeLosingNativeActiveState=r.localVideo(),r.camUnmutedBeforeLosingNativeActiveState&&r.setLocalVideo(!1)))}));return function(t){return e.apply(this,arguments)}}()),d(a(r),\"handleNativeAudioFocusChange\",(function(e){r.disableReactNativeAutoDeviceManagement(\"audio\")||(r._hasNativeAudioFocus=e,r.toggleParticipantAudioBasedOnNativeAudioFocus(),r._hasNativeAudioFocus?r.micUnmutedBeforeLosingNativeAudioFocus&&r.setLocalAudio(!0):(r.micUnmutedBeforeLosingNativeAudioFocus=r.localAudio(),r.setLocalAudio(!1)))})),d(a(r),\"handleNativeSystemScreenCaptureStop\",(function(){r.stopScreenShare()})),r.strictMode=void 0===o.strictMode||o.strictMode,r.allowMultipleCallInstances=null!==(n=o.allowMultipleCallInstances)&&void 0!==n&&n,Object.keys(ys).length&&(r._logDuplicateInstanceAttempt(),!r.allowMultipleCallInstances)){if(r.strictMode)throw new Error(\"Duplicate DailyIframe instances are not allowed\");console.warn(\"Using strictMode: false to allow multiple call instances is now deprecated. Set `allowMultipleCallInstances: true`\")}if(window._daily||(window._daily={pendings:[],instances:{}}),r.callClientId=Q(),i=a(r),ys[i.callClientId]=i,window._daily.instances[r.callClientId]={},r._sharedTracks={},window._daily.instances[r.callClientId].tracks=r._sharedTracks,o.dailyJsVersion=ee.version(),r._iframe=e,r._callObjectMode=\"none\"===o.layout&&!r._iframe,r._preloadCache={subscribeToTracksAutomatically:!0,audioDeviceId:null,videoDeviceId:null,outputDeviceId:null,inputSettings:null,sendSettings:null,videoTrackForNetworkConnectivityTest:null,videoTrackForConnectionQualityTest:null},void 0!==o.showLocalVideo?r._callObjectMode?console.error(\"showLocalVideo is not available in call object mode\"):r._showLocalVideo=!!o.showLocalVideo:r._showLocalVideo=!0,void 0!==o.showParticipantsBar?r._callObjectMode?console.error(\"showParticipantsBar is not available in call object mode\"):r._showParticipantsBar=!!o.showParticipantsBar:r._showParticipantsBar=!0,void 0!==o.customIntegrations?r._callObjectMode?console.error(\"customIntegrations is not available in call object mode\"):r._customIntegrations=o.customIntegrations:r._customIntegrations={},void 0!==o.customTrayButtons?r._callObjectMode?console.error(\"customTrayButtons is not available in call object mode\"):r._customTrayButtons=o.customTrayButtons:r._customTrayButtons={},void 0!==o.activeSpeakerMode?r._callObjectMode?console.error(\"activeSpeakerMode is not available in call object mode\"):r._activeSpeakerMode=!!o.activeSpeakerMode:r._activeSpeakerMode=!1,o.receiveSettings?r._callObjectMode?r._receiveSettings=o.receiveSettings:console.error(\"receiveSettings is only available in call object mode\"):r._receiveSettings={},r.validateProperties(o),r.properties=fs({},o),r._preloadCache.inputSettings||(r._preloadCache.inputSettings={}),o.inputSettings&&o.inputSettings.audio&&(r._preloadCache.inputSettings.audio=o.inputSettings.audio),o.inputSettings&&o.inputSettings.video&&(r._preloadCache.inputSettings.video=o.inputSettings.video),r._callObjectLoader=r._callObjectMode?new Da(r.callClientId):null,r._callState=Zr,r._isPreparingToJoin=!1,r._accessState={access:pi},r._meetingSessionSummary={},r._finalSummaryOfPrevSession={},r._meetingSessionState=tc(ws,r._callObjectMode),r._nativeInCallAudioMode=_s,r._participants={},r._isScreenSharing=!1,r._participantCounts=Ss,r._rmpPlayerState={},r._waitingParticipants={},r._network={threshold:\"good\",quality:100},r._activeSpeaker={},r._localAudioLevel=0,r._isLocalAudioLevelObserverRunning=!1,r._remoteParticipantsAudioLevel={},r._isRemoteParticipantsAudioLevelObserverRunning=!1,r._maxAppMessageSize=Vo,r._messageChannel=na()?new Ea:new ka,r._iframe&&(r._iframe.requestFullscreen?r._iframe.addEventListener(\"fullscreenchange\",(function(){document.fullscreenElement===r._iframe?(r.emitDailyJSEvent({action:Ao}),r.sendMessageToCallMachine({action:Ao})):(r.emitDailyJSEvent({action:jo}),r.sendMessageToCallMachine({action:jo}))})):r._iframe.webkitRequestFullscreen&&r._iframe.addEventListener(\"webkitfullscreenchange\",(function(){document.webkitFullscreenElement===r._iframe?(r.emitDailyJSEvent({action:Ao}),r.sendMessageToCallMachine({action:Ao})):(r.emitDailyJSEvent({action:jo}),r.sendMessageToCallMachine({action:jo}))}))),na()){var s=r.nativeUtils();s.addAudioFocusChangeListener&&s.removeAudioFocusChangeListener&&s.addAppStateChangeListener&&s.removeAppStateChangeListener&&s.addSystemScreenCaptureStopListener&&s.removeSystemScreenCaptureStopListener||console.warn(\"expected (add|remove)(AudioFocusChange|AppActiveStateChange|SystemScreenCaptureStop)Listener to be available in React Native\"),r._hasNativeAudioFocus=!0,s.addAudioFocusChangeListener(r.handleNativeAudioFocusChange),s.addAppStateChangeListener(r.handleNativeAppStateChange),s.addSystemScreenCaptureStopListener(r.handleNativeSystemScreenCaptureStop)}return r._callObjectMode&&r.startListeningForDeviceChanges(),r._messageChannel.addListenerForMessagesFromCallMachine(r.handleMessageFromCallMachine,r.callClientId,a(r)),r}return o(ee,[{key:\"destroy\",value:(K=h((function*(){var e,t;try{yield this.leave()}catch(e){}var n=this._iframe;if(n){var r=n.parentElement;r&&r.removeChild(n)}if(this._messageChannel.removeListener(this.handleMessageFromCallMachine),na()){var i=this.nativeUtils();i.removeAudioFocusChangeListener(this.handleNativeAudioFocusChange),i.removeAppStateChangeListener(this.handleNativeAppStateChange),i.removeSystemScreenCaptureStopListener(this.handleNativeSystemScreenCaptureStop)}this._callObjectMode&&this.stopListeningForDeviceChanges(),this.resetMeetingDependentVars(),this._destroyed=!0,this.emitDailyJSEvent({action:\"call-instance-destroyed\"}),delete ys[this.callClientId],(null===(e=window)||void 0===e||null===(t=e._daily)||void 0===t?void 0:t.instances)&&delete window._daily.instances[this.callClientId],this.strictMode&&(this.callClientId=void 0)})),function(){return K.apply(this,arguments)})},{key:\"isDestroyed\",value:function(){return!!this._destroyed}},{key:\"loadCss\",value:function(e){var t=e.bodyClass,n=e.cssFile,r=e.cssText;return Us(),this.sendMessageToCallMachine({action:\"load-css\",cssFile:this.absoluteUrl(n),bodyClass:t,cssText:r}),this}},{key:\"iframe\",value:function(){return Us(),this._iframe}},{key:\"meetingState\",value:function(){return this._callState}},{key:\"accessState\",value:function(){return Fs(this._callObjectMode,\"accessState()\"),this._accessState}},{key:\"participants\",value:function(){return this._participants}},{key:\"participantCounts\",value:function(){return this._participantCounts}},{key:\"waitingParticipants\",value:function(){return Fs(this._callObjectMode,\"waitingParticipants()\"),this._waitingParticipants}},{key:\"validateParticipantProperties\",value:function(e,t){for(var n in t){if(!As[n])throw new Error(\"unrecognized updateParticipant property \".concat(n));if(As[n].validate&&!As[n].validate(t[n],this,this._participants[e]))throw new Error(As[n].help)}}},{key:\"updateParticipant\",value:function(e,t){return this._participants.local&&this._participants.local.session_id===e&&(e=\"local\"),e&&t&&(this.validateParticipantProperties(e,t),this.sendMessageToCallMachine({action:\"update-participant\",id:e,properties:t})),this}},{key:\"updateParticipants\",value:function(e){var t=this._participants.local&&this._participants.local.session_id;for(var n in e)n===t&&(n=\"local\"),n&&e[n]&&this.validateParticipantProperties(n,e[n]);return this.sendMessageToCallMachine({action:\"update-participants\",participants:e}),this}},{key:\"updateWaitingParticipant\",value:(H=h((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Fs(this._callObjectMode,\"updateWaitingParticipant()\"),Ls(this._callState,\"updateWaitingParticipant()\"),\"string\"!=typeof t||\"object\"!==n(r))throw new Error(\"updateWaitingParticipant() must take an id string and a updates object\");return new Promise((function(n,i){e.sendMessageToCallMachine({action:\"daily-method-update-waiting-participant\",id:t,updates:r},(function(e){e.error&&i(e.error),e.id||i(new Error(\"unknown error in updateWaitingParticipant()\")),n({id:e.id})}))}))})),function(){return H.apply(this,arguments)})},{key:\"updateWaitingParticipants\",value:(z=h((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Fs(this._callObjectMode,\"updateWaitingParticipants()\"),Ls(this._callState,\"updateWaitingParticipants()\"),\"object\"!==n(t))throw new Error(\"updateWaitingParticipants() must take a mapping between ids and update objects\");return new Promise((function(n,r){e.sendMessageToCallMachine({action:\"daily-method-update-waiting-participants\",updatesById:t},(function(e){e.error&&r(e.error),e.ids||r(new Error(\"unknown error in updateWaitingParticipants()\")),n({ids:e.ids})}))}))})),function(){return z.apply(this,arguments)})},{key:\"requestAccess\",value:(W=h((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.access,r=void 0===n?{level:hi}:n,i=t.name,o=void 0===i?\"\":i;return Fs(this._callObjectMode,\"requestAccess()\"),Ls(this._callState,\"requestAccess()\"),new Promise((function(t,n){e.sendMessageToCallMachine({action:\"daily-method-request-access\",access:r,name:o},(function(e){e.error&&n(e.error),e.access||n(new Error(\"unknown error in requestAccess()\")),t({access:e.access,granted:e.granted})}))}))})),function(){return W.apply(this,arguments)})},{key:\"localAudio\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.audio.state):null}},{key:\"localVideo\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.video.state):null}},{key:\"setLocalAudio\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return\"forceDiscardTrack\"in t&&(na()?(console.warn(\"forceDiscardTrack option not supported in React Native; ignoring\"),t={}):e&&(console.warn(\"forceDiscardTrack option only supported when calling setLocalAudio(false); ignoring\"),t={})),this.sendMessageToCallMachine({action:\"local-audio\",state:e,options:t}),this}},{key:\"localScreenAudio\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.screenAudio.state):null}},{key:\"localScreenVideo\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.screenVideo.state):null}},{key:\"updateScreenShare\",value:function(e){if(this._isScreenSharing)return this.sendMessageToCallMachine({action:\"local-screen-update\",options:e}),this;console.warn(\"There is no screen share in progress. Try calling startScreenShare first.\")}},{key:\"setLocalVideo\",value:function(e){return this.sendMessageToCallMachine({action:\"local-video\",state:e}),this}},{key:\"getReceiveSettings\",value:(q=h((function*(e){var t=this,r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).showInheritedValues,i=void 0!==r&&r;if(Fs(this._callObjectMode,\"getReceiveSettings()\"),!this._callMachineInitialized)return this._receiveSettings;switch(n(e)){case\"string\":return new Promise((function(n){t.sendMessageToCallMachine({action:\"get-single-participant-receive-settings\",id:e,showInheritedValues:i},(function(e){n(e.receiveSettings)}))}));case\"undefined\":return this._receiveSettings;default:throw new Error('first argument to getReceiveSettings() must be a participant id (or \"base\"), or there should be no arguments')}})),function(e){return q.apply(this,arguments)})},{key:\"updateReceiveSettings\",value:($=h((function*(e){var t=this;if(Fs(this._callObjectMode,\"updateReceiveSettings()\"),!$s(e,{allowAllParticipantsKey:!0}))throw new Error(Hs({allowAllParticipantsKey:!0}));return Ls(this._callState,\"updateReceiveSettings()\",\"To specify receive settings earlier, use the receiveSettings config property.\"),new Promise((function(n){t.sendMessageToCallMachine({action:\"update-receive-settings\",receiveSettings:e},(function(e){n({receiveSettings:e.receiveSettings})}))}))})),function(e){return $.apply(this,arguments)})},{key:\"_prepInputSettingsToPresentToUser\",value:function(e){var t,n,r,i,o,a,s,c;if(e){var l={},u=\"none\"===(null===(t=e.audio)||void 0===t||null===(n=t.processor)||void 0===n?void 0:n.type)&&(null===(r=e.audio)||void 0===r||null===(i=r.processor)||void 0===i?void 0:i._isDefaultWhenNone);if(e.audio&&!u){var d=fs({},e.audio.processor);delete d._isDefaultWhenNone,l.audio=fs(fs({},e.audio),{},{processor:d})}var p=\"none\"===(null===(o=e.video)||void 0===o||null===(a=o.processor)||void 0===a?void 0:a.type)&&(null===(s=e.video)||void 0===s||null===(c=s.processor)||void 0===c?void 0:c._isDefaultWhenNone);if(e.video&&!p){var h=fs({},e.video.processor);delete h._isDefaultWhenNone,l.video=fs(fs({},e.video),{},{processor:h})}return l}}},{key:\"getInputSettings\",value:function(){var e=this;return Us(),new Promise((function(t){t(e._getInputSettings())}))}},{key:\"_getInputSettings\",value:function(){var e,t,n,r,i,o,a,s,c={processor:{type:\"none\",_isDefaultWhenNone:!0}};this._inputSettings?(e=(null===(n=this._inputSettings)||void 0===n?void 0:n.video)||c,t=(null===(r=this._inputSettings)||void 0===r?void 0:r.audio)||c):(e=(null===(i=this._preloadCache)||void 0===i||null===(o=i.inputSettings)||void 0===o?void 0:o.video)||c,t=(null===(a=this._preloadCache)||void 0===a||null===(s=a.inputSettings)||void 0===s?void 0:s.audio)||c);var l={audio:t,video:e};return this._prepInputSettingsToPresentToUser(l)}},{key:\"updateInputSettings\",value:(J=h((function*(e){var t=this;return Us(),qs(e)?(e&&(this._preloadCache.inputSettings||(this._preloadCache.inputSettings={}),Ws(e,this.properties.dailyConfig),e.audio&&(this._preloadCache.inputSettings.audio=e.audio),e.video&&(this._preloadCache.inputSettings.video=e.video)),e.video||e.audio?this._callObjectMode&&!this._callMachineInitialized?this._getInputSettings():new Promise((function(n,r){t.sendMessageToCallMachine({action:\"update-input-settings\",inputSettings:e},(function(e){e.error?r(e.error):n({inputSettings:t._prepInputSettingsToPresentToUser(e.inputSettings)})}))})):this._getInputSettings()):(console.error(zs()),Promise.reject(zs()))})),function(e){return J.apply(this,arguments)})},{key:\"setBandwidth\",value:function(e){var t=e.kbs,n=e.trackConstraints;if(Us(),this._callMachineInitialized)return this.sendMessageToCallMachine({action:\"set-bandwidth\",kbs:t,trackConstraints:n}),this}},{key:\"getDailyLang\",value:function(){var e=this;if(Us(),this._callMachineInitialized)return new Promise((function(t){e.sendMessageToCallMachine({action:\"get-daily-lang\"},(function(e){delete e.action,delete e.callbackStamp,t(e)}))}))}},{key:\"setDailyLang\",value:function(e){return Us(),this.sendMessageToCallMachine({action:\"set-daily-lang\",lang:e}),this}},{key:\"setProxyUrl\",value:function(e){return this.sendMessageToCallMachine({action:\"set-proxy-url\",proxyUrl:e}),this}},{key:\"setIceConfig\",value:function(e){return this.sendMessageToCallMachine({action:\"set-ice-config\",iceConfig:e}),this}},{key:\"meetingSessionSummary\",value:function(){return[ii,oi].includes(this._callState)?this._finalSummaryOfPrevSession:this._meetingSessionSummary}},{key:\"getMeetingSession\",value:(V=h((function*(){var e=this;return console.warn(\"getMeetingSession() is deprecated: use meetingSessionSummary(), which will return immediately\"),Ls(this._callState,\"getMeetingSession()\"),new Promise((function(t){e.sendMessageToCallMachine({action:\"get-meeting-session\"},(function(e){delete e.action,delete e.callbackStamp,t(e)}))}))})),function(){return V.apply(this,arguments)})},{key:\"meetingSessionState\",value:function(){return Ls(this._callState,\"meetingSessionState\"),this._meetingSessionState}},{key:\"setMeetingSessionData\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"replace\";Fs(this._callObjectMode,\"setMeetingSessionData()\"),Ls(this._callState,\"setMeetingSessionData\");try{!function(e,t){new Aa({data:e,mergeStrategy:t})}(e,t)}catch(e){throw console.error(e),e}try{this.sendMessageToCallMachine({action:\"set-session-data\",data:e,mergeStrategy:t})}catch(e){throw new Error(\"Error setting meeting session data: \".concat(e))}}},{key:\"setUserName\",value:function(e,t){var n=this;return this.properties.userName=e,new Promise((function(r){n.sendMessageToCallMachine({action:\"set-user-name\",name:null!=e?e:\"\",thisMeetingOnly:na()||!!t&&!!t.thisMeetingOnly},(function(e){delete e.action,delete e.callbackStamp,r(e)}))}))}},{key:\"setUserData\",value:(U=h((function*(e){var t=this;try{Js(e)}catch(e){throw console.error(e),e}if(this.properties.userData=e,this._callMachineInitialized)return new Promise((function(n){try{t.sendMessageToCallMachine({action:\"set-user-data\",userData:e},(function(e){delete e.action,delete e.callbackStamp,n(e)}))}catch(e){throw new Error(\"Error setting user data: \".concat(e))}}))})),function(e){return U.apply(this,arguments)})},{key:\"validateAudioLevelInterval\",value:function(e){if(e&&(e<100||\"number\"!=typeof e))throw new Error(\"The interval must be a number greater than or equal to 100 milliseconds.\")}},{key:\"startLocalAudioLevelObserver\",value:function(e){var t=this;if(\"undefined\"==typeof AudioWorkletNode&&!na())throw new Error(\"startLocalAudioLevelObserver() is not supported on this browser\");if(this.validateAudioLevelInterval(e),this._callMachineInitialized)return this._isLocalAudioLevelObserverRunning=!0,new Promise((function(n,r){t.sendMessageToCallMachine({action:\"start-local-audio-level-observer\",interval:e},(function(e){t._isLocalAudioLevelObserverRunning=!e.error,e.error?r({error:e.error}):n()}))}));this._preloadCache.localAudioLevelObserver={enabled:!0,interval:e}}},{key:\"isLocalAudioLevelObserverRunning\",value:function(){return this._isLocalAudioLevelObserverRunning}},{key:\"stopLocalAudioLevelObserver\",value:function(){this._preloadCache.localAudioLevelObserver=null,this._localAudioLevel=0,this._isLocalAudioLevelObserverRunning=!1,this.sendMessageToCallMachine({action:\"stop-local-audio-level-observer\"})}},{key:\"startRemoteParticipantsAudioLevelObserver\",value:function(e){var t=this;if(this.validateAudioLevelInterval(e),this._callMachineInitialized)return this._isRemoteParticipantsAudioLevelObserverRunning=!0,new Promise((function(n,r){t.sendMessageToCallMachine({action:\"start-remote-participants-audio-level-observer\",interval:e},(function(e){t._isRemoteParticipantsAudioLevelObserverRunning=!e.error,e.error?r({error:e.error}):n()}))}));this._preloadCache.remoteParticipantsAudioLevelObserver={enabled:!0,interval:e}}},{key:\"isRemoteParticipantsAudioLevelObserverRunning\",value:function(){return this._isRemoteParticipantsAudioLevelObserverRunning}},{key:\"stopRemoteParticipantsAudioLevelObserver\",value:function(){this._preloadCache.remoteParticipantsAudioLevelObserver=null,this._remoteParticipantsAudioLevel={},this._isRemoteParticipantsAudioLevelObserverRunning=!1,this.sendMessageToCallMachine({action:\"stop-remote-participants-audio-level-observer\"})}},{key:\"startCamera\",value:(B=h((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Fs(this._callObjectMode,\"startCamera()\"),Ds(this._callState,this._isPreparingToJoin,\"startCamera()\",\"Did you mean to use setLocalAudio() and/or setLocalVideo() instead?\"),this.needsLoad())try{yield this.load(t)}catch(e){return Promise.reject(e)}else{if(this._didPreAuth){if(t.url&&t.url!==this.properties.url)return console.error(\"url in startCamera() is different than the one used in preAuth()\"),Promise.reject();if(t.token&&t.token!==this.properties.token)return console.error(\"token in startCamera() is different than the one used in preAuth()\"),Promise.reject()}this.validateProperties(t),this.properties=fs(fs({},this.properties),t)}return new Promise((function(t){e.sendMessageToCallMachine({action:\"start-camera\",properties:xs(e.properties,e.callClientId),preloadCache:xs(e._preloadCache,e.callClientId)},(function(e){delete e.action,delete e.callbackStamp,t(e)}))}))})),function(){return B.apply(this,arguments)})},{key:\"validateCustomTrack\",value:function(e,t,n){if(n&&n.length>50)throw new Error(\"Custom track `trackName` must not be more than 50 characters\");if(t&&\"music\"!==t&&\"speech\"!==t&&!(t instanceof Object))throw new Error(\"Custom track `mode` must be either `music` | `speech` | `DailyMicAudioModeSettings` or `undefined`\");if(!!n&&[\"cam-audio\",\"cam-video\",\"screen-video\",\"screen-audio\",\"rmpAudio\",\"rmpVideo\",\"customVideoDefaults\"].includes(n))throw new Error(\"Custom track `trackName` must not match a track name already used by daily: cam-audio, cam-video, customVideoDefaults, screen-video, screen-audio, rmpAudio, rmpVideo\");if(!(e instanceof MediaStreamTrack))throw new Error(\"Custom tracks provided must be instances of MediaStreamTrack\")}},{key:\"startCustomTrack\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{track:track,mode:mode,trackName:trackName};return Us(),Ls(this._callState,\"startCustomTrack()\"),this.validateCustomTrack(t.track,t.mode,t.trackName),new Promise((function(n,r){e._sharedTracks.customTrack=t.track,t.track=Ho,e.sendMessageToCallMachine({action:\"start-custom-track\",properties:t},(function(e){e.error?r({error:e.error}):n(e.mediaTag)}))}))}},{key:\"stopCustomTrack\",value:function(e){var t=this;return Us(),Ls(this._callState,\"stopCustomTrack()\"),new Promise((function(n){t.sendMessageToCallMachine({action:\"stop-custom-track\",mediaTag:e},(function(e){n(e.mediaTag)}))}))}},{key:\"setCamera\",value:function(e){var t=this;return Vs(),Ns(this._callMachineInitialized,\"setCamera()\"),new Promise((function(n){t.sendMessageToCallMachine({action:\"set-camera\",cameraDeviceId:e},(function(e){n({device:e.device})}))}))}},{key:\"setAudioDevice\",value:(F=h((function*(e){return Vs(),this.nativeUtils().setAudioDevice(e),{deviceId:yield this.nativeUtils().getAudioDevice()}})),function(e){return F.apply(this,arguments)})},{key:\"cycleCamera\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise((function(n){e.sendMessageToCallMachine({action:\"cycle-camera\",properties:t},(function(e){n({device:e.device})}))}))}},{key:\"cycleMic\",value:function(){var e=this;return Us(),new Promise((function(t){e.sendMessageToCallMachine({action:\"cycle-mic\"},(function(e){t({device:e.device})}))}))}},{key:\"getCameraFacingMode\",value:function(){var e=this;return Vs(),new Promise((function(t){e.sendMessageToCallMachine({action:\"get-camera-facing-mode\"},(function(e){t(e.facingMode)}))}))}},{key:\"setInputDevicesAsync\",value:(R=h((function*(e){var t=this,n=e.audioDeviceId,r=e.videoDeviceId,i=e.audioSource,o=e.videoSource;return Us(),void 0!==i&&(n=i),void 0!==o&&(r=o),n&&(this._preloadCache.audioDeviceId=n,this._sharedTracks.audioDeviceId=n),r&&(this._preloadCache.videoDeviceId=r,this._sharedTracks.videoDeviceId=r),this._callObjectMode&&this.needsLoad()?{camera:{deviceId:this._preloadCache.videoDeviceId},mic:{deviceId:this._preloadCache.audioDeviceId},speaker:{deviceId:this._preloadCache.outputDeviceId}}:(n instanceof MediaStreamTrack&&(n=Ho),r instanceof MediaStreamTrack&&(r=Ho),new Promise((function(e){t.sendMessageToCallMachine({action:\"set-input-devices\",audioDeviceId:n,videoDeviceId:r},(function(n){delete n.action,delete n.callbackStamp,n.returnPreloadCache?e({camera:{deviceId:t._preloadCache.videoDeviceId},mic:{deviceId:t._preloadCache.audioDeviceId},speaker:{deviceId:t._preloadCache.outputDeviceId}}):e(n)}))})))})),function(e){return R.apply(this,arguments)})},{key:\"setOutputDeviceAsync\",value:(N=h((function*(e){var t=this,n=e.outputDeviceId;return Us(),n&&(this._preloadCache.outputDeviceId=n),this._callObjectMode&&this.needsLoad()?{camera:{deviceId:this._preloadCache.videoDeviceId},mic:{deviceId:this._preloadCache.audioDeviceId},speaker:{deviceId:this._preloadCache.outputDeviceId}}:new Promise((function(e){t.sendMessageToCallMachine({action:\"set-output-device\",outputDeviceId:n},(function(n){delete n.action,delete n.callbackStamp,n.returnPreloadCache?e({camera:{deviceId:t._preloadCache.videoDeviceId},mic:{deviceId:t._preloadCache.audioDeviceId},speaker:{deviceId:t._preloadCache.outputDeviceId}}):e(n)}))}))})),function(e){return N.apply(this,arguments)})},{key:\"getInputDevices\",value:(I=h((function*(){var e=this;return this._callObjectMode&&this.needsLoad()?{camera:{deviceId:this._preloadCache.videoDeviceId},mic:{deviceId:this._preloadCache.audioDeviceId},speaker:{deviceId:this._preloadCache.outputDeviceId}}:new Promise((function(t){e.sendMessageToCallMachine({action:\"get-input-devices\"},(function(n){delete n.action,delete n.callbackStamp,n.returnPreloadCache?t({camera:{deviceId:e._preloadCache.videoDeviceId},mic:{deviceId:e._preloadCache.audioDeviceId},speaker:{deviceId:e._preloadCache.outputDeviceId}}):t(n)}))}))})),function(){return I.apply(this,arguments)})},{key:\"nativeInCallAudioMode\",value:function(){return Vs(),this._nativeInCallAudioMode}},{key:\"setNativeInCallAudioMode\",value:function(e){if(Vs(),[_s,bs].includes(e)){if(e!==this._nativeInCallAudioMode)return this._nativeInCallAudioMode=e,!this.disableReactNativeAutoDeviceManagement(\"audio\")&&Is(this._callState,this._isPreparingToJoin)&&this.nativeUtils().setAudioMode(this._nativeInCallAudioMode),this}else console.error(\"invalid in-call audio mode specified: \",e)}},{key:\"preAuth\",value:(L=h((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Fs(this._callObjectMode,\"preAuth()\"),Ds(this._callState,this._isPreparingToJoin,\"preAuth()\"),this.needsLoad()&&(yield this.load(t)),!t.url)throw new Error(\"preAuth() requires at least a url to be provided\");return this.validateProperties(t),this.properties=fs(fs({},this.properties),t),new Promise((function(t,n){e.sendMessageToCallMachine({action:\"daily-method-preauth\",properties:xs(e.properties,e.callClientId),preloadCache:xs(e._preloadCache,e.callClientId)},(function(r){return r.error?n(r.error):r.access?(e._didPreAuth=!0,void t({access:r.access})):n(new Error(\"unknown error in preAuth()\"))}))}))})),function(){return L.apply(this,arguments)})},{key:\"load\",value:(x=h((function*(e){var t=this;if(this.needsLoad()){if(this._destroyed&&(this._logUseAfterDestroy(),this.strictMode))throw new Error(\"Use after destroy\");if(e&&(this.validateProperties(e),this.properties=fs(fs({},this.properties),e)),!this._callObjectMode&&!this.properties.url)throw new Error(\"can't load iframe meeting because url property isn't set\");return this._updateCallState(ei),this.emitDailyJSEvent({action:Bi}),this._callObjectMode?new Promise((function(e,n){t._callObjectLoader.cancel();var r=Date.now();t._callObjectLoader.load(t.properties.dailyConfig,(function(n){t._bundleLoadTime=n?\"no-op\":Date.now()-r,t._updateCallState(ti),n&&t.emitDailyJSEvent({action:Vi}),e()}),(function(e,r){if(t.emitDailyJSEvent({action:Ui}),!r){t._updateCallState(oi),t.resetMeetingDependentVars();var i={action:Uo,errorMsg:e.msg,error:{type:\"connection-error\",msg:\"Failed to load call object bundle.\",details:{on:\"load\",sourceError:e,bundleUrl:X(t.properties.dailyConfig)}}};t._maybeSendToSentry(i),t.emitDailyJSEvent(i),n(e.msg)}}))})):(this._iframe.src=Y(this.assembleMeetingUrl(),this.properties.dailyConfig),new Promise((function(e,n){t._loadedCallback=function(r){t._callState!==oi?(t._updateCallState(ti),(t.properties.cssFile||t.properties.cssText)&&t.loadCss(t.properties),e()):n(r)}})))}})),function(e){return x.apply(this,arguments)})},{key:\"join\",value:(j=h((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._testCallInProgress&&this.stopTestCallQuality();var n=!1;if(this.needsLoad()){this.updateIsPreparingToJoin(!0);try{yield this.load(t)}catch(e){return this.updateIsPreparingToJoin(!1),Promise.reject(e)}}else{if(n=!(!this.properties.cssFile&&!this.properties.cssText),this._didPreAuth){if(t.url&&t.url!==this.properties.url)return console.error(\"url in join() is different than the one used in preAuth()\"),this.updateIsPreparingToJoin(!1),Promise.reject();if(t.token&&t.token!==this.properties.token)return console.error(\"token in join() is different than the one used in preAuth()\"),this.updateIsPreparingToJoin(!1),Promise.reject()}if(t.url&&!this._callObjectMode&&t.url&&t.url!==this.properties.url)return console.error(\"url in join() is different than the one used in load() (\".concat(this.properties.url,\" -> \").concat(t.url,\")\")),this.updateIsPreparingToJoin(!1),Promise.reject();this.validateProperties(t),this.properties=fs(fs({},this.properties),t)}return void 0!==t.showLocalVideo&&(this._callObjectMode?console.error(\"showLocalVideo is not available in callObject mode\"):this._showLocalVideo=!!t.showLocalVideo),void 0!==t.showParticipantsBar&&(this._callObjectMode?console.error(\"showParticipantsBar is not available in callObject mode\"):this._showParticipantsBar=!!t.showParticipantsBar),this._callState===ri||this._callState===ni?(console.warn(\"already joined meeting, call leave() before joining again\"),void this.updateIsPreparingToJoin(!1)):(this._updateCallState(ni,!1),this.emitDailyJSEvent({action:qi}),this._preloadCache.inputSettings||(this._preloadCache.inputSettings={}),t.inputSettings&&t.inputSettings.audio&&(this._preloadCache.inputSettings.audio=t.inputSettings.audio),t.inputSettings&&t.inputSettings.video&&(this._preloadCache.inputSettings.video=t.inputSettings.video),this.sendMessageToCallMachine({action:\"join-meeting\",properties:xs(this.properties,this.callClientId),preloadCache:xs(this._preloadCache,this.callClientId)}),new Promise((function(t,r){e._joinedCallback=function(i,o){if(e._callState!==oi){if(e._updateCallState(ri),i)for(var a in i){if(e._callObjectMode){var s=e._callMachine().store;Ga(i[a],s),Qa(i[a],s),Ya(i[a],e._participants[a],s)}e._participants[a]=fs({},i[a]),e.toggleParticipantAudioBasedOnNativeAudioFocus()}n&&e.loadCss(e.properties),t(i)}else r(o)}})))})),function(){return j.apply(this,arguments)})},{key:\"leave\",value:(A=h((function*(){var e=this;return this._testCallInProgress&&this.stopTestCallQuality(),new Promise((function(t){e._callState===ii||e._callState===oi?t():e._callObjectLoader&&!e._callObjectLoader.loaded?(e._callObjectLoader.cancel(),e._updateCallState(ii),e.resetMeetingDependentVars(),e.emitDailyJSEvent({action:ii}),t()):(e._resolveLeave=t,e.sendMessageToCallMachine({action:\"leave-meeting\"}))}))})),function(){return A.apply(this,arguments)})},{key:\"startScreenShare\",value:(O=h((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Ns(this._callMachineInitialized,\"startScreenShare()\"),t.screenVideoSendSettings&&this._validateVideoSendSettings(\"screenVideo\",t.screenVideoSendSettings),t.mediaStream&&(this._sharedTracks.screenMediaStream=t.mediaStream,t.mediaStream=Ho),\"undefined\"!=typeof DailyNativeUtils&&void 0!==DailyNativeUtils.isIOS&&DailyNativeUtils.isIOS){var n=this.nativeUtils();if(yield n.isScreenBeingCaptured())return void this.emitDailyJSEvent({action:Bo,type:\"screen-share-error\",errorMsg:\"Could not start the screen sharing. The screen is already been captured!\"});n.setSystemScreenCaptureStartCallback((function(){n.setSystemScreenCaptureStartCallback(null),e.sendMessageToCallMachine({action:qo,captureOptions:t})})),n.presentSystemScreenCapturePrompt()}else this.sendMessageToCallMachine({action:qo,captureOptions:t})})),function(){return O.apply(this,arguments)})},{key:\"stopScreenShare\",value:function(){Ns(this._callMachineInitialized,\"stopScreenShare()\"),this.sendMessageToCallMachine({action:\"local-screen-stop\"})}},{key:\"startRecording\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.type;if(t&&\"cloud\"!==t&&\"raw-tracks\"!==t&&\"local\"!==t)throw new Error(\"invalid type: \".concat(t,\", allowed values 'cloud', 'raw-tracks', or 'local'\"));this.sendMessageToCallMachine(fs({action:\"local-recording-start\"},e))}},{key:\"updateRecording\",value:function(e){var t=e.layout,n=void 0===t?{preset:\"default\"}:t,r=e.instanceId;this.sendMessageToCallMachine({action:\"daily-method-update-recording\",layout:n,instanceId:r})}},{key:\"stopRecording\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToCallMachine(fs({action:\"local-recording-stop\"},e))}},{key:\"startLiveStreaming\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToCallMachine(fs({action:\"daily-method-start-live-streaming\"},e))}},{key:\"updateLiveStreaming\",value:function(e){var t=e.layout,n=void 0===t?{preset:\"default\"}:t,r=e.instanceId;this.sendMessageToCallMachine({action:\"daily-method-update-live-streaming\",layout:n,instanceId:r})}},{key:\"addLiveStreamingEndpoints\",value:function(e){var t=e.endpoints,n=e.instanceId;this.sendMessageToCallMachine({action:Wo,endpointsOp:Xo,endpoints:t,instanceId:n})}},{key:\"removeLiveStreamingEndpoints\",value:function(e){var t=e.endpoints,n=e.instanceId;this.sendMessageToCallMachine({action:Wo,endpointsOp:Zo,endpoints:t,instanceId:n})}},{key:\"stopLiveStreaming\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToCallMachine(fs({action:\"daily-method-stop-live-streaming\"},e))}},{key:\"validateDailyConfig\",value:function(e){e.camSimulcastEncodings&&(console.warn(\"camSimulcastEncodings is deprecated. Use sendSettings, found in DailyCallOptions, to provide camera simulcast settings.\"),this.validateSimulcastEncodings(e.camSimulcastEncodings)),e.screenSimulcastEncodings&&console.warn(\"screenSimulcastEncodings is deprecated. Use sendSettings, found in DailyCallOptions, to provide screen simulcast settings.\"),ua()&&e.noAutoDefaultDeviceChange&&console.warn(\"noAutoDefaultDeviceChange is not supported on Android, and will be ignored.\")}},{key:\"validateSimulcastEncodings\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(e){if(!(e instanceof Array||Array.isArray(e)))throw new Error(\"encodings must be an Array\");if(!ec(e.length,1,3))throw new Error(\"encodings must be an Array with between 1 to \".concat(3,\" layers\"));for(var r=0;r=200)throw new Error(\"Error starting dial out: displayName length must be less than 200\")}if(e.userId){if(\"string\"!=typeof e.userId)throw new Error(\"Error starting dial out: userId must be a string\");if(e.userId.length>36)throw new Error(\"Error starting dial out: userId length must be less than or equal to 36\")}return new Promise((function(n,r){t.sendMessageToCallMachine(fs({action:\"dialout-start\"},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return C.apply(this,arguments)})},{key:\"stopDialOut\",value:function(e){var t=this;return Ls(this._callState,\"stopDialOut()\"),new Promise((function(n,r){t.sendMessageToCallMachine(fs({action:\"dialout-stop\"},e),(function(e){e.error?r(e.error):n(e)}))}))}},{key:\"sipCallTransfer\",value:(M=h((function*(e){var t=this;if(Ls(this._callState,\"sipCallTransfer()\"),!e)throw new Error(\"sipCallTransfer() requires a sessionId and toEndPoint\");return e.useSipRefer=!1,Xs(e,\"sipCallTransfer\"),new Promise((function(n,r){t.sendMessageToCallMachine(fs({action:ea},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return M.apply(this,arguments)})},{key:\"sipRefer\",value:(k=h((function*(e){var t=this;if(Ls(this._callState,\"sipRefer()\"),!e)throw new Error(\"sessionId and toEndPoint are mandatory parameter\");return e.useSipRefer=!0,Xs(e,\"sipRefer\"),new Promise((function(n,r){t.sendMessageToCallMachine(fs({action:ea},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return k.apply(this,arguments)})},{key:\"sendDTMF\",value:(S=h((function*(e){var t=this;return Ls(this._callState,\"sendDTMF()\"),function(e){var t=e.sessionId,n=e.tones;if(!t||!n)throw new Error(\"sessionId and tones are mandatory parameter\");if(\"string\"!=typeof t||\"string\"!=typeof n)throw new Error(\"sessionId and tones should be of string type\");if(n.length>20)throw new Error(\"tones string must be upto 20 characters\");var r=/[^0-9A-D*#]/g,i=n.match(r);if(i&&i[0])throw new Error(\"\".concat(i[0],\" is not valid DTMF tone\"))}(e),new Promise((function(n,r){t.sendMessageToCallMachine(fs({action:\"send-dtmf\"},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return S.apply(this,arguments)})},{key:\"getNetworkStats\",value:function(){var e=this;if(this._callState!==ri){return{stats:{latest:{}}}}return new Promise((function(t){e.sendMessageToCallMachine({action:\"get-calc-stats\"},(function(n){t(fs({stats:n.stats},e._network))}))}))}},{key:\"testWebsocketConnectivity\",value:(w=h((function*(){var e=this;if(Rs(this._testCallInProgress,\"testWebsocketConnectivity()\"),this.needsLoad())try{yield this.load()}catch(e){return Promise.reject(e)}return new Promise((function(t,n){e.sendMessageToCallMachine({action:\"test-websocket-connectivity\"},(function(e){e.error?n(e.error):t(e.results)}))}))})),function(){return w.apply(this,arguments)})},{key:\"abortTestWebsocketConnectivity\",value:function(){this.sendMessageToCallMachine({action:\"abort-test-websocket-connectivity\"})}},{key:\"_validateVideoTrackForNetworkTests\",value:function(e){return e?e instanceof MediaStreamTrack?!!us(e,{isLocalScreenVideo:!1})||(console.error(\"Video track is not playable. This test needs a live video track.\"),!1):(console.error(\"Video track needs to be of type `MediaStreamTrack`.\"),!1):(console.error(\"Missing video track. You must provide a video track in order to run this test.\"),!1)}},{key:\"testCallQuality\",value:(b=h((function*(){var t=this;Us(),Fs(this._callObjectMode,\"testCallQuality()\"),Ns(this._callMachineInitialized,\"testCallQuality()\",null,!0),Ds(this._callState,this._isPreparingToJoin,\"testCallQuality()\");var n=this._testCallAlreadyInProgress,r=function(e){n||(t._testCallInProgress=e)};if(r(!0),this.needsLoad())try{var i=this._callState;yield this.load(),this._callState=i}catch(e){return r(!1),Promise.reject(e)}return new Promise((function(n){t.sendMessageToCallMachine({action:\"test-call-quality\",dailyJsVersion:t.properties.dailyJsVersion},(function(i){var o=i.results,a=o.result,s=e(o,ds);if(\"failed\"===a){var c,l=fs({},s);null!==(c=s.error)&&void 0!==c&&c.details?(s.error.details=JSON.parse(s.error.details),l.error=fs(fs({},l.error),{},{details:fs({},l.error.details)}),l.error.details.duringTest=\"testCallQuality\"):(l.error=l.error?fs({},l.error):{},l.error.details={duringTest:\"testCallQuality\"}),t._maybeSendToSentry(l)}r(!1),n(fs({result:a},s))}))}))})),function(){return b.apply(this,arguments)})},{key:\"stopTestCallQuality\",value:function(){this.sendMessageToCallMachine({action:\"stop-test-call-quality\"})}},{key:\"testConnectionQuality\",value:(_=h((function*(e){var t;na()?(console.warn(\"testConnectionQuality() is deprecated: use testPeerToPeerCallQuality() instead\"),t=yield this.testPeerToPeerCallQuality(e)):(console.warn(\"testConnectionQuality() is deprecated: use testCallQuality() instead\"),t=yield this.testCallQuality());var n={result:t.result,secondsElapsed:t.secondsElapsed};return t.data&&(n.data={maxRTT:t.data.maxRoundTripTime,packetLoss:t.data.avgRecvPacketLoss}),n})),function(e){return _.apply(this,arguments)})},{key:\"testPeerToPeerCallQuality\",value:(y=h((function*(e){var t=this;if(Rs(this._testCallInProgress,\"testPeerToPeerCallQuality()\"),this.needsLoad())try{yield this.load()}catch(e){return Promise.reject(e)}var n=e.videoTrack,r=e.duration;if(!this._validateVideoTrackForNetworkTests(n))throw new Error(\"Video track error\");return this._sharedTracks.videoTrackForConnectionQualityTest=n,new Promise((function(e,n){t.sendMessageToCallMachine({action:\"test-p2p-call-quality\",duration:r},(function(t){t.error?n(t.error):e(t.results)}))}))})),function(e){return y.apply(this,arguments)})},{key:\"stopTestConnectionQuality\",value:function(){na()?(console.warn(\"stopTestConnectionQuality() is deprecated: use testPeerToPeerCallQuality() and stopTestPeerToPeerCallQuality() instead\"),this.stopTestPeerToPeerCallQuality()):(console.warn(\"stopTestConnectionQuality() is deprecated: use testCallQuality() and stopTestCallQuality() instead\"),this.stopTestCallQuality())}},{key:\"stopTestPeerToPeerCallQuality\",value:function(){this.sendMessageToCallMachine({action:\"stop-test-p2p-call-quality\"})}},{key:\"testNetworkConnectivity\",value:(m=h((function*(e){var t=this;if(Rs(this._testCallInProgress,\"testNetworkConnectivity()\"),this.needsLoad())try{yield this.load()}catch(e){return Promise.reject(e)}if(!this._validateVideoTrackForNetworkTests(e))throw new Error(\"Video track error\");return this._sharedTracks.videoTrackForNetworkConnectivityTest=e,new Promise((function(e,n){t.sendMessageToCallMachine({action:\"test-network-connectivity\"},(function(t){t.error?n(t.error):e(t.results)}))}))})),function(e){return m.apply(this,arguments)})},{key:\"abortTestNetworkConnectivity\",value:function(){this.sendMessageToCallMachine({action:\"abort-test-network-connectivity\"})}},{key:\"getCpuLoadStats\",value:function(){var e=this;return new Promise((function(t){if(e._callState===ri){e.sendMessageToCallMachine({action:\"get-cpu-load-stats\"},(function(e){t(e.cpuStats)}))}else t({cpuLoadState:void 0,cpuLoadStateReason:void 0,stats:{}})}))}},{key:\"_validateEncodingLayerHasValidProperties\",value:function(e){var t;if(!((null===(t=Object.keys(e))||void 0===t?void 0:t.length)>0))throw new Error(\"Empty encoding is not allowed. At least one of these valid keys should be specified:\"+Object.values(Ms))}},{key:\"_validateVideoSendSettings\",value:function(e,t){var r=\"screenVideo\"===e?[\"default-screen-video\",\"detail-optimized\",\"motion-optimized\",\"motion-and-detail-balanced\"]:[\"default-video\",\"bandwidth-optimized\",\"bandwidth-and-quality-balanced\",\"quality-optimized\",\"adaptive-2-layers\",\"adaptive-3-layers\"],i=\"Video send settings should be either an object or one of the supported presets: \".concat(r.join());if(\"string\"==typeof t){if(!r.includes(t))throw new Error(i)}else{if(\"object\"!==n(t))throw new Error(i);if(!t.maxQuality&&!t.encodings&&void 0===t.allowAdaptiveLayers)throw new Error(\"Video send settings must contain at least maxQuality, allowAdaptiveLayers or encodings attribute\");if(t.maxQuality&&-1===[\"low\",\"medium\",\"high\"].indexOf(t.maxQuality))throw new Error(\"maxQuality must be either low, medium or high\");if(t.encodings){var o=!1;switch(Object.keys(t.encodings).length){case 1:o=!t.encodings.low;break;case 2:o=!t.encodings.low||!t.encodings.medium;break;case 3:o=!t.encodings.low||!t.encodings.medium||!t.encodings.high;break;default:o=!0}if(o)throw new Error(\"Encodings must be defined as: low, low and medium, or low, medium and high.\");t.encodings.low&&this._validateEncodingLayerHasValidProperties(t.encodings.low),t.encodings.medium&&this._validateEncodingLayerHasValidProperties(t.encodings.medium),t.encodings.high&&this._validateEncodingLayerHasValidProperties(t.encodings.high)}}}},{key:\"validateUpdateSendSettings\",value:function(e){var t=this;if(!e||0===Object.keys(e).length)throw new Error(\"Send settings must contain at least information for one track!\");Object.entries(e).forEach((function(e){var n=v(e,2),r=n[0],i=n[1];t._validateVideoSendSettings(r,i)}))}},{key:\"updateSendSettings\",value:function(e){var t=this;return this.validateUpdateSendSettings(e),this.needsLoad()?(this._preloadCache.sendSettings=e,{sendSettings:this._preloadCache.sendSettings}):new Promise((function(n,r){t.sendMessageToCallMachine({action:\"update-send-settings\",sendSettings:e},(function(e){e.error?r(e.error):n(e.sendSettings)}))}))}},{key:\"getSendSettings\",value:function(){return this._sendSettings||this._preloadCache.sendSettings}},{key:\"getLocalAudioLevel\",value:function(){return this._localAudioLevel}},{key:\"getRemoteParticipantsAudioLevel\",value:function(){return this._remoteParticipantsAudioLevel}},{key:\"getActiveSpeaker\",value:function(){return Us(),this._activeSpeaker}},{key:\"setActiveSpeakerMode\",value:function(e){return Us(),this.sendMessageToCallMachine({action:\"set-active-speaker-mode\",enabled:e}),this}},{key:\"activeSpeakerMode\",value:function(){return Us(),this._activeSpeakerMode}},{key:\"subscribeToTracksAutomatically\",value:function(){return this._preloadCache.subscribeToTracksAutomatically}},{key:\"setSubscribeToTracksAutomatically\",value:function(e){return Ls(this._callState,\"setSubscribeToTracksAutomatically()\",\"Use the subscribeToTracksAutomatically configuration property.\"),this._preloadCache.subscribeToTracksAutomatically=e,this.sendMessageToCallMachine({action:\"daily-method-subscribe-to-tracks-automatically\",enabled:e}),this}},{key:\"enumerateDevices\",value:(f=h((function*(){var e=this;if(this._callObjectMode){var t=yield navigator.mediaDevices.enumerateDevices();return\"Firefox\"===pa()&&ha().major>115&&ha().major<123&&(t=t.filter((function(e){return\"audiooutput\"!==e.kind}))),{devices:t.map((function(e){var t=JSON.parse(JSON.stringify(e));if(!na()&&\"videoinput\"===e.kind&&e.getCapabilities){var n,r=e.getCapabilities();t.facing=(null==r||null===(n=r.facingMode)||void 0===n?void 0:n.length)>=1?r.facingMode[0]:void 0}return t}))}}return new Promise((function(t){e.sendMessageToCallMachine({action:\"enumerate-devices\"},(function(e){t({devices:e.devices})}))}))})),function(){return f.apply(this,arguments)})},{key:\"sendAppMessage\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"*\";if(Ls(this._callState,\"sendAppMessage()\"),JSON.stringify(e).length>this._maxAppMessageSize)throw new Error(\"Message data too large. Max size is \"+this._maxAppMessageSize);return this.sendMessageToCallMachine({action:\"app-msg\",data:e,to:t}),this}},{key:\"addFakeParticipant\",value:function(e){return Us(),Ls(this._callState,\"addFakeParticipant()\"),this.sendMessageToCallMachine(fs({action:\"add-fake-participant\"},e)),this}},{key:\"setShowNamesMode\",value:function(e){return Bs(this._callObjectMode,\"setShowNamesMode()\"),Us(),e&&\"always\"!==e&&\"never\"!==e?(console.error('setShowNamesMode argument should be \"always\", \"never\", or false'),this):(this.sendMessageToCallMachine({action:\"set-show-names\",mode:e}),this)}},{key:\"setShowLocalVideo\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return Bs(this._callObjectMode,\"setShowLocalVideo()\"),Us(),Ls(this._callState,\"setShowLocalVideo()\"),\"boolean\"!=typeof e?(console.error(\"setShowLocalVideo only accepts a boolean value\"),this):(this.sendMessageToCallMachine({action:\"set-show-local-video\",show:e}),this._showLocalVideo=e,this)}},{key:\"showLocalVideo\",value:function(){return Bs(this._callObjectMode,\"showLocalVideo()\"),Us(),this._showLocalVideo}},{key:\"setShowParticipantsBar\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return Bs(this._callObjectMode,\"setShowParticipantsBar()\"),Us(),Ls(this._callState,\"setShowParticipantsBar()\"),\"boolean\"!=typeof e?(console.error(\"setShowParticipantsBar only accepts a boolean value\"),this):(this.sendMessageToCallMachine({action:\"set-show-participants-bar\",show:e}),this._showParticipantsBar=e,this)}},{key:\"showParticipantsBar\",value:function(){return Bs(this._callObjectMode,\"showParticipantsBar()\"),Us(),this._showParticipantsBar}},{key:\"customIntegrations\",value:function(){return Us(),Bs(this._callObjectMode,\"customIntegrations()\"),this._customIntegrations}},{key:\"setCustomIntegrations\",value:function(e){return Us(),Bs(this._callObjectMode,\"setCustomIntegrations()\"),Ls(this._callState,\"setCustomIntegrations()\"),Ks(e)?(this.sendMessageToCallMachine({action:\"set-custom-integrations\",integrations:e}),this._customIntegrations=e,this):this}},{key:\"startCustomIntegrations\",value:function(e){var t=this;if(Us(),Bs(this._callObjectMode,\"startCustomIntegrations()\"),Ls(this._callState,\"startCustomIntegrations()\"),Array.isArray(e)&&e.some((function(e){return\"string\"!=typeof e}))||!Array.isArray(e)&&\"string\"!=typeof e)return console.error(\"startCustomIntegrations() only accepts string | string[]\"),this;var n=\"string\"==typeof e?[e]:e,r=n.filter((function(e){return!(e in t._customIntegrations)}));return r.length?(console.error(\"Can't find custom integration(s): \\\"\".concat(r.join(\", \"),'\"')),this):(this.sendMessageToCallMachine({action:\"start-custom-integrations\",ids:n}),this)}},{key:\"stopCustomIntegrations\",value:function(e){var t=this;if(Us(),Bs(this._callObjectMode,\"stopCustomIntegrations()\"),Ls(this._callState,\"stopCustomIntegrations()\"),Array.isArray(e)&&e.some((function(e){return\"string\"!=typeof e}))||!Array.isArray(e)&&\"string\"!=typeof e)return console.error(\"stopCustomIntegrations() only accepts string | string[]\"),this;var n=\"string\"==typeof e?[e]:e,r=n.filter((function(e){return!(e in t._customIntegrations)}));return r.length?(console.error(\"Can't find custom integration(s): \\\"\".concat(r.join(\", \"),'\"')),this):(this.sendMessageToCallMachine({action:\"stop-custom-integrations\",ids:n}),this)}},{key:\"customTrayButtons\",value:function(){return Bs(this._callObjectMode,\"customTrayButtons()\"),Us(),this._customTrayButtons}},{key:\"updateCustomTrayButtons\",value:function(e){return Bs(this._callObjectMode,\"updateCustomTrayButtons()\"),Us(),Ls(this._callState,\"updateCustomTrayButtons()\"),Qs(e)?(this.sendMessageToCallMachine({action:\"update-custom-tray-buttons\",btns:e}),this._customTrayButtons=e,this):(console.error(\"updateCustomTrayButtons only accepts a dictionary of the type \".concat(JSON.stringify(Ts))),this)}},{key:\"theme\",value:function(){return Bs(this._callObjectMode,\"theme()\"),this.properties.theme}},{key:\"setTheme\",value:function(e){var t=this;return Bs(this._callObjectMode,\"setTheme()\"),new Promise((function(n,r){try{t.validateProperties({theme:e}),t.properties.theme=fs({},e),t.sendMessageToCallMachine({action:\"set-theme\",theme:t.properties.theme});try{t.emitDailyJSEvent({action:Fi,theme:t.properties.theme})}catch(e){console.log(\"could not emit 'theme-updated'\",e)}n(t.properties.theme)}catch(e){r(e)}}))}},{key:\"requestFullscreen\",value:(p=h((function*(){if(Us(),this._iframe&&!document.fullscreenElement&&oa())try{(yield this._iframe.requestFullscreen)?this._iframe.requestFullscreen():this._iframe.webkitRequestFullscreen()}catch(e){console.log(\"could not make video call fullscreen\",e)}})),function(){return p.apply(this,arguments)})},{key:\"exitFullscreen\",value:function(){Us(),document.fullscreenElement?document.exitFullscreen():document.webkitFullscreenElement&&document.webkitExitFullscreen()}},{key:\"getSidebarView\",value:(u=h((function*(){var e=this;return this._callObjectMode?(console.error(\"getSidebarView is not available in callObject mode\"),Promise.resolve(null)):new Promise((function(t){e.sendMessageToCallMachine({action:\"get-sidebar-view\"},(function(e){t(e.view)}))}))})),function(){return u.apply(this,arguments)})},{key:\"setSidebarView\",value:function(e){return this._callObjectMode?(console.error(\"setSidebarView is not available in callObject mode\"),this):(this.sendMessageToCallMachine({action:\"set-sidebar-view\",view:e}),this)}},{key:\"room\",value:(l=h((function*(){var e=this,t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).includeRoomConfigDefaults,n=void 0===t||t;return this._accessState.access===pi||this.needsLoad()?this.properties.url?{roomUrlPendingJoin:this.properties.url}:null:new Promise((function(t){e.sendMessageToCallMachine({action:\"lib-room-info\",includeRoomConfigDefaults:n},(function(e){delete e.action,delete e.callbackStamp,t(e)}))}))})),function(){return l.apply(this,arguments)})},{key:\"geo\",value:(s=h((function*(){try{var e=yield fetch(\"https://gs.daily.co/_ks_/x-swsl/:\");return{current:(yield e.json()).geo}}catch(e){return console.error(\"geo lookup failed\",e),{current:\"\"}}})),function(){return s.apply(this,arguments)})},{key:\"setNetworkTopology\",value:(i=h((function*(e){var t=this;return Us(),Ls(this._callState,\"setNetworkTopology()\"),new Promise((function(n,r){t.sendMessageToCallMachine({action:\"set-network-topology\",opts:e},(function(e){e.error?r({error:e.error}):n({workerId:e.workerId})}))}))})),function(e){return i.apply(this,arguments)})},{key:\"getNetworkTopology\",value:(r=h((function*(){var e=this;return new Promise((function(t,n){e.needsLoad()&&t({topology:\"none\"}),e.sendMessageToCallMachine({action:\"get-network-topology\"},(function(e){e.error?n({error:e.error}):t({topology:e.topology})}))}))})),function(){return r.apply(this,arguments)})},{key:\"setPlayNewParticipantSound\",value:function(e){if(Us(),\"number\"!=typeof e&&!0!==e&&!1!==e)throw new Error(\"argument to setShouldPlayNewParticipantSound should be true, false, or a number, but is \".concat(e));this.sendMessageToCallMachine({action:\"daily-method-set-play-ding\",arg:e})}},{key:\"on\",value:function(e,t){return g.prototype.on.call(this,e,t)}},{key:\"once\",value:function(e,t){return g.prototype.once.call(this,e,t)}},{key:\"off\",value:function(e,t){return g.prototype.off.call(this,e,t)}},{key:\"validateProperties\",value:function(e){for(var t in e){if(!Os[t])throw new Error(\"unrecognized property '\".concat(t,\"'\"));if(Os[t].validate&&!Os[t].validate(e[t],this))throw new Error(\"property '\".concat(t,\"': \").concat(Os[t].help))}}},{key:\"assembleMeetingUrl\",value:function(){var e,t,n=fs(fs({},this.properties),{},{emb:this.callClientId,embHref:encodeURIComponent(window.location.href),proxy:null!==(e=this.properties.dailyConfig)&&void 0!==e&&e.proxyUrl?encodeURIComponent(null===(t=this.properties.dailyConfig)||void 0===t?void 0:t.proxyUrl):void 0}),r=n.url.match(/\\?/)?\"&\":\"?\";return n.url+r+Object.keys(Os).filter((function(e){return Os[e].queryString&&void 0!==n[e]})).map((function(e){return\"\".concat(Os[e].queryString,\"=\").concat(n[e])})).join(\"&\")}},{key:\"needsLoad\",value:function(){return[Zr,ei,ii,oi].includes(this._callState)}},{key:\"sendMessageToCallMachine\",value:function(e,t){if(this._destroyed&&(this._logUseAfterDestroy(),this.strictMode))throw new Error(\"Use after destroy\");this._messageChannel.sendMessageToCallMachine(e,t,this.callClientId,this._iframe)}},{key:\"forwardPackagedMessageToCallMachine\",value:function(e){this._messageChannel.forwardPackagedMessageToCallMachine(e,this._iframe,this.callClientId)}},{key:\"addListenerForPackagedMessagesFromCallMachine\",value:function(e){return this._messageChannel.addListenerForPackagedMessagesFromCallMachine(e,this.callClientId)}},{key:\"removeListenerForPackagedMessagesFromCallMachine\",value:function(e){this._messageChannel.removeListenerForPackagedMessagesFromCallMachine(e)}},{key:\"handleMessageFromCallMachine\",value:function(t){switch(t.action){case Ni:this.sendMessageToCallMachine(fs({action:Ri},this.properties));break;case\"call-machine-initialized\":this._callMachineInitialized=!0;var n={action:zo,level:\"log\",code:1011,stats:{event:\"bundle load\",time:\"no-op\"===this._bundleLoadTime?0:this._bundleLoadTime,preLoaded:\"no-op\"===this._bundleLoadTime,url:X(this.properties.dailyConfig)}};this.sendMessageToCallMachine(n),this._delayDuplicateInstanceLog&&this._logDuplicateInstanceAttempt();break;case Vi:this._loadedCallback&&(this._loadedCallback(),this._loadedCallback=null),this.emitDailyJSEvent(t);break;case Wi:var r,i=fs({},t);delete i.internal,this._maxAppMessageSize=(null===(r=t.internal)||void 0===r?void 0:r._maxAppMessageSize)||Vo,this._joinedCallback&&(this._joinedCallback(t.participants),this._joinedCallback=null),this.emitDailyJSEvent(i);break;case Hi:case Gi:if(this._callState===ii)return;if(t.participant&&t.participant.session_id){var o=t.participant.local?\"local\":t.participant.session_id;if(this._callObjectMode){var a=this._callMachine().store;Ga(t.participant,a),Qa(t.participant,a),Ya(t.participant,this._participants[o],a)}try{this.maybeParticipantTracksStopped(this._participants[o],t.participant),this.maybeParticipantTracksStarted(this._participants[o],t.participant),this.maybeEventRecordingStopped(this._participants[o],t.participant),this.maybeEventRecordingStarted(this._participants[o],t.participant)}catch(e){console.error(\"track events error\",e)}this.compareEqualForParticipantUpdateEvent(t.participant,this._participants[o])||(this._participants[o]=fs({},t.participant),this.toggleParticipantAudioBasedOnNativeAudioFocus(),this.emitDailyJSEvent(t))}break;case Qi:if(t.participant&&t.participant.session_id){var s=this._participants[t.participant.session_id];s&&this.maybeParticipantTracksStopped(s,null),delete this._participants[t.participant.session_id],this.emitDailyJSEvent(t)}break;case Ki:D(this._participantCounts,t.participantCounts)||(this._participantCounts=t.participantCounts,this.emitDailyJSEvent(t));break;case Yi:var c={access:t.access};t.awaitingAccess&&(c.awaitingAccess=t.awaitingAccess),D(this._accessState,c)||(this._accessState=c,this.emitDailyJSEvent(t));break;case Xi:if(t.meetingSession){this._meetingSessionSummary=t.meetingSession,this.emitDailyJSEvent(t);var l=fs(fs({},t),{},{action:\"meeting-session-updated\"});this.emitDailyJSEvent(l)}break;case Uo:var u;this._iframe&&!t.preserveIframe&&(this._iframe.src=\"\"),this._updateCallState(oi),this.resetMeetingDependentVars(),this._loadedCallback&&(this._loadedCallback(t.errorMsg),this._loadedCallback=null),t.preserveIframe;var d=e(t,ps);null!=d&&null!==(u=d.error)&&void 0!==u&&u.details&&(d.error.details=JSON.parse(d.error.details)),this._maybeSendToSentry(t),this._joinedCallback&&(this._joinedCallback(null,d),this._joinedCallback=null),this.emitDailyJSEvent(d);break;case zi:this._callState!==oi&&this._updateCallState(ii),this.resetMeetingDependentVars(),this._resolveLeave&&(this._resolveLeave(),this._resolveLeave=null),this.emitDailyJSEvent(t);break;case\"selected-devices-updated\":t.devices&&this.emitDailyJSEvent(t);break;case Eo:var p=t.threshold,h=t.quality;p===this._network.threshold&&h===this._network.quality||(this._network.quality=h,this._network.threshold=p,this.emitDailyJSEvent(t));break;case Po:t&&t.cpuLoadState&&this.emitDailyJSEvent(t);break;case Oo:t&&void 0!==t.faceCounts&&this.emitDailyJSEvent(t);break;case Mo:var f=t.activeSpeaker;this._activeSpeaker.peerId!==f.peerId&&(this._activeSpeaker.peerId=f.peerId,this.emitDailyJSEvent({action:t.action,activeSpeaker:this._activeSpeaker}));break;case\"show-local-video-changed\":if(this._callObjectMode)return;var v=t.show;this._showLocalVideo=v,this.emitDailyJSEvent({action:t.action,show:v});break;case Co:var m=t.enabled;this._activeSpeakerMode!==m&&(this._activeSpeakerMode=m,this.emitDailyJSEvent({action:t.action,enabled:this._activeSpeakerMode}));break;case to:case no:case ro:this._waitingParticipants=t.allWaitingParticipants,this.emitDailyJSEvent({action:t.action,participant:t.participant});break;case Ro:D(this._receiveSettings,t.receiveSettings)||(this._receiveSettings=t.receiveSettings,this.emitDailyJSEvent({action:t.action,receiveSettings:t.receiveSettings}));break;case Fo:if(!D(this._inputSettings,t.inputSettings)){var g=this._getInputSettings();this._inputSettings=t.inputSettings,this._preloadCache.inputSettings={},D(g,this._getInputSettings())||this.emitDailyJSEvent({action:t.action,inputSettings:this._getInputSettings()})}break;case\"send-settings-updated\":D(this._sendSettings,t.sendSettings)||(this._sendSettings=t.sendSettings,this._preloadCache.sendSettings=null,this.emitDailyJSEvent({action:t.action,sendSettings:t.sendSettings}));break;case\"local-audio-level\":this._localAudioLevel=t.audioLevel,this._preloadCache.localAudioLevelObserver=null,this.emitDailyJSEvent(t);break;case\"remote-participants-audio-level\":this._remoteParticipantsAudioLevel=t.participantsAudioLevel,this._preloadCache.remoteParticipantsAudioLevelObserver=null,this.emitDailyJSEvent(t);break;case yo:var y=t.session_id;this._rmpPlayerState[y]=t.playerState,this.emitDailyJSEvent(t);break;case bo:delete this._rmpPlayerState[t.session_id],this.emitDailyJSEvent(t);break;case _o:var _=t.session_id,b=this._rmpPlayerState[_];b&&this.compareEqualForRMPUpdateEvent(b,t.remoteMediaPlayerState)||(this._rmpPlayerState[_]=t.remoteMediaPlayerState,this.emitDailyJSEvent(t));break;case\"custom-button-click\":case\"sidebar-view-changed\":this.emitDailyJSEvent(t);break;case Zi:var w=this._meetingSessionState.topology!==(t.meetingSessionState&&t.meetingSessionState.topology);this._meetingSessionState=tc(t.meetingSessionState,this._callObjectMode),(this._callObjectMode||w)&&this.emitDailyJSEvent(t);break;case wo:this._isScreenSharing=!0,this.emitDailyJSEvent(t);break;case So:case ko:this._isScreenSharing=!1,this.emitDailyJSEvent(t);break;case lo:case uo:case po:case ho:case fo:case ao:case so:case co:case Ji:case $i:case mo:case go:case\"test-completed\":case To:case vo:case xo:case Lo:case Io:case Do:case Bo:case No:case\"dialin-ready\":case\"dialin-connected\":case\"dialin-error\":case\"dialin-stopped\":case\"dialin-warning\":case\"dialout-connected\":case\"dialout-answered\":case\"dialout-error\":case\"dialout-stopped\":case\"dialout-warning\":this.emitDailyJSEvent(t);break;case\"request-fullscreen\":this.requestFullscreen();break;case\"request-exit-fullscreen\":this.exitFullscreen()}}},{key:\"maybeEventRecordingStopped\",value:function(e,t){var n=\"record\";e&&(t.local||!1!==t[n]||e[n]===t[n]||this.emitDailyJSEvent({action:uo}))}},{key:\"maybeEventRecordingStarted\",value:function(e,t){var n=\"record\";e&&(t.local||!0!==t[n]||e[n]===t[n]||this.emitDailyJSEvent({action:lo}))}},{key:\"maybeEventTrackStopped\",value:function(e,t,n,r){e&&(\"ended\"!==e.readyState&&t&&e.id===t.id||this.emitDailyJSEvent({action:oo,track:e,participant:n,type:r}))}},{key:\"maybeEventTrackStarted\",value:function(e,t,n,r){t&&(e&&\"ended\"!==e.readyState&&t.id===e.id||this.emitDailyJSEvent({action:io,track:t,participant:n,type:r}))}},{key:\"maybeParticipantTracksStopped\",value:function(e,t){if(e)for(var n in e.tracks)this.maybeEventTrackStopped(e.tracks[n].track,t&&t.tracks[n]?t.tracks[n].track:null,t,n)}},{key:\"maybeParticipantTracksStarted\",value:function(e,t){if(t)for(var n in t.tracks)this.maybeEventTrackStarted(e&&e.tracks[n]?e.tracks[n].track:null,t.tracks[n].track,t,n)}},{key:\"compareEqualForRMPUpdateEvent\",value:function(e,t){var n,r;return e.state===t.state&&(null===(n=e.settings)||void 0===n?void 0:n.volume)===(null===(r=t.settings)||void 0===r?void 0:r.volume)}},{key:\"emitDailyJSEvent\",value:function(e){try{e.callClientId=this.callClientId,this.emit(e.action,e)}catch(t){console.log(\"could not emit\",e,t)}}},{key:\"compareEqualForParticipantUpdateEvent\",value:function(e,t){return!!D(e,t)&&((!e.videoTrack||!t.videoTrack||e.videoTrack.id===t.videoTrack.id&&e.videoTrack.muted===t.videoTrack.muted&&e.videoTrack.enabled===t.videoTrack.enabled)&&(!e.audioTrack||!t.audioTrack||e.audioTrack.id===t.audioTrack.id&&e.audioTrack.muted===t.audioTrack.muted&&e.audioTrack.enabled===t.audioTrack.enabled))}},{key:\"nativeUtils\",value:function(){return na()?\"undefined\"==typeof DailyNativeUtils?(console.warn(\"in React Native, DailyNativeUtils is expected to be available\"),null):DailyNativeUtils:null}},{key:\"updateIsPreparingToJoin\",value:function(e){this._updateCallState(this._callState,e)}},{key:\"_updateCallState\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._isPreparingToJoin;if(e!==this._callState||t!==this._isPreparingToJoin){var n=this._callState,r=this._isPreparingToJoin;this._callState=e,this._isPreparingToJoin=t;var i=this._callState===ri;this.updateShowAndroidOngoingMeetingNotification(i);var o=Is(n,r),a=Is(this._callState,this._isPreparingToJoin);o!==a&&(this.updateKeepDeviceAwake(a),this.updateDeviceAudioMode(a),this.updateNoOpRecordingEnsuringBackgroundContinuity(a))}}},{key:\"resetMeetingDependentVars\",value:function(){this._participants={},this._participantCounts=Ss,this._waitingParticipants={},this._activeSpeaker={},this._activeSpeakerMode=!1,this._didPreAuth=!1,this._accessState={access:pi},this._finalSummaryOfPrevSession=this._meetingSessionSummary,this._meetingSessionSummary={},this._meetingSessionState=tc(ws,this._callObjectMode),this._isScreenSharing=!1,this._receiveSettings={},this._inputSettings=void 0,this._sendSettings={},this._localAudioLevel=0,this._isLocalAudioLevelObserverRunning=!1,this._remoteParticipantsAudioLevel={},this._isRemoteParticipantsAudioLevelObserverRunning=!1,this._maxAppMessageSize=Vo,this._callMachineInitialized=!1,this._bundleLoadTime=void 0,this._preloadCache}},{key:\"updateKeepDeviceAwake\",value:function(e){na()&&this.nativeUtils().setKeepDeviceAwake(e,this.callClientId)}},{key:\"updateDeviceAudioMode\",value:function(e){if(na()&&!this.disableReactNativeAutoDeviceManagement(\"audio\")){var t=e?this._nativeInCallAudioMode:\"idle\";this.nativeUtils().setAudioMode(t)}}},{key:\"updateShowAndroidOngoingMeetingNotification\",value:function(e){if(na()&&this.nativeUtils().setShowOngoingMeetingNotification){var t,n,r,i;if(this.properties.reactNativeConfig&&this.properties.reactNativeConfig.androidInCallNotification){var o=this.properties.reactNativeConfig.androidInCallNotification;t=o.title,n=o.subtitle,r=o.iconName,i=o.disableForCustomOverride}i&&(e=!1),this.nativeUtils().setShowOngoingMeetingNotification(e,t,n,r,this.callClientId)}}},{key:\"updateNoOpRecordingEnsuringBackgroundContinuity\",value:function(e){na()&&this.nativeUtils().enableNoOpRecordingEnsuringBackgroundContinuity&&this.nativeUtils().enableNoOpRecordingEnsuringBackgroundContinuity(e)}},{key:\"toggleParticipantAudioBasedOnNativeAudioFocus\",value:function(){var e,t;if(na()){var n=null===(e=this._callMachine())||void 0===e||null===(t=e.store)||void 0===t?void 0:t.getState();for(var r in null==n?void 0:n.streams){var i=n.streams[r];i&&i.pendingTrack&&\"audio\"===i.pendingTrack.kind&&(i.pendingTrack.enabled=this._hasNativeAudioFocus)}}}},{key:\"disableReactNativeAutoDeviceManagement\",value:function(e){return this.properties.reactNativeConfig&&this.properties.reactNativeConfig.disableAutoDeviceManagement&&this.properties.reactNativeConfig.disableAutoDeviceManagement[e]}},{key:\"absoluteUrl\",value:function(e){if(void 0!==e){var t=document.createElement(\"a\");return t.href=e,t.href}}},{key:\"sayHello\",value:function(){var e=\"hello, world.\";return console.log(e),e}},{key:\"_logUseAfterDestroy\",value:function(){var e=Object.values(ys)[0];if(this.needsLoad()){if(e&&!e.needsLoad()){var t={action:zo,level:\"error\",code:this.strictMode?9995:9997};e.sendMessageToCallMachine(t)}else if(!this.strictMode){console.error(\"You are are attempting to use a call instance that was previously destroyed, which is unsupported. Please remove `strictMode: false` from your constructor properties to enable strict mode to track down and fix this unsupported usage.\")}}else{var n={action:zo,level:\"error\",code:this.strictMode?9995:9997};this._messageChannel.sendMessageToCallMachine(n,null,this.callClientId,this._iframe)}}},{key:\"_logDuplicateInstanceAttempt\",value:function(){for(var e=0,t=Object.values(ys);e0&&void 0!==arguments[0]?arguments[0]:{};return e.layout=\"none\",new ee(null,e)}},{key:\"wrap\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Us(),!e||!e.contentWindow||\"string\"!=typeof e.src)throw new Error(\"DailyIframe::Wrap needs an iframe-like first argument\");return t.layout||(t.customLayout?t.layout=\"custom-v1\":t.layout=\"browser\"),new ee(e,t)}},{key:\"createFrame\",value:function(e,t){var n,r;Us(),e&&t?(n=e,r=t):e&&e.append?(n=e,r={}):(n=document.body,r=e||{});var i=r.iframeStyle;i||(i=n===document.body?{position:\"fixed\",border:\"1px solid black\",backgroundColor:\"white\",width:\"375px\",height:\"450px\",right:\"1em\",bottom:\"1em\"}:{border:0,width:\"100%\",height:\"100%\"});var o=document.createElement(\"iframe\");window.navigator&&window.navigator.userAgent.match(/Chrome\\/61\\./)?o.allow=\"microphone, camera\":o.allow=\"microphone; camera; autoplay; display-capture; screen-wake-lock\",o.style.visibility=\"hidden\",n.appendChild(o),o.style.visibility=null,Object.keys(i).forEach((function(e){return o.style[e]=i[e]})),r.layout||(r.customLayout?r.layout=\"custom-v1\":r.layout=\"browser\");try{return new ee(o,r)}catch(e){throw n.removeChild(o),e}}},{key:\"createTransparentFrame\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Us();var t=document.createElement(\"iframe\");return t.allow=\"microphone; camera; autoplay\",t.style.cssText=\"\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: 0;\\n pointer-events: none;\\n \",document.body.appendChild(t),e.layout||(e.layout=\"custom-v1\"),ee.wrap(t,e)}},{key:\"getCallInstance\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;return e?ys[e]:Object.values(ys)[0]}}]),ee}();function xs(e,t){var n={};for(var r in e)if(e[r]instanceof MediaStreamTrack)n[r]=Ho;else if(\"dailyConfig\"===r){if(e[r].modifyLocalSdpHook){var i=window._daily.instances[t].customCallbacks||{};i.modifyLocalSdpHook=e[r].modifyLocalSdpHook,window._daily.instances[t].customCallbacks=i,delete e[r].modifyLocalSdpHook}if(e[r].modifyRemoteSdpHook){var o=window._daily.instances[t].customCallbacks||{};o.modifyRemoteSdpHook=e[r].modifyRemoteSdpHook,window._daily.instances[t].customCallbacks=o,delete e[r].modifyRemoteSdpHook}n[r]=e[r]}else n[r]=e[r];return n}function Ls(e){var t=arguments.length>2?arguments[2]:void 0;if(e!==ri){var n=\"\".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" only supported after join.\");throw t&&(n+=\" \".concat(t)),console.error(n),new Error(n)}}function Is(e,t){return[ni,ri].includes(e)||t}function Ds(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"This daily-js method\",r=arguments.length>3?arguments[3]:void 0;if(Is(e,t)){var i=\"\".concat(n,\" not supported after joining a meeting.\");throw r&&(i+=\" \".concat(r)),console.error(i),new Error(i)}}function Ns(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",n=arguments.length>2?arguments[2]:void 0;if(!e){var r=\"\".concat(t,arguments.length>3&&void 0!==arguments[3]&&arguments[3]?\" requires preAuth() or startCamera() to initialize call state.\":\" requires preAuth(), startCamera(), or join() to initialize call state.\");throw n&&(r+=\" \".concat(n)),console.error(r),new Error(r)}}function Rs(e){if(e){var t=\"A pre-call quality test is in progress. Please try \".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" again once testing has completed. Use stopTestCallQuality() to end it early.\");throw console.error(t),new Error(t)}}function Fs(e){if(!e){var t=\"\".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" is only supported on custom callObject instances\");throw console.error(t),new Error(t)}}function Bs(e){if(e){var t=\"\".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" is only supported as part of Daily's Prebuilt\");throw console.error(t),new Error(t)}}function Us(){if(na())throw new Error(\"This daily-js method is not currently supported in React Native\")}function Vs(){if(!na())throw new Error(\"This daily-js method is only supported in React Native\")}function Js(e){if(void 0===e)return!0;var t;if(\"string\"==typeof e)t=e;else try{t=JSON.stringify(e),D(JSON.parse(t),e)||console.warn(\"The userData provided will be modified when serialized.\")}catch(e){throw Error(\"userData must be serializable to JSON: \".concat(e))}if(t.length>4096)throw Error(\"userData is too large (\".concat(t.length,\" characters). Maximum size suppported is \").concat(4096,\".\"));return!0}function $s(e,t){for(var n=t.allowAllParticipantsKey,r=function(e){var t=[\"local\"];return n||t.push(\"*\"),e&&!t.includes(e)},i=function(e){return!!(void 0===e.layer||Number.isInteger(e.layer)&&e.layer>=0||\"inherit\"===e.layer)},o=function(e){return!!e&&(!(e.video&&!i(e.video))&&!(e.screenVideo&&!i(e.screenVideo)))},a=0,s=Object.entries(e);a video -> processor -> config\";switch(e){case Go.BGBLUR:return n.length>1||\"strength\"!==n[0]?(console.error(r),!1):!(\"number\"!=typeof t.strength||t.strength<=0||t.strength>1||isNaN(t.strength))||(console.error(\"\".concat(r,\"; expected: {0 < strength <= 1}, got: \").concat(t.strength)),!1);case Go.BGIMAGE:return!(void 0!==t.source&&!function(e){if(\"default\"===e.source)return e.type=\"default\",!0;if(e.source instanceof ArrayBuffer)return!0;if(Z(e.source))return e.type=\"url\",!!function(e){var t=new URL(e),n=t.pathname;if(\"data:\"===t.protocol)try{var r=n.substring(n.indexOf(\":\")+1,n.indexOf(\";\")).split(\"/\")[1];return Yo.includes(r)}catch(e){return console.error(\"failed to deduce blob content type\",e),!1}var i=n.split(\".\").at(-1).toLowerCase().trim();return Yo.includes(i)}(e.source)||(console.error(\"invalid image type; supported types: [\".concat(Yo.join(\", \"),\"]\")),!1);return t=e.source,n=Number(t),isNaN(n)||!Number.isInteger(n)||n<=0||n>10?(console.error(\"invalid image selection; must be an int, > 0, <= \".concat(10)),!1):(e.type=\"daily-preselect\",!0);var t,n}(t));default:return!0}}(e.type,e.config))return!1}return Object.keys(e).filter((function(e){return!t.includes(e)})).forEach((function(t){console.warn(\"invalid key inputSettings -> video -> processor : \".concat(t)),delete e[t]})),!0}(e.video.processor)))&&!(e.audio&&(\"object\"!==n(e.audio)||(r=e.audio.processor,i=[\"type\"],!r||\"object\"!==n(r)||(Object.keys(r).filter((function(e){return!i.includes(e)})).forEach((function(e){console.warn(\"invalid key inputSettings -> audio -> processor : \".concat(e)),delete r[e]})),t=r.type,\"string\"!=typeof t||!Object.values(Qo).includes(t)&&(console.error(\"inputSettings audio processor type invalid\"),1))))));var t,r,i}function Ws(e,t){var n,r=[];e.video&&!sa(null!==(n=null==t?void 0:t.useLegacyVideoProcessor)&&void 0!==n&&n)&&(delete e.video,r.push(\"video\")),e.audio&&!ca()&&(delete e.audio,r.push(\"audio\")),r.length>0&&console.error(\"Ignoring settings for browser- or platform-unsupported input processor(s): \".concat(r.join(\", \")))}function zs(){var e=Object.values(Go).join(\" | \"),t=Object.values(Qo).join(\" | \");return\"inputSettings must be of the form: { video?: { processor: { type: [ \".concat(e,\" ], config?: {} } }, audio?: { processor: {type: [ \").concat(t,\" ] } } }\")}function Hs(e){var t=e.allowAllParticipantsKey;return\"receiveSettings must be of the form { [ | \".concat(mi).concat(t?' | \"'.concat(\"*\",'\"'):\"\",\"]: \")+'{ [video: [{ layer: [ | \"inherit\"] } | \"inherit\"]], [screenVideo: [{ layer: [ | \"inherit\"] } | \"inherit\"]] }}}'}function Gs(){return\"customIntegrations should be an object of type \".concat(JSON.stringify(Ps),\".\")}function Qs(e){if(e&&\"object\"!==n(e)||Array.isArray(e))return console.error(\"customTrayButtons should be an Object of the type \".concat(JSON.stringify(Ts),\".\")),!1;if(e)for(var t=0,r=Object.entries(e);t2)throw new Error(\"RemoteMediaPlayerSettings.volume: must be between 0.0 - 2.0\")}}function ec(e,t,n){return!(\"number\"!=typeof e||en)}function tc(e,t){return e&&!t&&delete e.data,e}export{hi as DAILY_ACCESS_LEVEL_FULL,fi as DAILY_ACCESS_LEVEL_LOBBY,vi as DAILY_ACCESS_LEVEL_NONE,pi as DAILY_ACCESS_UNKNOWN,Ai as DAILY_CAMERA_ERROR_CAM_AND_MIC_IN_USE,Pi as DAILY_CAMERA_ERROR_CAM_IN_USE,Ii as DAILY_CAMERA_ERROR_CONSTRAINTS,Oi as DAILY_CAMERA_ERROR_MIC_IN_USE,Li as DAILY_CAMERA_ERROR_NOT_FOUND,ji as DAILY_CAMERA_ERROR_PERMISSIONS,xi as DAILY_CAMERA_ERROR_UNDEF_MEDIADEVICES,Di as DAILY_CAMERA_ERROR_UNKNOWN,Yi as DAILY_EVENT_ACCESS_STATE_UPDATED,Mo as DAILY_EVENT_ACTIVE_SPEAKER_CHANGE,Co as DAILY_EVENT_ACTIVE_SPEAKER_MODE_CHANGE,mo as DAILY_EVENT_APP_MSG,$i as DAILY_EVENT_CAMERA_ERROR,Po as DAILY_EVENT_CPU_LOAD_CHANGE,Uo as DAILY_EVENT_ERROR,jo as DAILY_EVENT_EXIT_FULLSCREEN,Oo as DAILY_EVENT_FACE_COUNTS_UPDATED,Ao as DAILY_EVENT_FULLSCREEN,Ri as DAILY_EVENT_IFRAME_LAUNCH_CONFIG,Ni as DAILY_EVENT_IFRAME_READY_FOR_LAUNCH_CONFIG,Fo as DAILY_EVENT_INPUT_SETTINGS_UPDATED,Wi as DAILY_EVENT_JOINED_MEETING,qi as DAILY_EVENT_JOINING_MEETING,No as DAILY_EVENT_LANG_UPDATED,zi as DAILY_EVENT_LEFT_MEETING,Do as DAILY_EVENT_LIVE_STREAMING_ERROR,xo as DAILY_EVENT_LIVE_STREAMING_STARTED,Io as DAILY_EVENT_LIVE_STREAMING_STOPPED,Lo as DAILY_EVENT_LIVE_STREAMING_UPDATED,Vi as DAILY_EVENT_LOADED,Bi as DAILY_EVENT_LOADING,Ui as DAILY_EVENT_LOAD_ATTEMPT_FAILED,ko as DAILY_EVENT_LOCAL_SCREEN_SHARE_CANCELED,wo as DAILY_EVENT_LOCAL_SCREEN_SHARE_STARTED,So as DAILY_EVENT_LOCAL_SCREEN_SHARE_STOPPED,eo as DAILY_EVENT_MEETING_SESSION_DATA_ERROR,Zi as DAILY_EVENT_MEETING_SESSION_STATE_UPDATED,Xi as DAILY_EVENT_MEETING_SESSION_SUMMARY_UPDATED,To as DAILY_EVENT_NETWORK_CONNECTION,Eo as DAILY_EVENT_NETWORK_QUALITY_CHANGE,Bo as DAILY_EVENT_NONFATAL_ERROR,Ki as DAILY_EVENT_PARTICIPANT_COUNTS_UPDATED,Hi as DAILY_EVENT_PARTICIPANT_JOINED,Qi as DAILY_EVENT_PARTICIPANT_LEFT,Gi as DAILY_EVENT_PARTICIPANT_UPDATED,Ro as DAILY_EVENT_RECEIVE_SETTINGS_UPDATED,vo as DAILY_EVENT_RECORDING_DATA,ho as DAILY_EVENT_RECORDING_ERROR,lo as DAILY_EVENT_RECORDING_STARTED,po as DAILY_EVENT_RECORDING_STATS,uo as DAILY_EVENT_RECORDING_STOPPED,fo as DAILY_EVENT_RECORDING_UPLOAD_COMPLETED,yo as DAILY_EVENT_REMOTE_MEDIA_PLAYER_STARTED,bo as DAILY_EVENT_REMOTE_MEDIA_PLAYER_STOPPED,_o as DAILY_EVENT_REMOTE_MEDIA_PLAYER_UPDATED,Ji as DAILY_EVENT_STARTED_CAMERA,Fi as DAILY_EVENT_THEME_UPDATED,io as DAILY_EVENT_TRACK_STARTED,oo as DAILY_EVENT_TRACK_STOPPED,co as DAILY_EVENT_TRANSCRIPTION_ERROR,go as DAILY_EVENT_TRANSCRIPTION_MSG,ao as DAILY_EVENT_TRANSCRIPTION_STARTED,so as DAILY_EVENT_TRANSCRIPTION_STOPPED,to as DAILY_EVENT_WAITING_PARTICIPANT_ADDED,ro as DAILY_EVENT_WAITING_PARTICIPANT_REMOVED,no as DAILY_EVENT_WAITING_PARTICIPANT_UPDATED,Ti as DAILY_FATAL_ERROR_CONNECTION,yi as DAILY_FATAL_ERROR_EJECTED,Ci as DAILY_FATAL_ERROR_EOL,wi as DAILY_FATAL_ERROR_EXP_ROOM,Si as DAILY_FATAL_ERROR_EXP_TOKEN,Mi as DAILY_FATAL_ERROR_MEETING_FULL,_i as DAILY_FATAL_ERROR_NBF_ROOM,bi as DAILY_FATAL_ERROR_NBF_TOKEN,Ei as DAILY_FATAL_ERROR_NOT_ALLOWED,ki as DAILY_FATAL_ERROR_NO_ROOM,gi as DAILY_RECEIVE_SETTINGS_ALL_PARTICIPANTS_KEY,mi as DAILY_RECEIVE_SETTINGS_BASE_KEY,oi as DAILY_STATE_ERROR,ri as DAILY_STATE_JOINED,ni as DAILY_STATE_JOINING,ii as DAILY_STATE_LEFT,Zr as DAILY_STATE_NEW,ai as DAILY_TRACK_STATE_BLOCKED,ui as DAILY_TRACK_STATE_INTERRUPTED,li as DAILY_TRACK_STATE_LOADING,si as DAILY_TRACK_STATE_OFF,di as DAILY_TRACK_STATE_PLAYABLE,ci as DAILY_TRACK_STATE_SENDABLE,js as default};\n","import type { IdleTransaction, SpanStatusType } from '@sentry/core';\nimport { getActiveTransaction, spanToJSON } from '@sentry/core';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { WINDOW } from './types';\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nexport function registerBackgroundTabDetection(): void {\n if (WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n // eslint-disable-next-line deprecation/deprecation\n const activeTransaction = getActiveTransaction() as IdleTransaction;\n if (WINDOW.document!.hidden && activeTransaction) {\n const statusType: SpanStatusType = '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","import type { Transaction, TransactionContext } from '@sentry/types';\nimport { addHistoryInstrumentationHandler, browserPerformanceTimeOrigin, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { WINDOW } from './types';\n\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults(\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad: boolean = true,\n startTransactionOnLocationChange: boolean = true,\n): void {\n if (!WINDOW || !WINDOW.location) {\n DEBUG_BUILD && logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n\n let startingUrl: string | undefined = WINDOW.location.href;\n\n let activeTransaction: T | undefined;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({\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 op: 'pageload',\n origin: 'auto.pageload.browser',\n metadata: { source: 'url' },\n });\n }\n\n if (startTransactionOnLocationChange) {\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 if (activeTransaction) {\n DEBUG_BUILD && logger.log(`[Tracing] Finishing current transaction with op: ${activeTransaction.op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.end();\n }\n activeTransaction = customStartTransaction({\n name: WINDOW.location.pathname,\n op: 'navigation',\n origin: 'auto.navigation.browser',\n metadata: { source: 'url' },\n });\n }\n });\n }\n}\n","/* eslint-disable max-lines */\nimport type { Hub, IdleTransaction } from '@sentry/core';\nimport { getClient, getCurrentScope } from '@sentry/core';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n TRACING_DEFAULTS,\n addTracingExtensions,\n getActiveTransaction,\n startIdleTransaction,\n} from '@sentry/core';\nimport type { EventProcessor, Integration, Transaction, TransactionContext, TransactionSource } from '@sentry/types';\nimport { getDomElement, logger, propagationContextFromHeaders } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { addPerformanceInstrumentationHandler } from './instrument';\nimport {\n addPerformanceEntries,\n startTrackingINP,\n startTrackingInteractions,\n startTrackingLongTasks,\n startTrackingWebVitals,\n} from './metrics';\nimport type { RequestInstrumentationOptions } from './request';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request';\nimport { instrumentRoutingWithDefaults } from './router';\nimport { WINDOW } from './types';\nimport type { InteractionRouteNameMapping } from './web-vitals/types';\n\nexport const BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\n/** Options for Browser Tracing integration */\nexport interface BrowserTracingOptions extends RequestInstrumentationOptions {\n /**\n * The time to wait in ms until the transaction will be finished during an idle state. An idle state is defined\n * by a moment where there are no in-progress spans.\n *\n * The transaction will use the end timestamp of the last finished span as the endtime for the transaction.\n * If there are still active spans when this the `idleTimeout` is set, the `idleTimeout` will get reset.\n * Time is in ms.\n *\n * Default: 1000\n */\n idleTimeout: number;\n\n /**\n * The max duration for a transaction. If a transaction duration hits the `finalTimeout` value, it\n * will be finished.\n * Time is in ms.\n *\n * Default: 30000\n */\n finalTimeout: number;\n\n /**\n * The heartbeat interval. If no new spans are started or open spans are finished within 3 heartbeats,\n * the transaction will be finished.\n * Time is in ms.\n *\n * Default: 5000\n */\n heartbeatInterval: number;\n\n /**\n * Flag to enable/disable creation of `navigation` transaction on history changes.\n *\n * Default: true\n */\n startTransactionOnLocationChange: boolean;\n\n /**\n * Flag to enable/disable creation of `pageload` transaction on first pageload.\n *\n * Default: true\n */\n startTransactionOnPageLoad: boolean;\n\n /**\n * Flag Transactions where tabs moved to background with \"cancelled\". Browser background tab timing is\n * not suited towards doing precise measurements of operations. By default, we recommend that this option\n * be enabled as background transactions can mess up your statistics in nondeterministic ways.\n *\n * Default: true\n */\n markBackgroundTransactions: boolean;\n\n /**\n * If true, Sentry will capture long tasks and add them to the corresponding transaction.\n *\n * Default: true\n */\n enableLongTask: boolean;\n\n /**\n * If true, Sentry will capture INP web vitals as standalone spans .\n *\n * Default: false\n */\n enableInp: boolean;\n\n /**\n * Sample rate to determine interaction span sampling.\n * interactionsSampleRate is applied on top of the global tracesSampleRate.\n * ie a tracesSampleRate of 0.1 and interactionsSampleRate of 0.5 will result in a 0.05 sample rate for interactions.\n *\n * Default: 1\n */\n interactionsSampleRate: number;\n\n /**\n * _metricOptions allows the user to send options to change how metrics are collected.\n *\n * _metricOptions is currently experimental.\n *\n * Default: undefined\n */\n _metricOptions?: Partial<{\n /**\n * @deprecated This property no longer has any effect and will be removed in v8.\n */\n _reportAllChanges: boolean;\n }>;\n\n /**\n * _experiments allows the user to send options to define how this integration works.\n * Note that the `enableLongTask` options is deprecated in favor of the option at the top level, and will be removed in v8.\n *\n * TODO (v8): Remove enableLongTask\n *\n * Default: undefined\n */\n _experiments: Partial<{\n enableLongTask: boolean;\n enableInteractions: boolean;\n // eslint-disable-next-line deprecation/deprecation\n onStartRouteTransaction: (t: Transaction | undefined, ctx: TransactionContext, getCurrentHub: () => Hub) => void;\n }>;\n\n /**\n * beforeNavigate is called before a pageload/navigation transaction is created and allows users to modify transaction\n * context data, or drop the transaction entirely (by setting `sampled = false` in the context).\n *\n * Note: For legacy reasons, transactions can also be dropped by returning `undefined`.\n *\n * @param context: The context data which will be passed to `startTransaction` by default\n *\n * @returns A (potentially) modified context object, with `sampled = false` if the transaction should be dropped.\n */\n beforeNavigate?(this: void, context: TransactionContext): TransactionContext | undefined;\n\n /**\n * Instrumentation that creates routing change transactions. By default creates\n * pageload and navigation transactions.\n */\n routingInstrumentation(\n this: void,\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad?: boolean,\n startTransactionOnLocationChange?: boolean,\n ): void;\n}\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS: BrowserTracingOptions = {\n ...TRACING_DEFAULTS,\n markBackgroundTransactions: true,\n routingInstrumentation: instrumentRoutingWithDefaults,\n startTransactionOnLocationChange: true,\n startTransactionOnPageLoad: true,\n enableLongTask: true,\n enableInp: false,\n interactionsSampleRate: 1,\n _experiments: {},\n ...defaultRequestInstrumentationOptions,\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/**\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 * @deprecated Use `browserTracingIntegration()` instead.\n */\nexport class BrowserTracing implements Integration {\n // This class currently doesn't have a static `id` field like the other integration classes, because it prevented\n // @sentry/tracing from being treeshaken. Tree shakers do not like static fields, because they behave like side effects.\n // TODO: Come up with a better plan, than using static fields on integration classes, and use that plan on all\n // integrations.\n\n /** Browser Tracing integration options */\n public options: BrowserTracingOptions;\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n // eslint-disable-next-line deprecation/deprecation\n private _getCurrentHub?: () => Hub;\n\n private _collectWebVitals: () => void;\n\n private _hasSetTracePropagationTargets: boolean;\n private _interactionIdToRouteNameMapping: InteractionRouteNameMapping;\n private _latestRoute: {\n name: string | undefined;\n context: TransactionContext | undefined;\n };\n\n public constructor(_options?: Partial) {\n this.name = BROWSER_TRACING_INTEGRATION_ID;\n this._hasSetTracePropagationTargets = false;\n\n addTracingExtensions();\n\n if (DEBUG_BUILD) {\n this._hasSetTracePropagationTargets = !!(\n _options &&\n // eslint-disable-next-line deprecation/deprecation\n (_options.tracePropagationTargets || _options.tracingOrigins)\n );\n }\n\n this.options = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n };\n\n // Special case: enableLongTask can be set in _experiments\n // TODO (v8): Remove this in v8\n if (this.options._experiments.enableLongTask !== undefined) {\n this.options.enableLongTask = this.options._experiments.enableLongTask;\n }\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 && !_options.tracePropagationTargets && _options.tracingOrigins) {\n // eslint-disable-next-line deprecation/deprecation\n this.options.tracePropagationTargets = _options.tracingOrigins;\n }\n\n this._collectWebVitals = startTrackingWebVitals();\n /** Stores a mapping of interactionIds from PerformanceEventTimings to the origin interaction path */\n this._interactionIdToRouteNameMapping = {};\n\n if (this.options.enableInp) {\n startTrackingINP(this._interactionIdToRouteNameMapping, this.options.interactionsSampleRate);\n }\n if (this.options.enableLongTask) {\n startTrackingLongTasks();\n }\n if (this.options._experiments.enableInteractions) {\n startTrackingInteractions();\n }\n\n this._latestRoute = {\n name: undefined,\n context: undefined,\n };\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line deprecation/deprecation\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n this._getCurrentHub = getCurrentHub;\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const client = hub.getClient();\n const clientOptions = client && client.getOptions();\n\n const {\n routingInstrumentation: instrumentRouting,\n startTransactionOnLocationChange,\n startTransactionOnPageLoad,\n markBackgroundTransactions,\n traceFetch,\n traceXHR,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n _experiments,\n } = this.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 || this.options.tracePropagationTargets;\n if (DEBUG_BUILD && this._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 instrumentRouting(\n (context: TransactionContext) => {\n const transaction = this._createRouteTransaction(context);\n\n this.options._experiments.onStartRouteTransaction &&\n this.options._experiments.onStartRouteTransaction(transaction, context, getCurrentHub);\n\n return transaction;\n },\n startTransactionOnPageLoad,\n startTransactionOnLocationChange,\n );\n\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n\n if (_experiments.enableInteractions) {\n this._registerInteractionListener();\n }\n\n if (this.options.enableInp) {\n this._registerInpInteractionListener();\n }\n\n instrumentOutgoingRequests({\n traceFetch,\n traceXHR,\n tracePropagationTargets,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n });\n }\n\n /** Create routing idle transaction. */\n private _createRouteTransaction(context: TransactionContext): Transaction | undefined {\n if (!this._getCurrentHub) {\n DEBUG_BUILD &&\n logger.warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n const hub = this._getCurrentHub();\n\n const { beforeNavigate, idleTimeout, finalTimeout, heartbeatInterval } = this.options;\n\n const isPageloadTransaction = context.op === 'pageload';\n\n let expandedContext: TransactionContext;\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 modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n const finalContext = modifiedContext === undefined ? { ...expandedContext, sampled: false } : modifiedContext;\n\n // If `beforeNavigate` 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 this._latestRoute.name = finalContext.name;\n this._latestRoute.context = finalContext;\n\n // eslint-disable-next-line deprecation/deprecation\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) {\n if (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\n idleTransaction.registerBeforeFinishCallback(transaction => {\n this._collectWebVitals();\n addPerformanceEntries(transaction);\n });\n\n return idleTransaction as Transaction;\n }\n\n /** Start listener for interaction transactions */\n private _registerInteractionListener(): void {\n let inflightInteractionTransaction: IdleTransaction | undefined;\n const registerInteractionTransaction = (): void => {\n const { idleTimeout, finalTimeout, heartbeatInterval } = this.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 (!this._getCurrentHub) {\n DEBUG_BUILD && logger.warn(`[Tracing] Did not create ${op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n if (!this._latestRoute.name) {\n DEBUG_BUILD && logger.warn(`[Tracing] Did not create ${op} transaction because _latestRouteName is missing.`);\n return undefined;\n }\n\n const hub = this._getCurrentHub();\n const { location } = WINDOW;\n\n const context: TransactionContext = {\n name: this._latestRoute.name,\n op,\n trimEnd: true,\n data: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: this._latestRoute.context\n ? getSource(this._latestRoute.context)\n : undefined || 'url',\n },\n };\n\n inflightInteractionTransaction = startIdleTransaction(\n hub,\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\n /** Creates a listener on interaction entries, and maps interactionIds to the origin path of the interaction */\n private _registerInpInteractionListener(): void {\n const handleEntries = ({ entries }: { entries: PerformanceEntry[] }): void => {\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') as Integration & { getReplayId: () => string })\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 = this._interactionIdToRouteNameMapping[interactionId];\n const duration = entry.duration;\n const startTime = entry.startTime;\n const keys = Object.keys(this._interactionIdToRouteNameMapping);\n const minInteractionId =\n keys.length > 0\n ? keys.reduce((a, b) => {\n return this._interactionIdToRouteNameMapping[a].duration <\n this._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 => this._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 > this._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 = this._latestRoute.name;\n const parentContext = this._latestRoute.context;\n if (routeName && parentContext) {\n if (minInteractionId && Object.keys(this._interactionIdToRouteNameMapping).length >= MAX_INTERACTIONS) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._interactionIdToRouteNameMapping[minInteractionId];\n }\n this._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}\n\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName: string): string | undefined {\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\nfunction getSource(context: TransactionContext): TransactionSource | undefined {\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\nfunction isPerformanceEventTiming(entry: PerformanceEntry): entry is PerformanceEventTiming {\n return 'duration' in entry;\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\nimport type { Metric, ReportCallback } from '../types';\n\nexport const bindReporter = (\n callback: ReportCallback,\n metric: Metric,\n reportAllChanges?: boolean,\n): ((forceReport?: boolean) => void) => {\n let prevValue: number;\n let delta: number;\n return (forceReport?: boolean) => {\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","/*\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 */\nexport const generateUniqueID = (): string => {\n return `v3-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\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\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const getActivationStart = (): number => {\n const navEntry = getNavigationEntry();\n return (navEntry && navEntry.activationStart) || 0;\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\nimport { WINDOW } from '../../types';\nimport type { Metric } from '../types';\nimport { generateUniqueID } from './generateUniqueID';\nimport { getActivationStart } from './getActivationStart';\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const initMetric = (name: Metric['name'], value?: number): Metric => {\n const navEntry = getNavigationEntry();\n let navigationType: Metric['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, '-') as Metric['navigationType'];\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","/*\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\nimport type { FirstInputPolyfillEntry, NavigationTimingPolyfillEntry, PerformancePaintTiming } from '../types';\n\nexport interface PerformanceEntryHandler {\n (entry: PerformanceEntry): void;\n}\n\ninterface PerformanceEntryMap {\n event: PerformanceEventTiming[];\n paint: PerformancePaintTiming[];\n 'layout-shift': LayoutShift[];\n 'largest-contentful-paint': LargestContentfulPaint[];\n 'first-input': PerformanceEventTiming[] | FirstInputPolyfillEntry[];\n navigation: PerformanceNavigationTiming[] | NavigationTimingPolyfillEntry[];\n resource: PerformanceResourceTiming[];\n longtask: PerformanceEntry[];\n}\n\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 */\nexport const observe = (\n type: K,\n callback: (entries: PerformanceEntryMap[K]) => void,\n opts?: PerformanceObserverInit,\n): PerformanceObserver | undefined => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n const po = new PerformanceObserver(list => {\n callback(list.getEntries() as PerformanceEntryMap[K]);\n });\n po.observe(\n Object.assign(\n {\n type,\n buffered: true,\n },\n opts || {},\n ) as PerformanceObserverInit,\n );\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\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\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { CLSMetric, ReportCallback, StopListening } from './types';\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 */\nexport const onCLS = (\n onReport: ReportCallback,\n options: { reportAllChanges?: boolean } = {},\n): StopListening | undefined => {\n const metric = initMetric('CLS', 0);\n let report: ReturnType;\n\n let sessionValue = 0;\n let sessionEntries: PerformanceEntry[] = [];\n\n // const handleEntries = (entries: Metric['entries']) => {\n const handleEntries = (entries: LayoutShift[]): void => {\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 = (): void => {\n handleEntries(po.takeRecords() as CLSMetric['entries']);\n report(true);\n };\n\n onHidden(stopListening);\n\n return stopListening;\n }\n\n return;\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\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { FIDMetric, PerformanceEventTiming, ReportCallback } from './types';\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 */\nexport const onFID = (onReport: ReportCallback): void => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n // eslint-disable-next-line prefer-const\n let report: ReturnType;\n\n const handleEntry = (entry: PerformanceEventTiming): void => {\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: FIDMetric['entries']): void => {\n (entries as PerformanceEventTiming[]).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() as FIDMetric['entries']);\n po.disconnect();\n }, true);\n }\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\nimport type { Metric } from '../../types';\nimport { observe } from '../observe';\n\ndeclare global {\n interface Performance {\n interactionCount: number;\n }\n}\n\nlet interactionCountEstimate = 0;\nlet minKnownInteractionId = Infinity;\nlet maxKnownInteractionId = 0;\n\nconst updateEstimate = (entries: Metric['entries']): void => {\n (entries as PerformanceEventTiming[]).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: PerformanceObserver | undefined;\n\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport const getInteractionCount = (): number => {\n return po ? interactionCountEstimate : performance.interactionCount || 0;\n};\n\n/**\n * Feature detects native support or initializes the polyfill if needed.\n */\nexport const initInteractionCountPolyfill = (): void => {\n if ('interactionCount' in performance || po) return;\n\n po = observe('event', updateEstimate, {\n type: 'event',\n buffered: true,\n durationThreshold: 0,\n } as PerformanceObserverInit);\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\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { getInteractionCount, initInteractionCountPolyfill } from './lib/polyfills/interactionCountPolyfill';\nimport type { ReportCallback, ReportOpts } from './types';\nimport type { INPMetric } from './types/inp';\n\ninterface Interaction {\n id: number;\n latency: number;\n entries: PerformanceEventTiming[];\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 = (): number => {\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: Interaction[] = [];\n\n// A mapping of longest interactions by their interaction ID.\n// This is used for faster lookup.\nconst longestInteractionMap: { [interactionId: string]: Interaction } = {};\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: PerformanceEventTiming): void => {\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 = (): Interaction => {\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 */\nexport const onINP = (onReport: ReportCallback, opts?: ReportOpts): void => {\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: ReturnType;\n\n const handleEntries = (entries: INPMetric['entries']): void => {\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 } as PerformanceObserverInit);\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() as INPMetric['entries']);\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","/*\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\nimport { WINDOW } from '../types';\nimport { bindReporter } from './lib/bindReporter';\nimport { getActivationStart } from './lib/getActivationStart';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport type { LCPMetric, ReportCallback, StopListening } from './types';\n\nconst reportedMetricIDs: Record = {};\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 */\nexport const onLCP = (onReport: ReportCallback): StopListening | undefined => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report: ReturnType;\n\n const handleEntries = (entries: LCPMetric['entries']): void => {\n const lastEntry = entries[entries.length - 1] as LargestContentfulPaint;\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 = (): void => {\n if (!reportedMetricIDs[metric.id]) {\n handleEntries(po.takeRecords() as LCPMetric['entries']);\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","/*\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\nimport { WINDOW } from '../types';\nimport { bindReporter } from './lib/bindReporter';\nimport { getActivationStart } from './lib/getActivationStart';\nimport { getNavigationEntry } from './lib/getNavigationEntry';\nimport { initMetric } from './lib/initMetric';\nimport type { ReportCallback, ReportOpts } from './types';\nimport type { TTFBMetric } from './types/ttfb';\n\n/**\n * Runs in the next task after the page is done loading and/or prerendering.\n * @param callback\n */\nconst whenReady = (callback: () => void): void => {\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 */\nexport const onTTFB = (onReport: ReportCallback, opts?: ReportOpts): void => {\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() as TTFBMetric['entries'][number];\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","import { getFunctionName, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { onCLS } from './web-vitals/getCLS';\nimport { onFID } from './web-vitals/getFID';\nimport { onINP } from './web-vitals/getINP';\nimport { onLCP } from './web-vitals/getLCP';\nimport { observe } from './web-vitals/lib/observe';\nimport { onTTFB } from './web-vitals/onTTFB';\n\ntype InstrumentHandlerTypePerformanceObserver =\n | 'longtask'\n | 'event'\n | 'navigation'\n | 'paint'\n | 'resource'\n | 'first-input';\n\ntype InstrumentHandlerTypeMetric = 'cls' | 'lcp' | 'fid' | 'ttfb' | 'inp';\n\n// We provide this here manually instead of relying on a global, as this is not available in non-browser environements\n// And we do not want to expose such types\ninterface PerformanceEntry {\n readonly duration: number;\n readonly entryType: string;\n readonly name: string;\n readonly startTime: number;\n toJSON(): Record;\n}\ninterface PerformanceEventTiming extends PerformanceEntry {\n processingStart: number;\n processingEnd: number;\n duration: number;\n cancelable?: boolean;\n target?: unknown | null;\n interactionId?: number;\n}\n\ninterface Metric {\n /**\n * The name of the metric (in acronym form).\n */\n name: 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB';\n\n /**\n * The current value of the metric.\n */\n value: number;\n\n /**\n * The rating as to whether the metric value is within the \"good\",\n * \"needs improvement\", or \"poor\" thresholds of the metric.\n */\n rating: 'good' | 'needs-improvement' | 'poor';\n\n /**\n * The delta between the current value and the last-reported value.\n * On the first report, `delta` and `value` will always be the same.\n */\n delta: number;\n\n /**\n * A unique ID representing this particular metric instance. This ID can\n * be used by an analytics tool to dedupe multiple values sent for the same\n * metric instance, or to group multiple deltas together and calculate a\n * total. It can also be used to differentiate multiple different metric\n * instances sent from the same page, which can happen if the page is\n * restored from the back/forward cache (in that case new metrics object\n * get created).\n */\n id: string;\n\n /**\n * Any performance entries relevant to the metric value calculation.\n * The array may also be empty if the metric value was not based on any\n * entries (e.g. a CLS value of 0 given no layout shifts).\n */\n entries: PerformanceEntry[];\n\n /**\n * The type of navigation\n *\n * Navigation Timing API (or `undefined` if the browser doesn't\n * support that API). For pages that are restored from the bfcache, this\n * value will be 'back-forward-cache'.\n */\n navigationType: 'navigate' | 'reload' | 'back-forward' | 'back-forward-cache' | 'prerender';\n}\n\ntype InstrumentHandlerType = InstrumentHandlerTypeMetric | InstrumentHandlerTypePerformanceObserver;\n\ntype StopListening = undefined | void | (() => void);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype InstrumentHandlerCallback = (data: any) => void;\n\ntype CleanupHandlerCallback = () => void;\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\nlet _previousCls: Metric | undefined;\nlet _previousFid: Metric | undefined;\nlet _previousLcp: Metric | undefined;\nlet _previousTtfb: Metric | undefined;\nlet _previousInp: Metric | undefined;\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 */\nexport function addClsInstrumentationHandler(\n callback: (data: { metric: Metric }) => void,\n stopOnCallback = false,\n): CleanupHandlerCallback {\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 */\nexport function addLcpInstrumentationHandler(\n callback: (data: { metric: Metric }) => void,\n stopOnCallback = false,\n): CleanupHandlerCallback {\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 */\nexport function addTtfbInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback {\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 */\nexport function addFidInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback {\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 */\nexport function addInpInstrumentationHandler(\n callback: (data: { metric: Omit & { entries: PerformanceEventTiming[] } }) => void,\n): CleanupHandlerCallback {\n return addMetricObserver('inp', callback, instrumentInp, _previousInp);\n}\n\nexport function addPerformanceInstrumentationHandler(\n type: 'event' | 'first-input',\n callback: (data: { entries: ((PerformanceEntry & { target?: unknown | null }) | PerformanceEventTiming)[] }) => void,\n): CleanupHandlerCallback;\nexport function addPerformanceInstrumentationHandler(\n type: InstrumentHandlerTypePerformanceObserver,\n callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback;\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 */\nexport function addPerformanceInstrumentationHandler(\n type: InstrumentHandlerTypePerformanceObserver,\n callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback {\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: InstrumentHandlerType, data: unknown): void {\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(): StopListening {\n return onCLS(\n metric => {\n triggerHandlers('cls', {\n metric,\n });\n _previousCls = metric;\n },\n { reportAllChanges: true },\n );\n}\n\nfunction instrumentFid(): void {\n return onFID(metric => {\n triggerHandlers('fid', {\n metric,\n });\n _previousFid = metric;\n });\n}\n\nfunction instrumentLcp(): StopListening {\n return onLCP(metric => {\n triggerHandlers('lcp', {\n metric,\n });\n _previousLcp = metric;\n });\n}\n\nfunction instrumentTtfb(): StopListening {\n return onTTFB(metric => {\n triggerHandlers('ttfb', {\n metric,\n });\n _previousTtfb = metric;\n });\n}\n\nfunction instrumentInp(): void {\n return onINP(metric => {\n triggerHandlers('inp', {\n metric,\n });\n _previousInp = metric;\n });\n}\n\nfunction addMetricObserver(\n type: InstrumentHandlerTypeMetric,\n callback: InstrumentHandlerCallback,\n instrumentFn: () => StopListening,\n previousValue: Metric | undefined,\n stopOnCallback = false,\n): CleanupHandlerCallback {\n addHandler(type, callback);\n\n let stopListening: StopListening | undefined;\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: InstrumentHandlerTypePerformanceObserver): void {\n const options: PerformanceObserverInit = {};\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: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(handler);\n}\n\n// Get a callback which can be called to remove the instrumentation handler\nfunction getCleanupCallback(\n type: InstrumentHandlerType,\n callback: InstrumentHandlerCallback,\n stopListening: StopListening,\n): CleanupHandlerCallback {\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","import type { DsnComponents, SpanEnvelope, SpanItem } from '@sentry/types';\nimport type { Span } from '@sentry/types';\nimport { createEnvelope, dsnToString } from '@sentry/utils';\n\n/**\n * Create envelope from Span item.\n */\nexport function createSpanEnvelope(spans: Span[], dsn?: DsnComponents): SpanEnvelope {\n const headers: SpanEnvelope[0] = {\n sent_at: new Date().toISOString(),\n };\n\n if (dsn) {\n headers.dsn = dsnToString(dsn);\n }\n\n const items = spans.map(createSpanItem);\n return createEnvelope(headers, items);\n}\n\nfunction createSpanItem(span: Span): SpanItem {\n const spanHeaders: SpanItem[0] = {\n type: 'span',\n };\n return [spanHeaders, span];\n}\n","import type { MeasurementUnit } from '@sentry/types';\n\nimport { getActiveTransaction } from './utils';\n\n/**\n * Adds a measurement to the current active transaction.\n */\nexport function setMeasurement(name: string, value: number, unit: MeasurementUnit): void {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction();\n if (transaction) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.setMeasurement(name, value, unit);\n }\n}\n","import type { Transaction } from '@sentry/core';\nimport type { Span, SpanContext } from '@sentry/types';\n\n/**\n * Checks if a given value is a valid measurement value.\n */\nexport function isMeasurementValue(value: unknown): value is number {\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 */\nexport function _startChild(transaction: Transaction, { startTimestamp, ...ctx }: SpanContext): Span {\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","/* eslint-disable max-lines */\nimport type { IdleTransaction, Transaction } from '@sentry/core';\nimport {\n Span,\n getActiveTransaction,\n getClient,\n hasTracingEnabled,\n isValidSampleRate,\n setMeasurement,\n} from '@sentry/core';\nimport type { ClientOptions, Measurements, SpanContext, TransactionContext } from '@sentry/types';\nimport { browserPerformanceTimeOrigin, getComponentName, htmlTreeAsString, logger, parseUrl } from '@sentry/utils';\n\nimport { spanToJSON } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../common/debug-build';\nimport {\n addClsInstrumentationHandler,\n addFidInstrumentationHandler,\n addInpInstrumentationHandler,\n addLcpInstrumentationHandler,\n addPerformanceInstrumentationHandler,\n addTtfbInstrumentationHandler,\n} from '../instrument';\nimport { WINDOW } from '../types';\nimport { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher';\nimport type {\n InteractionRouteNameMapping,\n NavigatorDeviceMemory,\n NavigatorNetworkInformation,\n} from '../web-vitals/types';\nimport { _startChild, isMeasurementValue } from './utils';\n\nimport { createSpanEnvelope } from '@sentry/core';\nimport { getNavigationEntry } from '../web-vitals/lib/getNavigationEntry';\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: number): number {\n return time / 1000;\n}\n\nfunction getBrowserPerformanceAPI(): Performance | undefined {\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: number = 0;\n\nlet _measurements: Measurements = {};\nlet _lcpEntry: LargestContentfulPaint | undefined;\nlet _clsEntry: LayoutShift | undefined;\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 */\nexport function startTrackingWebVitals(): () => void {\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 (): void => {\n fidCallback();\n clsCallback();\n lcpCallback();\n ttfbCallback();\n };\n }\n\n return () => undefined;\n}\n\n/**\n * Start tracking long tasks.\n */\nexport function startTrackingLongTasks(): void {\n addPerformanceInstrumentationHandler('longtask', ({ entries }) => {\n for (const entry of entries) {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction() as IdleTransaction | undefined;\n if (!transaction) {\n return;\n }\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + 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 */\nexport function startTrackingInteractions(): void {\n addPerformanceInstrumentationHandler('event', ({ entries }) => {\n for (const entry of entries) {\n // eslint-disable-next-line deprecation/deprecation\n const transaction = getActiveTransaction() as IdleTransaction | undefined;\n if (!transaction) {\n return;\n }\n\n if (entry.name === 'click') {\n const startTime = msToSec((browserPerformanceTimeOrigin as number) + entry.startTime);\n const duration = msToSec(entry.duration);\n\n const span: SpanContext = {\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 */\nexport function startTrackingINP(\n interactionIdtoRouteNameMapping: InteractionRouteNameMapping,\n interactionsSampleRate: number,\n): () => void {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n const inpCallback = _trackINP(interactionIdtoRouteNameMapping, interactionsSampleRate);\n\n return (): void => {\n inpCallback();\n };\n }\n\n return () => undefined;\n}\n\n/** Starts tracking the Cumulative Layout Shift on the current page. */\nfunction _trackCLS(): () => void {\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 as LayoutShift;\n }, true);\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP(): () => void {\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 as LargestContentfulPaint;\n }, true);\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID(): () => void {\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 as number);\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(): () => void {\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: Record = {\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: InteractionRouteNameMapping,\n interactionsSampleRate: number,\n): () => void {\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 as number) + 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 as number | boolean)) {\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 */\nexport function addPerformanceEntries(transaction: Transaction): void {\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: Record) => {\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 as string, startTime, duration, timeOrigin);\n break;\n }\n default:\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 */\nexport function _addMeasureSpans(\n transaction: Transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry: Record,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): number {\n const measureStartTimestamp = timeOrigin + startTime;\n const measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name as string,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType as string,\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: Transaction, entry: Record, timeOrigin: number): void {\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: Transaction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n entry: Record,\n event: string,\n timeOrigin: number,\n description?: string,\n eventEnd?: string,\n): void {\n const end = eventEnd ? (entry[eventEnd] as number | undefined) : (entry[`${event}End`] as number | undefined);\n const start = entry[`${event}Start`] as number | undefined;\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: Transaction, entry: Record, timeOrigin: number): void {\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 as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n\n _startChild(transaction, {\n op: 'browser',\n origin: 'auto.browser.browser.metrics',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n }\n}\n\nexport interface ResourceEntry extends Record {\n initiatorType?: string;\n transferSize?: number;\n encodedBodySize?: number;\n decodedBodySize?: number;\n renderBlockingStatus?: string;\n}\n\n/** Create resource-related spans */\nexport function _addResourceSpans(\n transaction: Transaction,\n entry: ResourceEntry,\n resourceUrl: string,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): void {\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: Record = {};\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: Transaction): void {\n const navigator = WINDOW.navigator as null | (Navigator & NavigatorNetworkInformation & NavigatorDeviceMemory);\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: Transaction): void {\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: Record,\n entry: ResourceEntry,\n key: keyof Pick,\n dataKey: 'http.response_transfer_size' | 'http.response_content_length' | 'http.decoded_response_content_length',\n): void {\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: Measurements): void {\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: TransactionContext | undefined,\n options: ClientOptions,\n interactionsSampleRate: number,\n): number | boolean {\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","import {\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n getClient,\n getCurrentScope,\n getDynamicSamplingContextFromClient,\n getDynamicSamplingContextFromSpan,\n getIsolationScope,\n hasTracingEnabled,\n setHttpStatus,\n spanToTraceHeader,\n startInactiveSpan,\n} from '@sentry/core';\nimport type { Client, HandlerDataFetch, Scope, Span, SpanOrigin } from '@sentry/types';\nimport {\n BAGGAGE_HEADER_NAME,\n dynamicSamplingContextToSentryBaggageHeader,\n generateSentryTraceHeader,\n isInstanceOf,\n parseUrl,\n} from '@sentry/utils';\n\ntype PolymorphicRequestHeaders =\n | Record\n | Array<[string, string]>\n // the below is not preicsely the Header type used in Request, but it'll pass duck-typing\n | {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n append: (key: string, value: string) => void;\n get: (key: string) => string | null | undefined;\n };\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 */\nexport function instrumentFetchRequest(\n handlerData: HandlerDataFetch,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record,\n spanOrigin: SpanOrigin = 'auto.http.browser',\n): Span | undefined {\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: string | 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: { [key: string]: any } = 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 */\nexport function addTracingHeadersToFetchRequest(\n request: string | unknown, // unknown is actually type Request but we can't export DOM types from this package,\n client: Client,\n scope: Scope,\n options: {\n headers?:\n | {\n [key: string]: string[] | string | undefined;\n }\n | PolymorphicRequestHeaders;\n },\n requestSpan?: Span,\n): PolymorphicRequestHeaders | undefined {\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 as 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 as 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 as PolymorphicRequestHeaders;\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 as PolymorphicRequestHeaders;\n } else {\n const existingBaggageHeader = 'baggage' in headers ? headers.baggage : undefined;\n const newBaggageHeaders: string[] = [];\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 as Exclude),\n 'sentry-trace': sentryTraceHeader,\n baggage: newBaggageHeaders.length > 0 ? newBaggageHeaders.join(',') : undefined,\n };\n }\n}\n\nfunction getFullURL(url: string): string | undefined {\n try {\n const parsed = new URL(url);\n return parsed.href;\n } catch {\n return undefined;\n }\n}\n\nfunction endSpan(span: Span, handlerData: HandlerDataFetch): void {\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","/* eslint-disable max-lines */\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n getClient,\n getCurrentScope,\n getDynamicSamplingContextFromClient,\n getDynamicSamplingContextFromSpan,\n getIsolationScope,\n hasTracingEnabled,\n setHttpStatus,\n spanToJSON,\n spanToTraceHeader,\n startInactiveSpan,\n} from '@sentry/core';\nimport type { HandlerDataXhr, SentryWrappedXMLHttpRequest, Span } from '@sentry/types';\nimport {\n BAGGAGE_HEADER_NAME,\n SENTRY_XHR_DATA_KEY,\n addFetchInstrumentationHandler,\n addXhrInstrumentationHandler,\n browserPerformanceTimeOrigin,\n dynamicSamplingContextToSentryBaggageHeader,\n generateSentryTraceHeader,\n parseUrl,\n stringMatchesSomePattern,\n} from '@sentry/utils';\n\nimport { instrumentFetchRequest } from '../common/fetch';\nimport { addPerformanceInstrumentationHandler } from './instrument';\nimport { WINDOW } from './types';\n\nexport const DEFAULT_TRACE_PROPAGATION_TARGETS = ['localhost', /^\\/(?!\\/)/];\n\n/** Options for Request Instrumentation */\nexport interface RequestInstrumentationOptions {\n /**\n * @deprecated Will be removed in v8.\n * Use `shouldCreateSpanForRequest` to control span creation and `tracePropagationTargets` to control\n * trace header attachment.\n */\n tracingOrigins: Array;\n\n /**\n * List of strings and/or regexes used to determine which outgoing requests will have `sentry-trace` and `baggage`\n * headers attached.\n *\n * @deprecated Use the top-level `tracePropagationTargets` option in `Sentry.init` instead.\n * This option will be removed in v8.\n *\n * Default: ['localhost', /^\\//] @see {DEFAULT_TRACE_PROPAGATION_TARGETS}\n */\n tracePropagationTargets: Array;\n\n /**\n * Flag to disable patching all together for fetch requests.\n *\n * Default: true\n */\n traceFetch: boolean;\n\n /**\n * Flag to disable patching all together for xhr requests.\n *\n * Default: true\n */\n traceXHR: boolean;\n\n /**\n * If true, Sentry will capture http timings and add them to the corresponding http spans.\n *\n * Default: true\n */\n enableHTTPTimings: boolean;\n\n /**\n * This function will be called before creating a span for a request with the given url.\n * Return false if you don't want a span for the given url.\n *\n * Default: (url: string) => true\n */\n shouldCreateSpanForRequest?(this: void, url: string): boolean;\n}\n\nexport const defaultRequestInstrumentationOptions: RequestInstrumentationOptions = {\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 */\nexport function instrumentOutgoingRequests(_options?: Partial): void {\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 : (_: string) => 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: string): boolean =>\n shouldAttachHeaders(url, tracePropagationTargets || tracingOrigins);\n\n const spans: Record = {};\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: PerformanceEntry): entry is PerformanceResourceTiming {\n return (\n entry.entryType === 'resource' &&\n 'initiatorType' in entry &&\n typeof (entry as PerformanceResourceTiming).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: Span): void {\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 */\nexport function extractNetworkProtocol(nextHopProtocol: string): { name: string; version: string } {\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: number = 0): number {\n return ((browserPerformanceTimeOrigin || performance.timeOrigin) + time) / 1000;\n}\n\nfunction resourceTimingEntryToSpanData(resourceTiming: PerformanceResourceTiming): [string, string | number][] {\n const { name, version } = extractNetworkProtocol(resourceTiming.nextHopProtocol);\n\n const timingSpanData: [string, string | number][] = [];\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 */\nexport function shouldAttachHeaders(url: string, tracePropagationTargets: (string | RegExp)[] | undefined): boolean {\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\nexport function xhrCallback(\n handlerData: HandlerDataXhr,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record,\n): Span | undefined {\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: SentryWrappedXMLHttpRequest,\n sentryTraceHeader: string,\n sentryBaggageHeader: string | undefined,\n): void {\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: string): string | undefined {\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 {\n return undefined;\n }\n}\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ &\n // document is not available in all browser environments (webworkers). We make it optional so you have to explicitly check for it\n Omit &\n Partial>;\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\nimport { WINDOW } from '../../types';\nimport type { NavigationTimingPolyfillEntry } from '../types';\n\nconst getNavigationEntryFromPerformanceTiming = (): NavigationTimingPolyfillEntry => {\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: { [key: string]: number | string } = {\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 as keyof PerformanceTiming] as number) - timing.navigationStart, 0);\n }\n }\n return navigationEntry as unknown as NavigationTimingPolyfillEntry;\n};\n\nexport const getNavigationEntry = (): PerformanceNavigationTiming | NavigationTimingPolyfillEntry | undefined => {\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","/*\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\nimport { WINDOW } from '../../types';\nimport { onHidden } from './onHidden';\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = (): void => {\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 = (): void => {\n // Update the time if/when the document becomes hidden.\n onHidden(({ timeStamp }) => {\n firstHiddenTime = timeStamp;\n }, true);\n};\n\nexport const getVisibilityWatcher = (): {\n readonly firstHiddenTime: number;\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","/*\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\nimport { WINDOW } from '../../types';\n\nexport interface OnHiddenCallback {\n (event: Event): void;\n}\n\nexport const onHidden = (cb: OnHiddenCallback, once?: boolean): void => {\n const onHiddenOrPageHide = (event: Event): void => {\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","declare const __DEBUG_BUILD__: boolean;\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 */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","export const DEFAULT_ENVIRONMENT = 'production';\n","declare const __DEBUG_BUILD__: boolean;\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 */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import type {\n Breadcrumb,\n BreadcrumbHint,\n CaptureContext,\n CheckIn,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n FinishedCheckIn,\n MonitorConfig,\n Primitive,\n Scope as ScopeInterface,\n Session,\n SessionContext,\n Severity,\n SeverityLevel,\n Span,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport { GLOBAL_OBJ, isThenable, logger, timestampInSeconds, uuid4 } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from './constants';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { Hub } from './hub';\nimport { runWithAsyncContext } from './hub';\nimport { getCurrentHub, getIsolationScope } from './hub';\nimport type { Scope } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\nimport type { ExclusiveEventHintOrCaptureContext } from './utils/prepareEvent';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nexport function captureException(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n exception: any,\n hint?: ExclusiveEventHintOrCaptureContext,\n): string {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nexport function captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n captureContext?: CaptureContext | Severity | SeverityLevel,\n): string {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param exception The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nexport function captureEvent(event: Event, hint?: EventHint): string {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n *\n * @deprecated Use getCurrentScope() directly.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function configureScope(callback: (scope: Scope) => void): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().addBreadcrumb(breadcrumb, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, deprecation/deprecation\nexport function setContext(name: string, context: { [key: string]: any } | null): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setExtras(extras: Extras): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setExtra(key: string, extra: Extra): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setTags(tags: { [key: string]: Primitive }): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setTag(key: string, value: Primitive): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setUser(user: User | null): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n */\nexport function withScope(callback: (scope: Scope) => T): T;\n/**\n * Set the given scope as the active scope in the callback.\n */\nexport function withScope(scope: ScopeInterface | undefined, callback: (scope: Scope) => T): T;\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nexport function withScope(\n ...rest: [callback: (scope: Scope) => T] | [scope: ScopeInterface | undefined, callback: (scope: Scope) => T]\n): T {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n if (!scope) {\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(callback);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(() => {\n // eslint-disable-next-line deprecation/deprecation\n hub.getStackTop().scope = scope as Scope;\n return callback(scope as Scope);\n });\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return hub.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n *\n * @param callback The callback in which the passed isolation scope is active. (Note: In environments without async\n * context strategy, the currently active isolation scope may change within execution of the callback.)\n * @returns The same value that `callback` returns.\n */\nexport function withIsolationScope(callback: (isolationScope: Scope) => T): T {\n return runWithAsyncContext(() => {\n return callback(getIsolationScope());\n });\n}\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback.\n *\n * @param span Spans started in the context of the provided callback will be children of this span.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nexport function withActiveSpan(span: Span, callback: (scope: Scope) => T): T {\n return withScope(scope => {\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(span);\n return callback(scope);\n });\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.end()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n *\n * @deprecated Use `startSpan()`, `startSpanManual()` or `startInactiveSpan()` instead.\n */\nexport function startTransaction(\n context: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n // eslint-disable-next-line deprecation/deprecation\n): ReturnType {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().startTransaction({ ...context }, customSamplingContext);\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function captureCheckIn(checkIn: CheckIn, upsertMonitorConfig?: MonitorConfig): string {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function withMonitor(\n monitorSlug: CheckIn['monitorSlug'],\n callback: () => T,\n upsertMonitorConfig?: MonitorConfig,\n): T {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status: FinishedCheckIn['status']): void {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishCheckIn('ok');\n },\n () => {\n finishCheckIn('error');\n },\n );\n } else {\n finishCheckIn('ok');\n }\n\n return maybePromiseResult;\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function flush(timeout?: number): Promise {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function close(timeout?: number): Promise {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId(): string | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().lastEventId();\n}\n\n/**\n * Get the currently active client.\n */\nexport function getClient(): C | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getClient();\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nexport function isInitialized(): boolean {\n return !!getClient();\n}\n\n/**\n * Get the currently active scope.\n */\nexport function getCurrentScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getScope();\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nexport function startSession(context?: SessionContext): Session {\n const client = getClient();\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: currentScope.getUser() || isolationScope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = isolationScope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n\n endSession();\n\n // Afterwards we set the new session on the scope\n isolationScope.setSession(session);\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession(session);\n\n return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nexport function endSession(): void {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n\n // the session is over; take it off of the scope\n isolationScope.setSession();\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate(): void {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n const client = getClient();\n // TODO (v8): Remove currentScope and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session && client && client.captureSession) {\n client.captureSession(session);\n }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n * Defaults to `false`.\n */\nexport function captureSession(end: boolean = false): void {\n // both send the update and pull the session from the scope\n if (end) {\n endSession();\n return;\n }\n\n // only send the update\n _sendSessionUpdate();\n}\n","import type { Event, EventHint, EventProcessor } from '@sentry/types';\nimport { SyncPromise, getGlobalSingleton, isThenable, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from './debug-build';\n\n/**\n * Returns the global event processors.\n * @deprecated Global event processors will be removed in v8.\n */\nexport function getGlobalEventProcessors(): EventProcessor[] {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @deprecated Use `addEventProcessor` instead. Global event processors will be removed in v8.\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n // eslint-disable-next-line deprecation/deprecation\n getGlobalEventProcessors().push(callback);\n}\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nexport function notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint: EventHint,\n index: number = 0,\n): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n\n DEBUG_BUILD && processor.id && result === null && logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n}\n","import type { SerializedSession, Session, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nexport function makeSession(context?: Omit): Session {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session: Session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nexport function updateSession(session: Session, context: SessionContext = {}): void {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nexport function closeSession(session: Session, status?: Exclude): void {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session: Session): SerializedSession {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n","import type { Breadcrumb, Event, ScopeData, Span } from '@sentry/types';\nimport { arrayify, dropUndefinedKeys } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext';\nimport { getRootSpan } from './getRootSpan';\nimport { spanToJSON, spanToTraceContext } from './spanUtils';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nexport function applyScopeDataToEvent(event: Event, data: ScopeData): void {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n // Apply general data\n applyDataToEvent(event, data);\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (span) {\n applySpanToEvent(event, span);\n }\n\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nexport function mergeScopeData(data: ScopeData, mergeData: ScopeData): void {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n // eslint-disable-next-line deprecation/deprecation\n transactionName,\n span,\n } = mergeData;\n\n mergeAndOverwriteScopeData(data, 'extra', extra);\n mergeAndOverwriteScopeData(data, 'tags', tags);\n mergeAndOverwriteScopeData(data, 'user', user);\n mergeAndOverwriteScopeData(data, 'contexts', contexts);\n mergeAndOverwriteScopeData(data, 'sdkProcessingMetadata', sdkProcessingMetadata);\n\n if (level) {\n data.level = level;\n }\n\n if (transactionName) {\n // eslint-disable-next-line deprecation/deprecation\n data.transactionName = transactionName;\n }\n\n if (span) {\n data.span = span;\n }\n\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nexport function mergeAndOverwriteScopeData<\n Prop extends 'extra' | 'tags' | 'user' | 'contexts' | 'sdkProcessingMetadata',\n Data extends ScopeData,\n>(data: Data, prop: Prop, mergeVal: Data[Prop]): void {\n if (mergeVal && Object.keys(mergeVal).length) {\n // Clone object\n data[prop] = { ...data[prop] };\n for (const key in mergeVal) {\n if (Object.prototype.hasOwnProperty.call(mergeVal, key)) {\n data[prop][key] = mergeVal[key];\n }\n }\n }\n}\n\n/** Exported only for tests */\nexport function mergeArray(\n event: Event,\n prop: Prop,\n mergeVal: ScopeData[Prop],\n): void {\n const prevVal = event[prop];\n // If we are not merging any new values,\n // we only need to proceed if there was an empty array before (as we want to replace it with undefined)\n if (!mergeVal.length && (!prevVal || prevVal.length)) {\n return;\n }\n\n const merged = [...(prevVal || []), ...mergeVal] as ScopeData[Prop];\n event[prop] = merged.length ? merged : undefined;\n}\n\nfunction applyDataToEvent(event: Event, data: ScopeData): void {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n // eslint-disable-next-line deprecation/deprecation\n transactionName,\n } = data;\n\n const cleanedExtra = dropUndefinedKeys(extra);\n if (cleanedExtra && Object.keys(cleanedExtra).length) {\n event.extra = { ...cleanedExtra, ...event.extra };\n }\n\n const cleanedTags = dropUndefinedKeys(tags);\n if (cleanedTags && Object.keys(cleanedTags).length) {\n event.tags = { ...cleanedTags, ...event.tags };\n }\n\n const cleanedUser = dropUndefinedKeys(user);\n if (cleanedUser && Object.keys(cleanedUser).length) {\n event.user = { ...cleanedUser, ...event.user };\n }\n\n const cleanedContexts = dropUndefinedKeys(contexts);\n if (cleanedContexts && Object.keys(cleanedContexts).length) {\n event.contexts = { ...cleanedContexts, ...event.contexts };\n }\n\n if (level) {\n event.level = level;\n }\n\n if (transactionName) {\n event.transaction = transactionName;\n }\n}\n\nfunction applyBreadcrumbsToEvent(event: Event, breadcrumbs: Breadcrumb[]): void {\n const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event: Event, sdkProcessingMetadata: ScopeData['sdkProcessingMetadata']): void {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata,\n };\n}\n\nfunction applySpanToEvent(event: Event, span: Span): void {\n event.contexts = { trace: spanToTraceContext(span), ...event.contexts };\n const rootSpan = getRootSpan(span);\n if (rootSpan) {\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata,\n };\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event: Event, fingerprint: ScopeData['fingerprint'] | undefined): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n","/* eslint-disable max-lines */\nimport type {\n Attachment,\n Breadcrumb,\n CaptureContext,\n Client,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n PropagationContext,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n ScopeData,\n Session,\n Severity,\n SeverityLevel,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { dateTimestampInSeconds, isPlainObject, logger, uuid4 } from '@sentry/utils';\n\nimport { getGlobalEventProcessors, notifyEventProcessors } from './eventProcessors';\nimport { updateSession } from './session';\nimport { applyScopeDataToEvent } from './utils/applyScopeDataToEvent';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * The global scope is kept in this module.\n * When accessing this via `getGlobalScope()` we'll make sure to set one if none is currently present.\n */\nlet globalScope: ScopeInterface | undefined;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void>;\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[];\n\n /** User */\n protected _user: User;\n\n /** Tags */\n protected _tags: { [key: string]: Primitive };\n\n /** Extra */\n protected _extra: Extras;\n\n /** Contexts */\n protected _contexts: Contexts;\n\n /** Attachments */\n protected _attachments: Attachment[];\n\n /** Propagation Context for distributed tracing */\n protected _propagationContext: PropagationContext;\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata: { [key: string]: unknown };\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n protected _level?: Severity | SeverityLevel;\n\n /**\n * Transaction Name\n */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n /** The client on this scope */\n protected _client?: Client;\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n public constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = generatePropagationContext();\n }\n\n /**\n * Inherit values from the parent scope.\n * @deprecated Use `scope.clone()` and `new Scope()` instead.\n */\n public static clone(scope?: Scope): Scope {\n return scope ? scope.clone() : new Scope();\n }\n\n /**\n * Clone this scope instance.\n */\n public clone(): Scope {\n const newScope = new Scope();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._span = this._span;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._requestSession = this._requestSession;\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n\n return newScope;\n }\n\n /** Update the client on the scope. */\n public setClient(client: Client | undefined): void {\n this._client = client;\n }\n\n /**\n * Get the client assigned to this scope.\n *\n * It is generally recommended to use the global function `Sentry.getClient()` instead, unless you know what you are doing.\n */\n public getClient(): Client | undefined {\n return this._client;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n segment: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel,\n ): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the transaction name on the scope for future events.\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the Span on the scope.\n * @param span Span\n * @deprecated Instead of setting a span on a scope, use `startSpan()`/`startSpanManual()` instead.\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Returns the `Span` if there is one.\n * @deprecated Use `getActiveSpan()` instead.\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * Returns the `Transaction` attached to the scope (if there is one).\n * @deprecated You should not rely on the transaction, but just use `startSpan()` APIs instead.\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this._span;\n // Cannot replace with getRootSpan because getRootSpan returns a span, not a transaction\n // Also, this method will be removed anyway.\n // eslint-disable-next-line deprecation/deprecation\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n if (scopeToMerge instanceof Scope) {\n const scopeData = scopeToMerge.getScopeData();\n\n this._tags = { ...this._tags, ...scopeData.tags };\n this._extra = { ...this._extra, ...scopeData.extra };\n this._contexts = { ...this._contexts, ...scopeData.contexts };\n if (scopeData.user && Object.keys(scopeData.user).length) {\n this._user = scopeData.user;\n }\n if (scopeData.level) {\n this._level = scopeData.level;\n }\n if (scopeData.fingerprint.length) {\n this._fingerprint = scopeData.fingerprint;\n }\n if (scopeToMerge.getRequestSession()) {\n this._requestSession = scopeToMerge.getRequestSession();\n }\n if (scopeData.propagationContext) {\n this._propagationContext = scopeData.propagationContext;\n }\n } else if (isPlainObject(scopeToMerge)) {\n const scopeContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...scopeContext.tags };\n this._extra = { ...this._extra, ...scopeContext.extra };\n this._contexts = { ...this._contexts, ...scopeContext.contexts };\n if (scopeContext.user) {\n this._user = scopeContext.user;\n }\n if (scopeContext.level) {\n this._level = scopeContext.level;\n }\n if (scopeContext.fingerprint) {\n this._fingerprint = scopeContext.fingerprint;\n }\n if (scopeContext.requestSession) {\n this._requestSession = scopeContext.requestSession;\n }\n if (scopeContext.propagationContext) {\n this._propagationContext = scopeContext.propagationContext;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n this._propagationContext = generatePropagationContext();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n const breadcrumbs = this._breadcrumbs;\n breadcrumbs.push(mergedBreadcrumb);\n this._breadcrumbs = breadcrumbs.length > maxCrumbs ? breadcrumbs.slice(-maxCrumbs) : breadcrumbs;\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getLastBreadcrumb(): Breadcrumb | undefined {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addAttachment(attachment: Attachment): this {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `getScopeData()` instead.\n */\n public getAttachments(): Attachment[] {\n const data = this.getScopeData();\n\n return data.attachments;\n }\n\n /**\n * @inheritDoc\n */\n public clearAttachments(): this {\n this._attachments = [];\n return this;\n }\n\n /** @inheritDoc */\n public getScopeData(): ScopeData {\n const {\n _breadcrumbs,\n _attachments,\n _contexts,\n _tags,\n _extra,\n _user,\n _level,\n _fingerprint,\n _eventProcessors,\n _propagationContext,\n _sdkProcessingMetadata,\n _transactionName,\n _span,\n } = this;\n\n return {\n breadcrumbs: _breadcrumbs,\n attachments: _attachments,\n contexts: _contexts,\n tags: _tags,\n extra: _extra,\n user: _user,\n level: _level,\n fingerprint: _fingerprint || [],\n eventProcessors: _eventProcessors,\n propagationContext: _propagationContext,\n sdkProcessingMetadata: _sdkProcessingMetadata,\n transactionName: _transactionName,\n span: _span,\n };\n }\n\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n * @deprecated Use `applyScopeDataToEvent()` directly\n */\n public applyToEvent(\n event: Event,\n hint: EventHint = {},\n additionalEventProcessors: EventProcessor[] = [],\n ): PromiseLike {\n applyScopeDataToEvent(event, this.getScopeData());\n\n // TODO (v8): Update this order to be: Global > Client > Scope\n const eventProcessors: EventProcessor[] = [\n ...additionalEventProcessors,\n // eslint-disable-next-line deprecation/deprecation\n ...getGlobalEventProcessors(),\n ...this._eventProcessors,\n ];\n\n return notifyEventProcessors(eventProcessors, event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setPropagationContext(context: PropagationContext): this {\n this._propagationContext = context;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getPropagationContext(): PropagationContext {\n return this._propagationContext;\n }\n\n /**\n * Capture an exception for this scope.\n *\n * @param exception The exception to capture.\n * @param hint Optinal additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\n public captureException(exception: unknown, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Capture a message for this scope.\n *\n * @param message The message to capture.\n * @param level An optional severity level to report the message with.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured message.\n */\n public captureMessage(message: string, level?: SeverityLevel, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Captures a manually created event for this scope and sends it to Sentry.\n *\n * @param exception The event to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nexport function getGlobalScope(): ScopeInterface {\n if (!globalScope) {\n globalScope = new Scope();\n }\n\n return globalScope;\n}\n\n/**\n * This is mainly needed for tests.\n * DO NOT USE this, as this is an internal API and subject to change.\n * @hidden\n */\nexport function setGlobalScope(scope: ScopeInterface | undefined): void {\n globalScope = scope;\n}\n\nfunction generatePropagationContext(): PropagationContext {\n return {\n traceId: uuid4(),\n spanId: uuid4().substring(16),\n };\n}\n","export const SDK_VERSION = '7.120.3';\n","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n Session,\n SessionContext,\n Severity,\n SeverityLevel,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport {\n GLOBAL_OBJ,\n consoleSandbox,\n dateTimestampInSeconds,\n getGlobalSingleton,\n isThenable,\n logger,\n uuid4,\n} from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from './constants';\nimport { DEBUG_BUILD } from './debug-build';\nimport { Scope } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\nimport { SDK_VERSION } from './version';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = parseFloat(SDK_VERSION);\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\nexport interface RunWithAsyncContextOptions {\n /** Whether to reuse an existing async context if one exists. Defaults to false. */\n reuseExisting?: boolean;\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Strategy used to track async context.\n */\nexport interface AsyncContextStrategy {\n /**\n * Gets the current async context. Returns undefined if there is no current async context.\n */\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub: () => Hub | undefined;\n /**\n * Runs the supplied callback in its own async context.\n */\n runWithAsyncContext(callback: () => T, options: RunWithAsyncContextOptions): T;\n}\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n // eslint-disable-next-line deprecation/deprecation\n hub?: Hub;\n acs?: AsyncContextStrategy;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @deprecated The `Hub` class will be removed in version 8 of the SDK in favour of `Scope` and `Client` objects.\n *\n * If you previously used the `Hub` class directly, replace it with `Scope` and `Client` objects. More information:\n * - [Multiple Sentry Instances](https://docs.sentry.io/platforms/javascript/best-practices/multiple-sentry-instances/)\n * - [Browser Extensions](https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/)\n *\n * Some of our APIs are typed with the Hub class instead of the interface (e.g. `getCurrentHub`). Most of them are deprecated\n * themselves and will also be removed in version 8. More information:\n * - [Migration Guide](https://github.com/getsentry/sentry-javascript/blob/develop/MIGRATION.md#deprecate-hub)\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n private _isolationScope: Scope;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n *\n * @deprecated Instantiation of Hub objects is deprecated and the constructor will be removed in version 8 of the SDK.\n *\n * If you are currently using the Hub for multi-client use like so:\n *\n * ```\n * // OLD\n * const hub = new Hub();\n * hub.bindClient(client);\n * makeMain(hub)\n * ```\n *\n * instead initialize the client as follows:\n *\n * ```\n * // NEW\n * Sentry.withIsolationScope(() => {\n * Sentry.setCurrentClient(client);\n * client.init();\n * });\n * ```\n *\n * If you are using the Hub to capture events like so:\n *\n * ```\n * // OLD\n * const client = new Client();\n * const hub = new Hub(client);\n * hub.captureException()\n * ```\n *\n * instead capture isolated events as follows:\n *\n * ```\n * // NEW\n * const client = new Client();\n * const scope = new Scope();\n * scope.setClient(client);\n * scope.captureException();\n * ```\n */\n public constructor(\n client?: Client,\n scope?: Scope,\n isolationScope?: Scope,\n private readonly _version: number = API_VERSION,\n ) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n assignedScope.setClient(client);\n } else {\n assignedScope = scope;\n }\n\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n assignedIsolationScope.setClient(client);\n } else {\n assignedIsolationScope = isolationScope;\n }\n\n this._stack = [{ scope: assignedScope }];\n\n if (client) {\n // eslint-disable-next-line deprecation/deprecation\n this.bindClient(client);\n }\n\n this._isolationScope = assignedIsolationScope;\n }\n\n /**\n * Checks if this hub's version is older than the given version.\n *\n * @param version A version number to compare to.\n * @return True if the given version is newer; otherwise false.\n *\n * @deprecated This will be removed in v8.\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * This binds the given client to the current scope.\n * @param client An SDK client (client) instance.\n *\n * @deprecated Use `initAndBind()` directly, or `setCurrentClient()` and/or `client.init()` instead.\n */\n public bindClient(client?: Client): void {\n // eslint-disable-next-line deprecation/deprecation\n const top = this.getStackTop();\n top.client = client;\n top.scope.setClient(client);\n // eslint-disable-next-line deprecation/deprecation\n if (client && client.setupIntegrations) {\n // eslint-disable-next-line deprecation/deprecation\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `withScope` instead.\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.getScope().clone();\n // eslint-disable-next-line deprecation/deprecation\n this.getStack().push({\n // eslint-disable-next-line deprecation/deprecation\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `withScope` instead.\n */\n public popScope(): boolean {\n // eslint-disable-next-line deprecation/deprecation\n if (this.getStack().length <= 1) return false;\n // eslint-disable-next-line deprecation/deprecation\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.withScope()` instead.\n */\n public withScope(callback: (scope: Scope) => T): T {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.pushScope();\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n // @ts-expect-error - isThenable returns the wrong type\n return maybePromiseResult.then(\n res => {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n return res;\n },\n e => {\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n throw e;\n },\n );\n }\n\n // eslint-disable-next-line deprecation/deprecation\n this.popScope();\n return maybePromiseResult;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.getClient()` instead.\n */\n public getClient(): C | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return this.getStackTop().client as C;\n }\n\n /**\n * Returns the scope of the top stack.\n *\n * @deprecated Use `Sentry.getCurrentScope()` instead.\n */\n public getScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return this.getStackTop().scope;\n }\n\n /**\n * @deprecated Use `Sentry.getIsolationScope()` instead.\n */\n public getIsolationScope(): Scope {\n return this._isolationScope;\n }\n\n /**\n * Returns the scope stack for domains or the process.\n * @deprecated This will be removed in v8.\n */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n * @deprecated This will be removed in v8.\n */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureException()` instead.\n */\n public captureException(exception: unknown, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error('Sentry syntheticException');\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureException(exception, {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n });\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureMessage()` instead.\n */\n public captureMessage(\n message: string,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n ): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n const syntheticException = new Error(message);\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureMessage(message, level, {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n });\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.captureEvent()` instead.\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (!event.type) {\n this._lastEventId = eventId;\n }\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().captureEvent(event, { ...hint, event_id: eventId });\n return eventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated This will be removed in v8.\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `Sentry.addBreadcrumb()` instead.\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n // TODO(v8): I know this comment doesn't make much sense because the hub will be deprecated but I still wanted to\n // write it down. In theory, we would have to add the breadcrumbs to the isolation scope here, however, that would\n // duplicate all of the breadcrumbs. There was the possibility of adding breadcrumbs to both, the isolation scope\n // and the normal scope, and deduplicating it down the line in the event processing pipeline. However, that would\n // have been very fragile, because the breadcrumb objects would have needed to keep their identity all throughout\n // the event processing pipeline.\n // In the new implementation, the top level `Sentry.addBreadcrumb()` should ONLY write to the isolation scope.\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setUser()` instead.\n */\n public setUser(user: User | null): void {\n // TODO(v8): The top level `Sentry.setUser()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setUser(user);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setUser(user);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setTags()` instead.\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n // TODO(v8): The top level `Sentry.setTags()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setTags(tags);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setTags(tags);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setExtras()` instead.\n */\n public setExtras(extras: Extras): void {\n // TODO(v8): The top level `Sentry.setExtras()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setExtras(extras);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setExtras(extras);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setTag()` instead.\n */\n public setTag(key: string, value: Primitive): void {\n // TODO(v8): The top level `Sentry.setTag()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setTag(key, value);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setTag(key, value);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setExtra()` instead.\n */\n public setExtra(key: string, extra: Extra): void {\n // TODO(v8): The top level `Sentry.setExtra()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setExtra(key, extra);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.setContext()` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n // TODO(v8): The top level `Sentry.setContext()` function should write ONLY to the isolation scope.\n // eslint-disable-next-line deprecation/deprecation\n this.getScope().setContext(name, context);\n // eslint-disable-next-line deprecation/deprecation\n this.getIsolationScope().setContext(name, context);\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `getScope()` directly.\n */\n public configureScope(callback: (scope: Scope) => void): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line deprecation/deprecation\n public run(callback: (hub: Hub) => void): void {\n // eslint-disable-next-line deprecation/deprecation\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n // eslint-disable-next-line deprecation/deprecation\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `Sentry.getClient().getIntegrationByName()` instead.\n */\n public getIntegration(integration: IntegrationClass): T | null {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n if (!client) return null;\n try {\n // eslint-disable-next-line deprecation/deprecation\n return client.getIntegration(integration);\n } catch (_oO) {\n DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.end()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n *\n * @deprecated Use `startSpan()`, `startSpanManual()` or `startInactiveSpan()` instead.\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n const result = this._callExtensionMethod('startTransaction', context, customSamplingContext);\n\n if (DEBUG_BUILD && !result) {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n if (!client) {\n logger.warn(\n \"Tracing extension 'startTransaction' is missing. You should 'init' the SDK before calling 'startTransaction'\",\n );\n } else {\n logger.warn(`Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n`);\n }\n }\n\n return result;\n }\n\n /**\n * @inheritDoc\n * @deprecated Use `spanToTraceHeader()` instead.\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use top level `captureSession` instead.\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n // eslint-disable-next-line deprecation/deprecation\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n * @deprecated Use top level `endSession` instead.\n */\n public endSession(): void {\n // eslint-disable-next-line deprecation/deprecation\n const layer = this.getStackTop();\n const scope = layer.scope;\n const session = scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n scope.setSession();\n }\n\n /**\n * @inheritDoc\n * @deprecated Use top level `startSession` instead.\n */\n public startSession(context?: SessionContext): Session {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: scope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n // eslint-disable-next-line deprecation/deprecation\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n *\n * @deprecated Use top-level `getClient().getOptions().sendDefaultPii` instead. This function\n * only unnecessarily increased API surface but only wrapped accessing the option.\n */\n public shouldSendDefaultPii(): boolean {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n const options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n // eslint-disable-next-line deprecation/deprecation\n const { scope, client } = this.getStackTop();\n\n const session = scope.getSession();\n if (session && client && client.captureSession) {\n client.captureSession(session);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-expect-error Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n DEBUG_BUILD && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return GLOBAL_OBJ;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n *\n * @deprecated Use `setCurrentClient()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n *\n * @deprecated Use the respective replacement method directly instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n const hub = registry.__SENTRY__.acs.getCurrentHub();\n\n if (hub) {\n return hub;\n }\n }\n\n // Return hub that lives on a global object\n return getGlobalHub(registry);\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current exection context,\n * meaning that it will remain stable for the same Hub.\n */\nexport function getIsolationScope(): Scope {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentHub().getIsolationScope();\n}\n\n// eslint-disable-next-line deprecation/deprecation\nfunction getGlobalHub(registry: Carrier = getMainCarrier()): Hub {\n // If there's no hub, or its an old API, assign a new one\n\n if (\n !hasHubOnCarrier(registry) ||\n // eslint-disable-next-line deprecation/deprecation\n getHubFromCarrier(registry).isOlderThan(API_VERSION)\n ) {\n // eslint-disable-next-line deprecation/deprecation\n setHubOnCarrier(registry, new Hub());\n }\n\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * If the carrier does not contain a hub, a new hub is created with the global hub client and scope.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function ensureHubOnCarrier(carrier: Carrier, parent: Hub = getGlobalHub()): void {\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (\n !hasHubOnCarrier(carrier) ||\n // eslint-disable-next-line deprecation/deprecation\n getHubFromCarrier(carrier).isOlderThan(API_VERSION)\n ) {\n // eslint-disable-next-line deprecation/deprecation\n const client = parent.getClient();\n // eslint-disable-next-line deprecation/deprecation\n const scope = parent.getScope();\n // eslint-disable-next-line deprecation/deprecation\n const isolationScope = parent.getIsolationScope();\n // eslint-disable-next-line deprecation/deprecation\n setHubOnCarrier(carrier, new Hub(client, scope.clone(), isolationScope.clone()));\n }\n}\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nexport function setAsyncContextStrategy(strategy: AsyncContextStrategy | undefined): void {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n registry.__SENTRY__ = registry.__SENTRY__ || {};\n registry.__SENTRY__.acs = strategy;\n}\n\n/**\n * Runs the supplied callback in its own async context. Async Context strategies are defined per SDK.\n *\n * @param callback The callback to run in its own async context\n * @param options Options to pass to the async context strategy\n * @returns The result of the callback\n */\nexport function runWithAsyncContext(callback: () => T, options: RunWithAsyncContextOptions = {}): T {\n const registry = getMainCarrier();\n\n if (registry.__SENTRY__ && registry.__SENTRY__.acs) {\n return registry.__SENTRY__.acs.runWithAsyncContext(callback, options);\n }\n\n // if there was no strategy, fallback to just calling the callback\n return callback();\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n // eslint-disable-next-line deprecation/deprecation\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n","import type { MeasurementUnit, Span } from '@sentry/types';\nimport type { MetricSummary } from '@sentry/types';\nimport type { Primitive } from '@sentry/types';\nimport { dropUndefinedKeys } from '@sentry/utils';\nimport { getActiveSpan } from '../tracing';\nimport type { MetricType } from './types';\n\n/**\n * key: bucketKey\n * value: [exportKey, MetricSummary]\n */\ntype MetricSummaryStorage = Map;\n\nlet SPAN_METRIC_SUMMARY: WeakMap | undefined;\n\nfunction getMetricStorageForSpan(span: Span): MetricSummaryStorage | undefined {\n return SPAN_METRIC_SUMMARY ? SPAN_METRIC_SUMMARY.get(span) : undefined;\n}\n\n/**\n * Fetches the metric summary if it exists for the passed span\n */\nexport function getMetricSummaryJsonForSpan(span: Span): Record> | undefined {\n const storage = getMetricStorageForSpan(span);\n\n if (!storage) {\n return undefined;\n }\n const output: Record> = {};\n\n for (const [, [exportKey, summary]] of storage) {\n if (!output[exportKey]) {\n output[exportKey] = [];\n }\n\n output[exportKey].push(dropUndefinedKeys(summary));\n }\n\n return output;\n}\n\n/**\n * Updates the metric summary on the currently active span\n */\nexport function updateMetricSummaryOnActiveSpan(\n metricType: MetricType,\n sanitizedName: string,\n value: number,\n unit: MeasurementUnit,\n tags: Record,\n bucketKey: string,\n): void {\n const span = getActiveSpan();\n if (span) {\n const storage = getMetricStorageForSpan(span) || new Map();\n\n const exportKey = `${metricType}:${sanitizedName}@${unit}`;\n const bucketItem = storage.get(bucketKey);\n\n if (bucketItem) {\n const [, summary] = bucketItem;\n storage.set(bucketKey, [\n exportKey,\n {\n min: Math.min(summary.min, value),\n max: Math.max(summary.max, value),\n count: (summary.count += 1),\n sum: (summary.sum += value),\n tags: summary.tags,\n },\n ]);\n } else {\n storage.set(bucketKey, [\n exportKey,\n {\n min: value,\n max: value,\n count: 1,\n sum: value,\n tags,\n },\n ]);\n }\n\n if (!SPAN_METRIC_SUMMARY) {\n SPAN_METRIC_SUMMARY = new WeakMap();\n }\n\n SPAN_METRIC_SUMMARY.set(span, storage);\n }\n}\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Use this attribute to represent the sample rate used for a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/**\n * The id of the profile that this span occured in.\n */\nexport const SEMANTIC_ATTRIBUTE_PROFILE_ID = 'profile_id';\n","import type { Client, DynamicSamplingContext, Scope, Span, Transaction } from '@sentry/types';\nimport { dropUndefinedKeys } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getClient, getCurrentScope } from '../exports';\nimport { getRootSpan } from '../utils/getRootSpan';\nimport { spanIsSampled, spanToJSON } from '../utils/spanUtils';\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nexport function getDynamicSamplingContextFromClient(\n trace_id: string,\n client: Client,\n scope?: Scope,\n): DynamicSamplingContext {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n // TODO(v8): Remove segment from User\n // eslint-disable-next-line deprecation/deprecation\n const { segment: user_segment } = (scope && scope.getUser()) || {};\n\n const dsc = dropUndefinedKeys({\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n user_segment,\n public_key,\n trace_id,\n }) as DynamicSamplingContext;\n\n client.emit && client.emit('createDsc', dsc);\n\n return dsc;\n}\n\n/**\n * A Span with a frozen dynamic sampling context.\n */\ntype TransactionWithV7FrozenDsc = Transaction & { _frozenDynamicSamplingContext?: DynamicSamplingContext };\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nexport function getDynamicSamplingContextFromSpan(span: Span): Readonly> {\n const client = getClient();\n if (!client) {\n return {};\n }\n\n // passing emit=false here to only emit later once the DSC is actually populated\n const dsc = getDynamicSamplingContextFromClient(spanToJSON(span).trace_id || '', client, getCurrentScope());\n\n // TODO (v8): Remove v7FrozenDsc as a Transaction will no longer have _frozenDynamicSamplingContext\n const txn = getRootSpan(span) as TransactionWithV7FrozenDsc | undefined;\n if (!txn) {\n return dsc;\n }\n\n // TODO (v8): Remove v7FrozenDsc as a Transaction will no longer have _frozenDynamicSamplingContext\n // For now we need to avoid breaking users who directly created a txn with a DSC, where this field is still set.\n // @see Transaction class constructor\n const v7FrozenDsc = txn && txn._frozenDynamicSamplingContext;\n if (v7FrozenDsc) {\n return v7FrozenDsc;\n }\n\n // TODO (v8): Replace txn.metadata with txn.attributes[]\n // We can't do this yet because attributes aren't always set yet.\n // eslint-disable-next-line deprecation/deprecation\n const { sampleRate: maybeSampleRate, source } = txn.metadata;\n if (maybeSampleRate != null) {\n dsc.sample_rate = `${maybeSampleRate}`;\n }\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const jsonSpan = spanToJSON(txn);\n\n // after JSON conversion, txn.name becomes jsonSpan.description\n if (source && source !== 'url') {\n dsc.transaction = jsonSpan.description;\n }\n\n dsc.sampled = String(spanIsSampled(txn));\n\n client.emit && client.emit('createDsc', dsc);\n\n return dsc;\n}\n","import {\n addGlobalErrorInstrumentationHandler,\n addGlobalUnhandledRejectionInstrumentationHandler,\n logger,\n} from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { SpanStatusType } from './spanstatus';\nimport { getActiveTransaction } from './utils';\n\nlet errorsInstrumented = false;\n\n/**\n * Configures global error listeners\n */\nexport function registerErrorInstrumentation(): void {\n if (errorsInstrumented) {\n return;\n }\n\n errorsInstrumented = true;\n addGlobalErrorInstrumentationHandler(errorCallback);\n addGlobalUnhandledRejectionInstrumentationHandler(errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback(): void {\n // eslint-disable-next-line deprecation/deprecation\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const status: SpanStatusType = 'internal_error';\n DEBUG_BUILD && logger.log(`[Tracing] Transaction: ${status} -> Global error occured`);\n activeTransaction.setStatus(status);\n }\n}\n\n// The function name will be lost when bundling but we need to be able to identify this listener later to maintain the\n// node.js default exit behaviour\nerrorCallback.tag = 'sentry_tracingErrorCallback';\n","import type { ClientOptions, CustomSamplingContext, TransactionContext } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Hub } from '../hub';\nimport { getMainCarrier } from '../hub';\nimport { spanToTraceHeader } from '../utils/spanUtils';\nimport { registerErrorInstrumentation } from './errors';\nimport { IdleTransaction } from './idletransaction';\nimport { sampleTransaction } from './sampling';\nimport { Transaction } from './transaction';\n\n/** Returns all trace headers that are currently on the top scope. */\n// eslint-disable-next-line deprecation/deprecation\nfunction traceHeaders(this: Hub): { [key: string]: string } {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this.getScope();\n // eslint-disable-next-line deprecation/deprecation\n const span = scope.getSpan();\n\n return span\n ? {\n 'sentry-trace': spanToTraceHeader(span),\n }\n : {};\n}\n\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(\n // eslint-disable-next-line deprecation/deprecation\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n // eslint-disable-next-line deprecation/deprecation\n const client = this.getClient();\n const options: Partial = (client && client.getOptions()) || {};\n\n const configInstrumenter = options.instrumenter || 'sentry';\n const transactionInstrumenter = transactionContext.instrumenter || 'sentry';\n\n if (configInstrumenter !== transactionInstrumenter) {\n DEBUG_BUILD &&\n logger.error(\n `A transaction was started with instrumenter=\\`${transactionInstrumenter}\\`, but the SDK is configured with the \\`${configInstrumenter}\\` instrumenter.\nThe transaction will not be sampled. Please use the ${configInstrumenter} instrumentation to start transactions.`,\n );\n\n // eslint-disable-next-line deprecation/deprecation\n transactionContext.sampled = false;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n let transaction = new Transaction(transactionContext, this);\n transaction = sampleTransaction(transaction, options, {\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n ...customSamplingContext,\n });\n if (transaction.isRecording()) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(\n // eslint-disable-next-line deprecation/deprecation\n hub: Hub,\n transactionContext: TransactionContext,\n idleTimeout: number,\n finalTimeout: number,\n onScope?: boolean,\n customSamplingContext?: CustomSamplingContext,\n heartbeatInterval?: number,\n delayAutoFinishUntilSignal: boolean = false,\n): IdleTransaction {\n // eslint-disable-next-line deprecation/deprecation\n const client = hub.getClient();\n const options: Partial = (client && client.getOptions()) || {};\n\n // eslint-disable-next-line deprecation/deprecation\n let transaction = new IdleTransaction(\n transactionContext,\n hub,\n idleTimeout,\n finalTimeout,\n heartbeatInterval,\n onScope,\n delayAutoFinishUntilSignal,\n );\n transaction = sampleTransaction(transaction, options, {\n name: transactionContext.name,\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n attributes: {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.data,\n ...transactionContext.attributes,\n },\n ...customSamplingContext,\n });\n if (transaction.isRecording()) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n if (client && client.emit) {\n client.emit('startTransaction', transaction);\n }\n return transaction;\n}\n\n/**\n * Adds tracing extensions to the global hub.\n */\nexport function addTracingExtensions(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n\n registerErrorInstrumentation();\n}\n","/* eslint-disable max-lines */\nimport type { SpanTimeInput, TransactionContext } from '@sentry/types';\nimport { logger, timestampInSeconds } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Hub } from '../hub';\nimport { spanTimeInputToSeconds, spanToJSON } from '../utils/spanUtils';\nimport type { Span } from './span';\nimport { SpanRecorder } from './span';\nimport { Transaction } from './transaction';\n\nexport const TRACING_DEFAULTS = {\n idleTimeout: 1000,\n finalTimeout: 30000,\n heartbeatInterval: 5000,\n};\n\nconst FINISH_REASON_TAG = 'finishReason';\n\nconst IDLE_TRANSACTION_FINISH_REASONS = [\n 'heartbeatFailed',\n 'idleTimeout',\n 'documentHidden',\n 'finalTimeout',\n 'externalFinish',\n 'cancelled',\n];\n\n/**\n * @inheritDoc\n */\nexport class IdleTransactionSpanRecorder extends SpanRecorder {\n public constructor(\n private readonly _pushActivity: (id: string) => void,\n private readonly _popActivity: (id: string) => void,\n public transactionSpanId: string,\n maxlen?: number,\n ) {\n super(maxlen);\n }\n\n /**\n * @inheritDoc\n */\n public add(span: Span): void {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanContext().spanId !== this.transactionSpanId) {\n // We patch span.end() to pop an activity after setting an endTimestamp.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const originalEnd = span.end;\n span.end = (...rest: unknown[]) => {\n this._popActivity(span.spanContext().spanId);\n return originalEnd.apply(span, rest);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (spanToJSON(span).timestamp === undefined) {\n this._pushActivity(span.spanContext().spanId);\n }\n }\n\n super.add(span);\n }\n}\n\nexport type BeforeFinishCallback = (transactionSpan: IdleTransaction, endTimestamp: number) => void;\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nexport class IdleTransaction extends Transaction {\n // Activities store a list of active spans\n public activities: Record;\n // Track state of activities in previous heartbeat\n private _prevHeartbeatString: string | undefined;\n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n private _heartbeatCounter: number;\n\n // We should not use heartbeat if we finished a transaction\n private _finished: boolean;\n\n // Idle timeout was canceled and we should finish the transaction with the last span end.\n private _idleTimeoutCanceledPermanently: boolean;\n\n private readonly _beforeFinishCallbacks: BeforeFinishCallback[];\n\n /**\n * Timer that tracks Transaction idleTimeout\n */\n private _idleTimeoutID: ReturnType | undefined;\n\n private _finishReason: (typeof IDLE_TRANSACTION_FINISH_REASONS)[number];\n\n private _autoFinishAllowed: boolean;\n\n /**\n * @deprecated Transactions will be removed in v8. Use spans instead.\n */\n public constructor(\n transactionContext: TransactionContext,\n // eslint-disable-next-line deprecation/deprecation\n private readonly _idleHub: Hub,\n /**\n * The time to wait in ms until the idle transaction will be finished. This timer is started each time\n * there are no active spans on this transaction.\n */\n private readonly _idleTimeout: number = TRACING_DEFAULTS.idleTimeout,\n /**\n * The final value in ms that a transaction cannot exceed\n */\n private readonly _finalTimeout: number = TRACING_DEFAULTS.finalTimeout,\n private readonly _heartbeatInterval: number = TRACING_DEFAULTS.heartbeatInterval,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n private readonly _onScope: boolean = false,\n /**\n * When set to `true`, will disable the idle timeout (`_idleTimeout` option) and heartbeat mechanisms (`_heartbeatInterval`\n * option) until the `sendAutoFinishSignal()` method is called. The final timeout mechanism (`_finalTimeout` option)\n * will not be affected by this option, meaning the transaction will definitely be finished when the final timeout is\n * reached, no matter what this option is configured to.\n *\n * Defaults to `false`.\n */\n delayAutoFinishUntilSignal: boolean = false,\n ) {\n super(transactionContext, _idleHub);\n\n this.activities = {};\n this._heartbeatCounter = 0;\n this._finished = false;\n this._idleTimeoutCanceledPermanently = false;\n this._beforeFinishCallbacks = [];\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[4];\n this._autoFinishAllowed = !delayAutoFinishUntilSignal;\n\n if (_onScope) {\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n DEBUG_BUILD && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanContext().spanId}`);\n // eslint-disable-next-line deprecation/deprecation\n _idleHub.getScope().setSpan(this);\n }\n\n if (!delayAutoFinishUntilSignal) {\n this._restartIdleTimeout();\n }\n\n setTimeout(() => {\n if (!this._finished) {\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[3];\n this.end();\n }\n }, this._finalTimeout);\n }\n\n /** {@inheritDoc} */\n public end(endTimestamp?: SpanTimeInput): string | undefined {\n const endTimestampInS = spanTimeInputToSeconds(endTimestamp);\n\n this._finished = true;\n this.activities = {};\n\n // eslint-disable-next-line deprecation/deprecation\n if (this.op === 'ui.action.click') {\n this.setAttribute(FINISH_REASON_TAG, this._finishReason);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n if (this.spanRecorder) {\n DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestampInS * 1000).toISOString(), this.op);\n\n for (const callback of this._beforeFinishCallbacks) {\n callback(this, endTimestampInS);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span: Span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanContext().spanId === this.spanContext().spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!spanToJSON(span).timestamp) {\n span.setStatus('cancelled');\n span.end(endTimestampInS);\n DEBUG_BUILD &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n const { start_timestamp: startTime, timestamp: endTime } = spanToJSON(span);\n const spanStartedBeforeTransactionFinish = startTime && startTime < endTimestampInS;\n\n // Add a delta with idle timeout so that we prevent false positives\n const timeoutWithMarginOfError = (this._finalTimeout + this._idleTimeout) / 1000;\n const spanEndedBeforeFinalTimeout = endTime && startTime && endTime - startTime < timeoutWithMarginOfError;\n\n if (DEBUG_BUILD) {\n const stringifiedSpan = JSON.stringify(span, undefined, 2);\n if (!spanStartedBeforeTransactionFinish) {\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', stringifiedSpan);\n } else if (!spanEndedBeforeFinalTimeout) {\n logger.log('[Tracing] discarding Span since it finished after Transaction final timeout', stringifiedSpan);\n }\n }\n\n return spanStartedBeforeTransactionFinish && spanEndedBeforeFinalTimeout;\n });\n\n DEBUG_BUILD && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n DEBUG_BUILD && logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n // eslint-disable-next-line deprecation/deprecation\n const scope = this._idleHub.getScope();\n // eslint-disable-next-line deprecation/deprecation\n if (scope.getTransaction() === this) {\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(undefined);\n }\n }\n\n return super.end(endTimestamp);\n }\n\n /**\n * Register a callback function that gets executed before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n public registerBeforeFinishCallback(callback: BeforeFinishCallback): void {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public initSpanRecorder(maxlen?: number): void {\n // eslint-disable-next-line deprecation/deprecation\n if (!this.spanRecorder) {\n const pushActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n const popActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanContext().spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n DEBUG_BUILD && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.add(this);\n }\n\n /**\n * Cancels the existing idle timeout, if there is one.\n * @param restartOnChildSpanChange Default is `true`.\n * If set to false the transaction will end\n * with the last child span.\n */\n public cancelIdleTimeout(\n endTimestamp?: Parameters[0],\n {\n restartOnChildSpanChange,\n }: {\n restartOnChildSpanChange?: boolean;\n } = {\n restartOnChildSpanChange: true,\n },\n ): void {\n this._idleTimeoutCanceledPermanently = restartOnChildSpanChange === false;\n if (this._idleTimeoutID) {\n clearTimeout(this._idleTimeoutID);\n this._idleTimeoutID = undefined;\n\n if (Object.keys(this.activities).length === 0 && this._idleTimeoutCanceledPermanently) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.end(endTimestamp);\n }\n }\n }\n\n /**\n * Temporary method used to externally set the transaction's `finishReason`\n *\n * ** WARNING**\n * This is for the purpose of experimentation only and will be removed in the near future, do not use!\n *\n * @internal\n *\n */\n public setFinishReason(reason: string): void {\n this._finishReason = reason;\n }\n\n /**\n * Permits the IdleTransaction to automatically end itself via the idle timeout and heartbeat mechanisms when the `delayAutoFinishUntilSignal` option was set to `true`.\n */\n public sendAutoFinishSignal(): void {\n if (!this._autoFinishAllowed) {\n DEBUG_BUILD && logger.log('[Tracing] Received finish signal for idle transaction.');\n this._restartIdleTimeout();\n this._autoFinishAllowed = true;\n }\n }\n\n /**\n * Restarts idle timeout, if there is no running idle timeout it will start one.\n */\n private _restartIdleTimeout(endTimestamp?: Parameters[0]): void {\n this.cancelIdleTimeout();\n this._idleTimeoutID = setTimeout(() => {\n if (!this._finished && Object.keys(this.activities).length === 0) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[1];\n this.end(endTimestamp);\n }\n }, this._idleTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n private _pushActivity(spanId: string): void {\n this.cancelIdleTimeout(undefined, { restartOnChildSpanChange: !this._idleTimeoutCanceledPermanently });\n DEBUG_BUILD && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n private _popActivity(spanId: string): void {\n if (this.activities[spanId]) {\n DEBUG_BUILD && logger.log(`[Tracing] popActivity ${spanId}`);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n const endTimestamp = timestampInSeconds();\n if (this._idleTimeoutCanceledPermanently) {\n if (this._autoFinishAllowed) {\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[5];\n this.end(endTimestamp);\n }\n } else {\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampInSeconds is in seconds, timeout is in ms\n this._restartIdleTimeout(endTimestamp + this._idleTimeout / 1000);\n }\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n private _beat(): void {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n const heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter++;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n if (this._autoFinishAllowed) {\n DEBUG_BUILD && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this._finishReason = IDLE_TRANSACTION_FINISH_REASONS[0];\n this.end();\n }\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n private _pingHeartbeat(): void {\n DEBUG_BUILD && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, this._heartbeatInterval);\n }\n}\n","import type { Options, SamplingContext } from '@sentry/types';\nimport { isNaN, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE } from '../semanticAttributes';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled';\nimport { spanToJSON } from '../utils/spanUtils';\nimport type { Transaction } from './transaction';\n\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * This method muttes the given `transaction` and will set the `sampled` value on it.\n * It returns the same transaction, for convenience.\n */\nexport function sampleTransaction(\n transaction: T,\n options: Pick,\n samplingContext: SamplingContext,\n): T {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = false;\n return transaction;\n }\n\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n // eslint-disable-next-line deprecation/deprecation\n if (transaction.sampled !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, Number(transaction.sampled));\n return transaction;\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` nor `enableTracing` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, Number(sampleRate));\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, Number(sampleRate));\n } else {\n // When `enableTracing === true`, we use a sample rate of 100%\n sampleRate = 1;\n transaction.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, sampleRate);\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n DEBUG_BUILD && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = false;\n return transaction;\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = false;\n return transaction;\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n // eslint-disable-next-line deprecation/deprecation\n transaction.sampled = Math.random() < (sampleRate as number | boolean);\n\n // if we're not going to keep it, we're done\n // eslint-disable-next-line deprecation/deprecation\n if (!transaction.sampled) {\n DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n return transaction;\n }\n\n DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.log(`[Tracing] starting ${transaction.op} transaction - ${spanToJSON(transaction).description}`);\n return transaction;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nexport function isValidSampleRate(rate: unknown): boolean {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n rate,\n )} of type ${JSON.stringify(typeof rate)}.`,\n );\n return false;\n }\n\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n DEBUG_BUILD &&\n logger.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${rate}.`);\n return false;\n }\n return true;\n}\n","/* eslint-disable max-lines */\nimport type {\n Instrumenter,\n Measurements,\n Primitive,\n Span as SpanInterface,\n SpanAttributeValue,\n SpanAttributes,\n SpanContext,\n SpanContextData,\n SpanJSON,\n SpanOrigin,\n SpanTimeInput,\n TraceContext,\n Transaction,\n} from '@sentry/types';\nimport { dropUndefinedKeys, logger, timestampInSeconds, uuid4 } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { getMetricSummaryJsonForSpan } from '../metrics/metric-summary';\nimport {\n SEMANTIC_ATTRIBUTE_PROFILE_ID,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n} from '../semanticAttributes';\nimport { getRootSpan } from '../utils/getRootSpan';\nimport {\n TRACE_FLAG_NONE,\n TRACE_FLAG_SAMPLED,\n spanTimeInputToSeconds,\n spanToJSON,\n spanToTraceContext,\n spanToTraceHeader,\n} from '../utils/spanUtils';\nimport type { SpanStatusType } from './spanstatus';\nimport { setHttpStatus } from './spanstatus';\n\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nexport class SpanRecorder {\n public spans: Span[];\n\n private readonly _maxlen: number;\n\n public constructor(maxlen: number = 1000) {\n this._maxlen = maxlen;\n this.spans = [];\n }\n\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n public add(span: Span): void {\n if (this.spans.length > this._maxlen) {\n // eslint-disable-next-line deprecation/deprecation\n span.spanRecorder = undefined;\n } else {\n this.spans.push(span);\n }\n }\n}\n\n/**\n * Span contains all data about a span\n */\nexport class Span implements SpanInterface {\n /**\n * Tags for the span.\n * @deprecated Use `spanToJSON(span).atttributes` instead.\n */\n public tags: { [key: string]: Primitive };\n\n /**\n * Data for the span.\n * @deprecated Use `spanToJSON(span).atttributes` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public data: { [key: string]: any };\n\n /**\n * List of spans that were finalized\n *\n * @deprecated This property will no longer be public. Span recording will be handled internally.\n */\n public spanRecorder?: SpanRecorder;\n\n /**\n * @inheritDoc\n * @deprecated Use top level `Sentry.getRootSpan()` instead\n */\n public transaction?: Transaction;\n\n /**\n * The instrumenter that created this span.\n *\n * TODO (v8): This can probably be replaced by an `instanceOf` check of the span class.\n * the instrumenter can only be sentry or otel so we can check the span instance\n * to verify which one it is and remove this field entirely.\n *\n * @deprecated This field will be removed.\n */\n public instrumenter: Instrumenter;\n\n protected _traceId: string;\n protected _spanId: string;\n protected _parentSpanId?: string | undefined;\n protected _sampled: boolean | undefined;\n protected _name?: string | undefined;\n protected _attributes: SpanAttributes;\n /** Epoch timestamp in seconds when the span started. */\n protected _startTime: number;\n /** Epoch timestamp in seconds when the span ended. */\n protected _endTime?: number | undefined;\n /** Internal keeper of the status */\n protected _status?: SpanStatusType | string | undefined;\n protected _exclusiveTime?: number;\n\n protected _measurements: Measurements;\n\n private _logMessage?: string;\n\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(spanContext: SpanContext = {}) {\n this._traceId = spanContext.traceId || uuid4();\n this._spanId = spanContext.spanId || uuid4().substring(16);\n this._startTime = spanContext.startTimestamp || timestampInSeconds();\n // eslint-disable-next-line deprecation/deprecation\n this.tags = spanContext.tags ? { ...spanContext.tags } : {};\n // eslint-disable-next-line deprecation/deprecation\n this.data = spanContext.data ? { ...spanContext.data } : {};\n // eslint-disable-next-line deprecation/deprecation\n this.instrumenter = spanContext.instrumenter || 'sentry';\n\n this._attributes = {};\n this.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanContext.origin || 'manual',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n ...spanContext.attributes,\n });\n\n // eslint-disable-next-line deprecation/deprecation\n this._name = spanContext.name || spanContext.description;\n\n if (spanContext.parentSpanId) {\n this._parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this._sampled = spanContext.sampled;\n }\n if (spanContext.status) {\n this._status = spanContext.status;\n }\n if (spanContext.endTimestamp) {\n this._endTime = spanContext.endTimestamp;\n }\n if (spanContext.exclusiveTime !== undefined) {\n this._exclusiveTime = spanContext.exclusiveTime;\n }\n this._measurements = spanContext.measurements ? { ...spanContext.measurements } : {};\n }\n\n // This rule conflicts with another eslint rule :(\n /* eslint-disable @typescript-eslint/member-ordering */\n\n /**\n * An alias for `description` of the Span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public get name(): string {\n return this._name || '';\n }\n\n /**\n * Update the name of the span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public set name(name: string) {\n this.updateName(name);\n }\n\n /**\n * Get the description of the Span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public get description(): string | undefined {\n return this._name;\n }\n\n /**\n * Get the description of the Span.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public set description(description: string | undefined) {\n this._name = description;\n }\n\n /**\n * The ID of the trace.\n * @deprecated Use `spanContext().traceId` instead.\n */\n public get traceId(): string {\n return this._traceId;\n }\n\n /**\n * The ID of the trace.\n * @deprecated You cannot update the traceId of a span after span creation.\n */\n public set traceId(traceId: string) {\n this._traceId = traceId;\n }\n\n /**\n * The ID of the span.\n * @deprecated Use `spanContext().spanId` instead.\n */\n public get spanId(): string {\n return this._spanId;\n }\n\n /**\n * The ID of the span.\n * @deprecated You cannot update the spanId of a span after span creation.\n */\n public set spanId(spanId: string) {\n this._spanId = spanId;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `startSpan` functions instead.\n */\n public set parentSpanId(string) {\n this._parentSpanId = string;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToJSON(span).parent_span_id` instead.\n */\n public get parentSpanId(): string | undefined {\n return this._parentSpanId;\n }\n\n /**\n * Was this span chosen to be sent as part of the sample?\n * @deprecated Use `isRecording()` instead.\n */\n public get sampled(): boolean | undefined {\n return this._sampled;\n }\n\n /**\n * Was this span chosen to be sent as part of the sample?\n * @deprecated You cannot update the sampling decision of a span after span creation.\n */\n public set sampled(sampled: boolean | undefined) {\n this._sampled = sampled;\n }\n\n /**\n * Attributes for the span.\n * @deprecated Use `spanToJSON(span).atttributes` instead.\n */\n public get attributes(): SpanAttributes {\n return this._attributes;\n }\n\n /**\n * Attributes for the span.\n * @deprecated Use `setAttributes()` instead.\n */\n public set attributes(attributes: SpanAttributes) {\n this._attributes = attributes;\n }\n\n /**\n * Timestamp in seconds (epoch time) indicating when the span started.\n * @deprecated Use `spanToJSON()` instead.\n */\n public get startTimestamp(): number {\n return this._startTime;\n }\n\n /**\n * Timestamp in seconds (epoch time) indicating when the span started.\n * @deprecated In v8, you will not be able to update the span start time after creation.\n */\n public set startTimestamp(startTime: number) {\n this._startTime = startTime;\n }\n\n /**\n * Timestamp in seconds when the span ended.\n * @deprecated Use `spanToJSON()` instead.\n */\n public get endTimestamp(): number | undefined {\n return this._endTime;\n }\n\n /**\n * Timestamp in seconds when the span ended.\n * @deprecated Set the end time via `span.end()` instead.\n */\n public set endTimestamp(endTime: number | undefined) {\n this._endTime = endTime;\n }\n\n /**\n * The status of the span.\n *\n * @deprecated Use `spanToJSON().status` instead to get the status.\n */\n public get status(): SpanStatusType | string | undefined {\n return this._status;\n }\n\n /**\n * The status of the span.\n *\n * @deprecated Use `.setStatus()` instead to set or update the status.\n */\n public set status(status: SpanStatusType | string | undefined) {\n this._status = status;\n }\n\n /**\n * Operation of the span\n *\n * @deprecated Use `spanToJSON().op` to read the op instead.\n */\n public get op(): string | undefined {\n return this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] as string | undefined;\n }\n\n /**\n * Operation of the span\n *\n * @deprecated Use `startSpan()` functions to set or `span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'op')\n * to update the span instead.\n */\n public set op(op: string | undefined) {\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, op);\n }\n\n /**\n * The origin of the span, giving context about what created the span.\n *\n * @deprecated Use `spanToJSON().origin` to read the origin instead.\n */\n public get origin(): SpanOrigin | undefined {\n return this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined;\n }\n\n /**\n * The origin of the span, giving context about what created the span.\n *\n * @deprecated Use `startSpan()` functions to set the origin instead.\n */\n public set origin(origin: SpanOrigin | undefined) {\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, origin);\n }\n\n /* eslint-enable @typescript-eslint/member-ordering */\n\n /** @inheritdoc */\n public spanContext(): SpanContextData {\n const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n return {\n spanId,\n traceId,\n traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE,\n };\n }\n\n /**\n * Creates a new `Span` while setting the current `Span.id` as `parentSpanId`.\n * Also the `sampled` decision will be inherited.\n *\n * @deprecated Use `startSpan()`, `startSpanManual()` or `startInactiveSpan()` instead.\n */\n public startChild(\n spanContext?: Pick>,\n ): SpanInterface {\n const childSpan = new Span({\n ...spanContext,\n parentSpanId: this._spanId,\n sampled: this._sampled,\n traceId: this._traceId,\n });\n\n // eslint-disable-next-line deprecation/deprecation\n childSpan.spanRecorder = this.spanRecorder;\n // eslint-disable-next-line deprecation/deprecation\n if (childSpan.spanRecorder) {\n // eslint-disable-next-line deprecation/deprecation\n childSpan.spanRecorder.add(childSpan);\n }\n\n const rootSpan = getRootSpan(this);\n // TODO: still set span.transaction here until we have a more permanent solution\n // Probably similarly to the weakmap we hold in node-experimental\n // eslint-disable-next-line deprecation/deprecation\n childSpan.transaction = rootSpan as Transaction;\n\n if (DEBUG_BUILD && rootSpan) {\n const opStr = (spanContext && spanContext.op) || '< unknown op >';\n const nameStr = spanToJSON(childSpan).description || '< unknown name >';\n const idStr = rootSpan.spanContext().spanId;\n\n const logMessage = `[Tracing] Starting '${opStr}' span on transaction '${nameStr}' (${idStr}).`;\n logger.log(logMessage);\n this._logMessage = logMessage;\n }\n\n return childSpan;\n }\n\n /**\n * Sets the tag attribute on the current span.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key Tag key\n * @param value Tag value\n * @deprecated Use `setAttribute()` instead.\n */\n public setTag(key: string, value: Primitive): this {\n // eslint-disable-next-line deprecation/deprecation\n this.tags = { ...this.tags, [key]: value };\n return this;\n }\n\n /**\n * Sets the data attribute on the current span\n * @param key Data key\n * @param value Data value\n * @deprecated Use `setAttribute()` instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setData(key: string, value: any): this {\n // eslint-disable-next-line deprecation/deprecation\n this.data = { ...this.data, [key]: value };\n return this;\n }\n\n /** @inheritdoc */\n public setAttribute(key: string, value: SpanAttributeValue | undefined): void {\n if (value === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._attributes[key];\n } else {\n this._attributes[key] = value;\n }\n }\n\n /** @inheritdoc */\n public setAttributes(attributes: SpanAttributes): void {\n Object.keys(attributes).forEach(key => this.setAttribute(key, attributes[key]));\n }\n\n /**\n * @inheritDoc\n */\n public setStatus(value: SpanStatusType): this {\n this._status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n * @deprecated Use top-level `setHttpStatus()` instead.\n */\n public setHttpStatus(httpStatus: number): this {\n setHttpStatus(this, httpStatus);\n return this;\n }\n\n /**\n * @inheritdoc\n *\n * @deprecated Use `.updateName()` instead.\n */\n public setName(name: string): void {\n this.updateName(name);\n }\n\n /**\n * @inheritDoc\n */\n public updateName(name: string): this {\n this._name = name;\n return this;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToJSON(span).status === 'ok'` instead.\n */\n public isSuccess(): boolean {\n return this._status === 'ok';\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `.end()` instead.\n */\n public finish(endTimestamp?: number): void {\n return this.end(endTimestamp);\n }\n\n /** @inheritdoc */\n public end(endTimestamp?: SpanTimeInput): void {\n // If already ended, skip\n if (this._endTime) {\n return;\n }\n const rootSpan = getRootSpan(this);\n if (\n DEBUG_BUILD &&\n // Don't call this for transactions\n rootSpan &&\n rootSpan.spanContext().spanId !== this._spanId\n ) {\n const logMessage = this._logMessage;\n if (logMessage) {\n logger.log((logMessage as string).replace('Starting', 'Finishing'));\n }\n }\n\n this._endTime = spanTimeInputToSeconds(endTimestamp);\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToTraceHeader()` instead.\n */\n public toTraceparent(): string {\n return spanToTraceHeader(this);\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToJSON()` or access the fields directly instead.\n */\n public toContext(): SpanContext {\n return dropUndefinedKeys({\n data: this._getData(),\n description: this._name,\n endTimestamp: this._endTime,\n // eslint-disable-next-line deprecation/deprecation\n op: this.op,\n parentSpanId: this._parentSpanId,\n sampled: this._sampled,\n spanId: this._spanId,\n startTimestamp: this._startTime,\n status: this._status,\n // eslint-disable-next-line deprecation/deprecation\n tags: this.tags,\n traceId: this._traceId,\n });\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Update the fields directly instead.\n */\n public updateWithContext(spanContext: SpanContext): this {\n // eslint-disable-next-line deprecation/deprecation\n this.data = spanContext.data || {};\n // eslint-disable-next-line deprecation/deprecation\n this._name = spanContext.name || spanContext.description;\n this._endTime = spanContext.endTimestamp;\n // eslint-disable-next-line deprecation/deprecation\n this.op = spanContext.op;\n this._parentSpanId = spanContext.parentSpanId;\n this._sampled = spanContext.sampled;\n this._spanId = spanContext.spanId || this._spanId;\n this._startTime = spanContext.startTimestamp || this._startTime;\n this._status = spanContext.status;\n // eslint-disable-next-line deprecation/deprecation\n this.tags = spanContext.tags || {};\n this._traceId = spanContext.traceId || this._traceId;\n\n return this;\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use `spanToTraceContext()` util function instead.\n */\n public getTraceContext(): TraceContext {\n return spanToTraceContext(this);\n }\n\n /**\n * Get JSON representation of this span.\n *\n * @hidden\n * @internal This method is purely for internal purposes and should not be used outside\n * of SDK code. If you need to get a JSON representation of a span,\n * use `spanToJSON(span)` instead.\n */\n public getSpanJSON(): SpanJSON {\n return dropUndefinedKeys({\n data: this._getData(),\n description: this._name,\n op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] as string | undefined,\n parent_span_id: this._parentSpanId,\n span_id: this._spanId,\n start_timestamp: this._startTime,\n status: this._status,\n // eslint-disable-next-line deprecation/deprecation\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this._endTime,\n trace_id: this._traceId,\n origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined,\n _metrics_summary: getMetricSummaryJsonForSpan(this),\n profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID] as string | undefined,\n exclusive_time: this._exclusiveTime,\n measurements: Object.keys(this._measurements).length > 0 ? this._measurements : undefined,\n });\n }\n\n /** @inheritdoc */\n public isRecording(): boolean {\n return !this._endTime && !!this._sampled;\n }\n\n /**\n * Convert the object to JSON.\n * @deprecated Use `spanToJSON(span)` instead.\n */\n public toJSON(): SpanJSON {\n return this.getSpanJSON();\n }\n\n /**\n * Get the merged data for this span.\n * For now, this combines `data` and `attributes` together,\n * until eventually we can ingest `attributes` directly.\n */\n private _getData():\n | {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n }\n | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const { data, _attributes: attributes } = this;\n\n const hasData = Object.keys(data).length > 0;\n const hasAttributes = Object.keys(attributes).length > 0;\n\n if (!hasData && !hasAttributes) {\n return undefined;\n }\n\n if (hasData && hasAttributes) {\n return {\n ...data,\n ...attributes,\n };\n }\n\n return hasData ? data : attributes;\n }\n}\n","import type { Span } from '@sentry/types';\n\n/** The status of an Span.\n *\n * @deprecated Use string literals - if you require type casting, cast to SpanStatusType type\n */\nexport enum SpanStatus {\n /** The operation completed successfully. */\n Ok = 'ok',\n /** Deadline expired before operation could complete. */\n DeadlineExceeded = 'deadline_exceeded',\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n Unauthenticated = 'unauthenticated',\n /** 403 Forbidden */\n PermissionDenied = 'permission_denied',\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n NotFound = 'not_found',\n /** 429 Too Many Requests */\n ResourceExhausted = 'resource_exhausted',\n /** Client specified an invalid argument. 4xx. */\n InvalidArgument = 'invalid_argument',\n /** 501 Not Implemented */\n Unimplemented = 'unimplemented',\n /** 503 Service Unavailable */\n Unavailable = 'unavailable',\n /** Other/generic 5xx. */\n InternalError = 'internal_error',\n /** Unknown. Any non-standard HTTP status code. */\n UnknownError = 'unknown_error',\n /** The operation was cancelled (typically by the user). */\n Cancelled = 'cancelled',\n /** Already exists (409) */\n AlreadyExists = 'already_exists',\n /** Operation was rejected because the system is not in a state required for the operation's */\n FailedPrecondition = 'failed_precondition',\n /** The operation was aborted, typically due to a concurrency issue. */\n Aborted = 'aborted',\n /** Operation was attempted past the valid range. */\n OutOfRange = 'out_of_range',\n /** Unrecoverable data loss or corruption */\n DataLoss = 'data_loss',\n}\n\nexport type SpanStatusType =\n /** The operation completed successfully. */\n | 'ok'\n /** Deadline expired before operation could complete. */\n | 'deadline_exceeded'\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n | 'unauthenticated'\n /** 403 Forbidden */\n | 'permission_denied'\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n | 'not_found'\n /** 429 Too Many Requests */\n | 'resource_exhausted'\n /** Client specified an invalid argument. 4xx. */\n | 'invalid_argument'\n /** 501 Not Implemented */\n | 'unimplemented'\n /** 503 Service Unavailable */\n | 'unavailable'\n /** Other/generic 5xx. */\n | 'internal_error'\n /** Unknown. Any non-standard HTTP status code. */\n | 'unknown_error'\n /** The operation was cancelled (typically by the user). */\n | 'cancelled'\n /** Already exists (409) */\n | 'already_exists'\n /** Operation was rejected because the system is not in a state required for the operation's */\n | 'failed_precondition'\n /** The operation was aborted, typically due to a concurrency issue. */\n | 'aborted'\n /** Operation was attempted past the valid range. */\n | 'out_of_range'\n /** Unrecoverable data loss or corruption */\n | 'data_loss';\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport function getSpanStatusFromHttpCode(httpStatus: number): SpanStatusType {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n\n return 'unknown_error';\n}\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @deprecated Use {@link spanStatusFromHttpCode} instead.\n * This export will be removed in v8 as the signature contains a typo.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport const spanStatusfromHttpCode = getSpanStatusFromHttpCode;\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nexport function setHttpStatus(span: Span, httpStatus: number): void {\n // TODO (v8): Remove these calls\n // Relay does not require us to send the status code as a tag\n // For now, just because users might expect it to land as a tag we keep sending it.\n // Same with data.\n // In v8, we replace both, simply with\n // span.setAttribute('http.response.status_code', httpStatus);\n\n // eslint-disable-next-line deprecation/deprecation\n span.setTag('http.status_code', String(httpStatus));\n // eslint-disable-next-line deprecation/deprecation\n span.setData('http.response.status_code', httpStatus);\n\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n span.setStatus(spanStatus);\n }\n}\n","import type { Scope, Span, SpanTimeInput, StartSpanOptions, TransactionContext } from '@sentry/types';\n\nimport { addNonEnumerableProperty, dropUndefinedKeys, logger, tracingContextFromHeaders } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from '.';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { getCurrentScope, withScope } from '../exports';\nimport type { Hub } from '../hub';\nimport { runWithAsyncContext } from '../hub';\nimport { getIsolationScope } from '../hub';\nimport { getCurrentHub } from '../hub';\nimport type { Scope as ScopeClass } from '../scope';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled';\nimport { spanIsSampled, spanTimeInputToSeconds, spanToJSON } from '../utils/spanUtils';\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n *\n * This function is meant to be used internally and may break at any time. Use at your own risk.\n *\n * @internal\n * @private\n *\n * @deprecated Use `startSpan` instead.\n */\nexport function trace(\n context: TransactionContext,\n callback: (span?: Span) => T,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onError: (error: unknown, span?: Span) => void = () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n afterFinish: () => void = () => {},\n): T {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n const scope = getCurrentScope();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n const spanContext = normalizeContext(context);\n const activeSpan = createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: false,\n scope,\n });\n\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(activeSpan);\n\n return handleCallbackErrors(\n () => callback(activeSpan),\n error => {\n activeSpan && activeSpan.setStatus('internal_error');\n onError(error, activeSpan);\n },\n () => {\n activeSpan && activeSpan.end();\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(parentSpan);\n afterFinish();\n },\n );\n}\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startSpan(context: StartSpanOptions, callback: (span: Span | undefined) => T): T {\n const spanContext = normalizeContext(context);\n\n return runWithAsyncContext(() => {\n return withScope(context.scope, scope => {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n const shouldSkipSpan = context.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? undefined\n : createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: context.forceTransaction,\n scope,\n });\n\n return handleCallbackErrors(\n () => callback(activeSpan),\n () => {\n // Only update the span status if it hasn't been changed yet\n if (activeSpan) {\n const { status } = spanToJSON(activeSpan);\n if (!status || status === 'ok') {\n activeSpan.setStatus('internal_error');\n }\n }\n },\n () => activeSpan && activeSpan.end(),\n );\n });\n });\n}\n\n/**\n * @deprecated Use {@link startSpan} instead.\n */\nexport const startActiveSpan = startSpan;\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a transaction/span, but does not finish the span\n * after the function is done automatically. You'll have to call `span.end()` manually.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startSpanManual(\n context: StartSpanOptions,\n callback: (span: Span | undefined, finish: () => void) => T,\n): T {\n const spanContext = normalizeContext(context);\n\n return runWithAsyncContext(() => {\n return withScope(context.scope, scope => {\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const parentSpan = scope.getSpan();\n\n const shouldSkipSpan = context.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? undefined\n : createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: context.forceTransaction,\n scope,\n });\n\n function finishAndSetSpan(): void {\n activeSpan && activeSpan.end();\n }\n\n return handleCallbackErrors(\n () => callback(activeSpan, finishAndSetSpan),\n () => {\n // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n if (activeSpan && activeSpan.isRecording()) {\n const { status } = spanToJSON(activeSpan);\n if (!status || status === 'ok') {\n activeSpan.setStatus('internal_error');\n }\n }\n },\n );\n });\n });\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * Note that if you have not enabled tracing extensions via `addTracingExtensions`\n * or you didn't set `tracesSampleRate` or `tracesSampler`, this function will not generate spans\n * and the `span` returned from the callback will be undefined.\n */\nexport function startInactiveSpan(context: StartSpanOptions): Span | undefined {\n if (!hasTracingEnabled()) {\n return undefined;\n }\n\n const spanContext = normalizeContext(context);\n // eslint-disable-next-line deprecation/deprecation\n const hub = getCurrentHub();\n const parentSpan = context.scope\n ? // eslint-disable-next-line deprecation/deprecation\n context.scope.getSpan()\n : getActiveSpan();\n\n const shouldSkipSpan = context.onlyIfParent && !parentSpan;\n\n if (shouldSkipSpan) {\n return undefined;\n }\n\n const scope = context.scope || getCurrentScope();\n\n // Even though we don't actually want to make this span active on the current scope,\n // we need to make it active on a temporary scope that we use for event processing\n // as otherwise, it won't pick the correct span for the event when processing it\n const temporaryScope = (scope as ScopeClass).clone();\n\n return createChildSpanOrTransaction(hub, {\n parentSpan,\n spanContext,\n forceTransaction: context.forceTransaction,\n scope: temporaryScope,\n });\n}\n\n/**\n * Returns the currently active span.\n */\nexport function getActiveSpan(): Span | undefined {\n // eslint-disable-next-line deprecation/deprecation\n return getCurrentScope().getSpan();\n}\n\ninterface ContinueTrace {\n /**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers,\n * or in the browser from `` and `` HTML tags.\n *\n * @deprecated Use the version of this function taking a callback as second parameter instead:\n *\n * ```\n * Sentry.continueTrace(sentryTrace: '...', baggage: '...' }, () => {\n * // ...\n * })\n * ```\n *\n */\n ({\n sentryTrace,\n baggage,\n }: {\n // eslint-disable-next-line deprecation/deprecation\n sentryTrace: Parameters[0];\n // eslint-disable-next-line deprecation/deprecation\n baggage: Parameters[1];\n }): Partial;\n\n /**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from ``\n * and `` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n *\n * Deprecation notice: In the next major version of the SDK the provided callback will not receive a transaction\n * context argument.\n */\n (\n {\n sentryTrace,\n baggage,\n }: {\n // eslint-disable-next-line deprecation/deprecation\n sentryTrace: Parameters[0];\n // eslint-disable-next-line deprecation/deprecation\n baggage: Parameters[1];\n },\n // TODO(v8): Remove parameter from this callback.\n callback: (transactionContext: Partial) => V,\n ): V;\n}\n\nexport const continueTrace: ContinueTrace = (\n {\n sentryTrace,\n baggage,\n }: {\n // eslint-disable-next-line deprecation/deprecation\n sentryTrace: Parameters[0];\n // eslint-disable-next-line deprecation/deprecation\n baggage: Parameters[1];\n },\n callback?: (transactionContext: Partial) => V,\n): V | Partial => {\n // TODO(v8): Change this function so it doesn't do anything besides setting the propagation context on the current scope:\n /*\n return withScope((scope) => {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n scope.setPropagationContext(propagationContext);\n return callback();\n })\n */\n\n const currentScope = getCurrentScope();\n\n // eslint-disable-next-line deprecation/deprecation\n const { traceparentData, dynamicSamplingContext, propagationContext } = tracingContextFromHeaders(\n sentryTrace,\n baggage,\n );\n\n currentScope.setPropagationContext(propagationContext);\n\n if (DEBUG_BUILD && traceparentData) {\n logger.log(`[Tracing] Continuing trace ${traceparentData.traceId}.`);\n }\n\n const transactionContext: Partial = {\n ...traceparentData,\n metadata: dropUndefinedKeys({\n dynamicSamplingContext,\n }),\n };\n\n if (!callback) {\n return transactionContext;\n }\n\n return runWithAsyncContext(() => {\n return callback(transactionContext);\n });\n};\n\nfunction createChildSpanOrTransaction(\n // eslint-disable-next-line deprecation/deprecation\n hub: Hub,\n {\n parentSpan,\n spanContext,\n forceTransaction,\n scope,\n }: {\n parentSpan: Span | undefined;\n spanContext: TransactionContext;\n forceTransaction?: boolean;\n scope: Scope;\n },\n): Span | undefined {\n if (!hasTracingEnabled()) {\n return undefined;\n }\n\n const isolationScope = getIsolationScope();\n\n let span: Span | undefined;\n if (parentSpan && !forceTransaction) {\n // eslint-disable-next-line deprecation/deprecation\n span = parentSpan.startChild(spanContext);\n } else if (parentSpan) {\n // If we forced a transaction but have a parent span, make sure to continue from the parent span, not the scope\n const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n const sampled = spanIsSampled(parentSpan);\n\n // eslint-disable-next-line deprecation/deprecation\n span = hub.startTransaction({\n traceId,\n parentSpanId,\n parentSampled: sampled,\n ...spanContext,\n metadata: {\n dynamicSamplingContext: dsc,\n // eslint-disable-next-line deprecation/deprecation\n ...spanContext.metadata,\n },\n });\n } else {\n const { traceId, dsc, parentSpanId, sampled } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n // eslint-disable-next-line deprecation/deprecation\n span = hub.startTransaction({\n traceId,\n parentSpanId,\n parentSampled: sampled,\n ...spanContext,\n metadata: {\n dynamicSamplingContext: dsc,\n // eslint-disable-next-line deprecation/deprecation\n ...spanContext.metadata,\n },\n });\n }\n\n // We always set this as active span on the scope\n // In the case of this being an inactive span, we ensure to pass a detached scope in here in the first place\n // But by having this here, we can ensure that the lookup through `getCapturedScopesOnSpan` results in the correct scope & span combo\n // eslint-disable-next-line deprecation/deprecation\n scope.setSpan(span);\n\n setCapturedScopesOnSpan(span, scope, isolationScope);\n\n return span;\n}\n\n/**\n * This converts StartSpanOptions to TransactionContext.\n * For the most part (for now) we accept the same options,\n * but some of them need to be transformed.\n *\n * Eventually the StartSpanOptions will be more aligned with OpenTelemetry.\n */\nfunction normalizeContext(context: StartSpanOptions): TransactionContext {\n if (context.startTime) {\n const ctx: TransactionContext & { startTime?: SpanTimeInput } = { ...context };\n ctx.startTimestamp = spanTimeInputToSeconds(context.startTime);\n delete ctx.startTime;\n return ctx;\n }\n\n return context;\n}\n\nconst SCOPE_ON_START_SPAN_FIELD = '_sentryScope';\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = '_sentryIsolationScope';\n\ntype SpanWithScopes = Span & {\n [SCOPE_ON_START_SPAN_FIELD]?: Scope;\n [ISOLATION_SCOPE_ON_START_SPAN_FIELD]?: Scope;\n};\n\nfunction setCapturedScopesOnSpan(span: Span | undefined, scope: Scope, isolationScope: Scope): void {\n if (span) {\n addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, isolationScope);\n addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n }\n}\n\n/**\n * Grabs the scope and isolation scope off a span that were active when the span was started.\n */\nexport function getCapturedScopesOnSpan(span: Span): { scope?: Scope; isolationScope?: Scope } {\n return {\n scope: (span as SpanWithScopes)[SCOPE_ON_START_SPAN_FIELD],\n isolationScope: (span as SpanWithScopes)[ISOLATION_SCOPE_ON_START_SPAN_FIELD],\n };\n}\n","import type {\n Context,\n Contexts,\n DynamicSamplingContext,\n MeasurementUnit,\n SpanTimeInput,\n Transaction as TransactionInterface,\n TransactionContext,\n TransactionEvent,\n TransactionMetadata,\n} from '@sentry/types';\nimport { dropUndefinedKeys, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Hub } from '../hub';\nimport { getCurrentHub } from '../hub';\nimport { getMetricSummaryJsonForSpan } from '../metrics/metric-summary';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes';\nimport { spanTimeInputToSeconds, spanToJSON, spanToTraceContext } from '../utils/spanUtils';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext';\nimport { Span as SpanClass, SpanRecorder } from './span';\nimport { getCapturedScopesOnSpan } from './trace';\n\n/** JSDoc */\nexport class Transaction extends SpanClass implements TransactionInterface {\n /**\n * The reference to the current hub.\n */\n // eslint-disable-next-line deprecation/deprecation\n public _hub: Hub;\n\n protected _name: string;\n\n private _contexts: Contexts;\n\n private _trimEnd?: boolean | undefined;\n\n // DO NOT yet remove this property, it is used in a hack for v7 backwards compatibility.\n private _frozenDynamicSamplingContext: Readonly> | undefined;\n\n private _metadata: Partial;\n\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n *\n * @deprecated Transactions will be removed in v8. Use spans instead.\n */\n // eslint-disable-next-line deprecation/deprecation\n public constructor(transactionContext: TransactionContext, hub?: Hub) {\n super(transactionContext);\n this._contexts = {};\n\n // eslint-disable-next-line deprecation/deprecation\n this._hub = hub || getCurrentHub();\n\n this._name = transactionContext.name || '';\n\n this._metadata = {\n // eslint-disable-next-line deprecation/deprecation\n ...transactionContext.metadata,\n };\n\n this._trimEnd = transactionContext.trimEnd;\n\n // this is because transactions are also spans, and spans have a transaction pointer\n // TODO (v8): Replace this with another way to set the root span\n // eslint-disable-next-line deprecation/deprecation\n this.transaction = this;\n\n // If Dynamic Sampling Context is provided during the creation of the transaction, we freeze it as it usually means\n // there is incoming Dynamic Sampling Context. (Either through an incoming request, a baggage meta-tag, or other means)\n const incomingDynamicSamplingContext = this._metadata.dynamicSamplingContext;\n if (incomingDynamicSamplingContext) {\n // We shallow copy this in case anything writes to the original reference of the passed in `dynamicSamplingContext`\n this._frozenDynamicSamplingContext = { ...incomingDynamicSamplingContext };\n }\n }\n\n // This sadly conflicts with the getter/setter ordering :(\n /* eslint-disable @typescript-eslint/member-ordering */\n\n /**\n * Getter for `name` property.\n * @deprecated Use `spanToJSON(span).description` instead.\n */\n public get name(): string {\n return this._name;\n }\n\n /**\n * Setter for `name` property, which also sets `source` as custom.\n * @deprecated Use `updateName()` and `setMetadata()` instead.\n */\n public set name(newName: string) {\n // eslint-disable-next-line deprecation/deprecation\n this.setName(newName);\n }\n\n /**\n * Get the metadata for this transaction.\n * @deprecated Use `spanGetMetadata(transaction)` instead.\n */\n public get metadata(): TransactionMetadata {\n // We merge attributes in for backwards compatibility\n return {\n // Defaults\n // eslint-disable-next-line deprecation/deprecation\n source: 'custom',\n spanMetadata: {},\n\n // Legacy metadata\n ...this._metadata,\n\n // From attributes\n ...(this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] && {\n source: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] as TransactionMetadata['source'],\n }),\n ...(this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] && {\n sampleRate: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] as TransactionMetadata['sampleRate'],\n }),\n };\n }\n\n /**\n * Update the metadata for this transaction.\n * @deprecated Use `spanGetMetadata(transaction)` instead.\n */\n public set metadata(metadata: TransactionMetadata) {\n this._metadata = metadata;\n }\n\n /* eslint-enable @typescript-eslint/member-ordering */\n\n /**\n * Setter for `name` property, which also sets `source` on the metadata.\n *\n * @deprecated Use `.updateName()` and `.setAttribute()` instead.\n */\n public setName(name: string, source: TransactionMetadata['source'] = 'custom'): void {\n this._name = name;\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, source);\n }\n\n /** @inheritdoc */\n public updateName(name: string): this {\n this._name = name;\n return this;\n }\n\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n public initSpanRecorder(maxlen: number = 1000): void {\n // eslint-disable-next-line deprecation/deprecation\n if (!this.spanRecorder) {\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.add(this);\n }\n\n /**\n * Set the context of a transaction event.\n * @deprecated Use either `.setAttribute()`, or set the context on the scope before creating the transaction.\n */\n public setContext(key: string, context: Context | null): void {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n }\n\n /**\n * @inheritDoc\n *\n * @deprecated Use top-level `setMeasurement()` instead.\n */\n public setMeasurement(name: string, value: number, unit: MeasurementUnit = ''): void {\n this._measurements[name] = { value, unit };\n }\n\n /**\n * Store metadata on this transaction.\n * @deprecated Use attributes or store data on the scope instead.\n */\n public setMetadata(newMetadata: Partial): void {\n this._metadata = { ...this._metadata, ...newMetadata };\n }\n\n /**\n * @inheritDoc\n */\n public end(endTimestamp?: SpanTimeInput): string | undefined {\n const timestampInS = spanTimeInputToSeconds(endTimestamp);\n const transaction = this._finishTransaction(timestampInS);\n if (!transaction) {\n return undefined;\n }\n // eslint-disable-next-line deprecation/deprecation\n return this._hub.captureEvent(transaction);\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): TransactionContext {\n // eslint-disable-next-line deprecation/deprecation\n const spanContext = super.toContext();\n\n return dropUndefinedKeys({\n ...spanContext,\n name: this._name,\n trimEnd: this._trimEnd,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(transactionContext: TransactionContext): this {\n // eslint-disable-next-line deprecation/deprecation\n super.updateWithContext(transactionContext);\n\n this._name = transactionContext.name || '';\n this._trimEnd = transactionContext.trimEnd;\n\n return this;\n }\n\n /**\n * @inheritdoc\n *\n * @experimental\n *\n * @deprecated Use top-level `getDynamicSamplingContextFromSpan` instead.\n */\n public getDynamicSamplingContext(): Readonly> {\n return getDynamicSamplingContextFromSpan(this);\n }\n\n /**\n * Override the current hub with a new one.\n * Used if you want another hub to finish the transaction.\n *\n * @internal\n */\n // eslint-disable-next-line deprecation/deprecation\n public setHub(hub: Hub): void {\n this._hub = hub;\n }\n\n /**\n * Get the profile id of the transaction.\n */\n public getProfileId(): string | undefined {\n if (this._contexts !== undefined && this._contexts['profile'] !== undefined) {\n return this._contexts['profile'].profile_id as string;\n }\n return undefined;\n }\n\n /**\n * Finish the transaction & prepare the event to send to Sentry.\n */\n protected _finishTransaction(endTimestamp?: number): TransactionEvent | undefined {\n // This transaction is already finished, so we should not flush it again.\n if (this._endTime !== undefined) {\n return undefined;\n }\n\n if (!this._name) {\n DEBUG_BUILD && logger.warn('Transaction has no name, falling back to ``.');\n this._name = '';\n }\n\n // just sets the end timestamp\n super.end(endTimestamp);\n\n // eslint-disable-next-line deprecation/deprecation\n const client = this._hub.getClient();\n if (client && client.emit) {\n client.emit('finishTransaction', this);\n }\n\n if (this._sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n DEBUG_BUILD && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n if (client) {\n client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return undefined;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const finishedSpans = this.spanRecorder\n ? // eslint-disable-next-line deprecation/deprecation\n this.spanRecorder.spans.filter(span => span !== this && spanToJSON(span).timestamp)\n : [];\n\n if (this._trimEnd && finishedSpans.length > 0) {\n const endTimes = finishedSpans.map(span => spanToJSON(span).timestamp).filter(Boolean) as number[];\n this._endTime = endTimes.reduce((prev, current) => {\n return prev > current ? prev : current;\n });\n }\n\n const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n\n // eslint-disable-next-line deprecation/deprecation\n const { metadata } = this;\n // eslint-disable-next-line deprecation/deprecation\n const { source } = metadata;\n\n const transaction: TransactionEvent = {\n contexts: {\n ...this._contexts,\n // We don't want to override trace context\n trace: spanToTraceContext(this),\n },\n // TODO: Pass spans serialized via `spanToJSON()` here instead in v8.\n spans: finishedSpans,\n start_timestamp: this._startTime,\n // eslint-disable-next-line deprecation/deprecation\n tags: this.tags,\n timestamp: this._endTime,\n transaction: this._name,\n type: 'transaction',\n sdkProcessingMetadata: {\n ...metadata,\n capturedSpanScope,\n capturedSpanIsolationScope,\n ...dropUndefinedKeys({\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n }),\n },\n _metrics_summary: getMetricSummaryJsonForSpan(this),\n ...(source && {\n transaction_info: {\n source,\n },\n }),\n };\n\n const hasMeasurements = Object.keys(this._measurements).length > 0;\n\n if (hasMeasurements) {\n DEBUG_BUILD &&\n logger.log(\n '[Measurements] Adding measurements to transaction',\n JSON.stringify(this._measurements, undefined, 2),\n );\n transaction.measurements = this._measurements;\n }\n\n // eslint-disable-next-line deprecation/deprecation\n DEBUG_BUILD && logger.log(`[Tracing] Finishing ${this.op} transaction: ${this._name}.`);\n\n return transaction;\n }\n}\n","import type { Transaction } from '@sentry/types';\nimport { extractTraceparentData as _extractTraceparentData } from '@sentry/utils';\n\nimport type { Hub } from '../hub';\nimport { getCurrentHub } from '../hub';\n\n/**\n * Grabs active transaction off scope.\n *\n * @deprecated You should not rely on the transaction, but just use `startSpan()` APIs instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveTransaction(maybeHub?: Hub): T | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const hub = maybeHub || getCurrentHub();\n // eslint-disable-next-line deprecation/deprecation\n const scope = hub.getScope();\n // eslint-disable-next-line deprecation/deprecation\n return scope.getTransaction() as T | undefined;\n}\n\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n\n/**\n * The `extractTraceparentData` function and `TRACEPARENT_REGEXP` constant used\n * to be declared in this file. It was later moved into `@sentry/utils` as part of a\n * move to remove `@sentry/tracing` dependencies from `@sentry/node` (`extractTraceparentData`\n * is the only tracing function used by `@sentry/node`).\n *\n * These exports are kept here for backwards compatability's sake.\n *\n * See https://github.com/getsentry/sentry-javascript/issues/4642 for more details.\n *\n * @deprecated Import this function from `@sentry/utils` instead\n */\nexport const extractTraceparentData = _extractTraceparentData;\n","import type { Span } from '@sentry/types';\n\n/**\n * Returns the root span of a given span.\n *\n * As long as we use `Transaction`s internally, the returned root span\n * will be a `Transaction` but be aware that this might change in the future.\n *\n * If the given span has no root span or transaction, `undefined` is returned.\n */\nexport function getRootSpan(span: Span): Span | undefined {\n // TODO (v8): Remove this check and just return span\n // eslint-disable-next-line deprecation/deprecation\n return span.transaction;\n}\n","import type { Options } from '@sentry/types';\n\nimport { getClient } from '../exports';\n\n// Treeshakable guard to remove all code related to tracing\ndeclare const __SENTRY_TRACING__: boolean | undefined;\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nexport function hasTracingEnabled(\n maybeOptions?: Pick | undefined,\n): boolean {\n if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n return false;\n }\n\n const client = getClient();\n const options = maybeOptions || (client && client.getOptions());\n return !!options && (options.enableTracing || 'tracesSampleRate' in options || 'tracesSampler' in options);\n}\n","import type { Span, SpanJSON, SpanTimeInput, TraceContext } from '@sentry/types';\nimport { dropUndefinedKeys, generateSentryTraceHeader, timestampInSeconds } from '@sentry/utils';\nimport type { Span as SpanClass } from '../tracing/span';\n\n// These are aligned with OpenTelemetry trace flags\nexport const TRACE_FLAG_NONE = 0x0;\nexport const TRACE_FLAG_SAMPLED = 0x1;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n */\nexport function spanToTraceContext(span: Span): TraceContext {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, tags, origin } = spanToJSON(span);\n\n return dropUndefinedKeys({\n data,\n op,\n parent_span_id,\n span_id,\n status,\n tags,\n trace_id,\n origin,\n });\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nexport function spanToTraceHeader(span: Span): string {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a span time input intp a timestamp in seconds.\n */\nexport function spanTimeInputToSeconds(input: SpanTimeInput | undefined): number {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n * Note that all fields returned here are optional and need to be guarded against.\n *\n * Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n * This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n * And `spanToJSON` needs the Span class from `span.ts` to check here.\n * TODO v8: When we remove the deprecated stuff from `span.ts`, we can remove the circular dependency again.\n */\nexport function spanToJSON(span: Span): Partial {\n if (spanIsSpanClass(span)) {\n return span.getSpanJSON();\n }\n\n // Fallback: We also check for `.toJSON()` here...\n // eslint-disable-next-line deprecation/deprecation\n if (typeof span.toJSON === 'function') {\n // eslint-disable-next-line deprecation/deprecation\n return span.toJSON();\n }\n\n return {};\n}\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSpanClass(span: Span): span is SpanClass {\n return typeof (span as SpanClass).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nexport function spanIsSampled(span: Span): boolean {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n // eslint-disable-next-line no-bitwise\n return Boolean(traceFlags & TRACE_FLAG_SAMPLED);\n}\n","// https://github.com/alangpierce/sucrase/tree/265887868966917f3b924ce38dfad01fbab1329f\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2012-2018 various contributors (see AUTHORS)\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n/**\n * Polyfill for the nullish coalescing operator (`??`).\n *\n * Note that the RHS is wrapped in a function so that if it's a computed value, that evaluation won't happen unless the\n * LHS evaluates to a nullish value, to mimic the operator's short-circuiting behavior.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n *\n * @param lhs The value of the expression to the left of the `??`\n * @param rhsFn A function returning the value of the expression to the right of the `??`\n * @returns The LHS value, unless it's `null` or `undefined`, in which case, the RHS value\n */\nexport function _nullishCoalesce(lhs: unknown, rhsFn: () => unknown): unknown {\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n return lhs != null ? lhs : rhsFn();\n}\n\n// Sucrase version:\n// function _nullishCoalesce(lhs, rhsFn) {\n// if (lhs != null) {\n// return lhs;\n// } else {\n// return rhsFn();\n// }\n// }\n","import type {\n CaptureContext,\n Client,\n ClientOptions,\n Event,\n EventHint,\n Scope as ScopeInterface,\n ScopeContext,\n StackFrame,\n StackParser,\n} from '@sentry/types';\nimport { GLOBAL_OBJ, addExceptionMechanism, dateTimestampInSeconds, normalize, truncate, uuid4 } from '@sentry/utils';\n\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getGlobalEventProcessors, notifyEventProcessors } from '../eventProcessors';\nimport { Scope, getGlobalScope } from '../scope';\nimport { applyScopeDataToEvent, mergeScopeData } from './applyScopeDataToEvent';\nimport { spanToJSON } from './spanUtils';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\nexport type ExclusiveEventHintOrCaptureContext =\n | (CaptureContext & Partial<{ [key in keyof EventHint]: never }>)\n | (EventHint & Partial<{ [key in keyof ScopeContext]: never }>);\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * Note: This also triggers callbacks for `addGlobalEventProcessor`, but not `beforeSend`.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nexport function prepareEvent(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n scope?: Scope,\n client?: Client,\n isolationScope?: Scope,\n): PromiseLike {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = options;\n const prepared: Event = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n const finalScope = getFinalScope(scope, hint.captureContext);\n\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n\n const clientEventProcessors = client && client.getEventProcessors ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n // Merge scope data together\n const data = getGlobalScope().getScopeData();\n\n if (isolationScope) {\n const isolationData = isolationScope.getScopeData();\n mergeScopeData(data, isolationData);\n }\n\n if (finalScope) {\n const finalScopeData = finalScope.getScopeData();\n mergeScopeData(data, finalScopeData);\n }\n\n const attachments = [...(hint.attachments || []), ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n applyScopeDataToEvent(prepared, data);\n\n // TODO (v8): Update this order to be: Global > Client > Scope\n const eventProcessors = [\n ...clientEventProcessors,\n // eslint-disable-next-line deprecation/deprecation\n ...getGlobalEventProcessors(),\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors,\n ];\n\n const result = notifyEventProcessors(eventProcessors, prepared, hint);\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event: Event, options: ClientOptions): void {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : DEFAULT_ENVIRONMENT;\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\nconst debugIdStackParserCache = new WeakMap>();\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nexport function applyDebugIds(event: Event, stackParser: StackParser): void {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (!debugIdMap) {\n return;\n }\n\n let debugIdStackFramesCache: Map;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = Object.keys(debugIdMap).reduce>((acc, debugIdStackTrace) => {\n let parsedStack: StackFrame[];\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n if (stackFrame.filename) {\n acc[stackFrame.filename] = debugIdMap[debugIdStackTrace];\n break;\n }\n }\n return acc;\n }, {});\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event!.exception!.values!.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace!.frames!.forEach(frame => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nexport function applyDebugMeta(event: Event): void {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap: Record = {};\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values!.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace!.frames!.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.keys(filenameDebugIdMap).forEach(filename => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id: filenameDebugIdMap[filename],\n });\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event: Event, integrationNames: string[]): void {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized: Event = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n const data = spanToJSON(span).data;\n\n if (data) {\n // This is a bit weird, as we generally have `Span` instances here, but to be safe we do not assume so\n // eslint-disable-next-line deprecation/deprecation\n span.data = normalize(data, depth, maxBreadth);\n }\n\n return span;\n });\n }\n\n return normalized;\n}\n\nfunction getFinalScope(scope: Scope | undefined, captureContext: CaptureContext | undefined): Scope | undefined {\n if (!captureContext) {\n return scope;\n }\n\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nexport function parseEventHintOrCaptureContext(\n hint: ExclusiveEventHintOrCaptureContext | undefined,\n): EventHint | undefined {\n if (!hint) {\n return undefined;\n }\n\n // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint,\n };\n }\n\n return hint;\n}\n\nfunction hintIsScopeOrFunction(\n hint: CaptureContext | EventHint,\n): hint is ScopeInterface | ((scope: ScopeInterface) => ScopeInterface) {\n return hint instanceof Scope || typeof hint === 'function';\n}\n\ntype ScopeContextProperty = keyof ScopeContext;\nconst captureContextKeys: readonly ScopeContextProperty[] = [\n 'user',\n 'level',\n 'extra',\n 'contexts',\n 'tags',\n 'fingerprint',\n 'requestSession',\n 'propagationContext',\n] as const;\n\nfunction hintIsScopeContext(hint: Partial | EventHint): hint is Partial {\n return Object.keys(hint).some(key => captureContextKeys.includes(key as ScopeContextProperty));\n}\n","import type { Client, DsnComponents, Hub } from '@sentry/types';\n\n/**\n * Checks whether given url points to Sentry server\n * @param url url to verify\n *\n * TODO(v8): Remove Hub fallback type\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function isSentryRequestUrl(url: string, hubOrClient: Hub | Client | undefined): boolean {\n const client =\n hubOrClient && isHub(hubOrClient)\n ? // eslint-disable-next-line deprecation/deprecation\n hubOrClient.getClient()\n : hubOrClient;\n const dsn = client && client.getDsn();\n const tunnel = client && client.getOptions().tunnel;\n\n return checkDsn(url, dsn) || checkTunnel(url, tunnel);\n}\n\nfunction checkTunnel(url: string, tunnel: string | undefined): boolean {\n if (!tunnel) {\n return false;\n }\n\n return removeTrailingSlash(url) === removeTrailingSlash(tunnel);\n}\n\nfunction checkDsn(url: string, dsn: DsnComponents | undefined): boolean {\n return dsn ? url.includes(dsn.host) : false;\n}\n\nfunction removeTrailingSlash(str: string): string {\n return str[str.length - 1] === '/' ? str.slice(0, -1) : str;\n}\n\n// eslint-disable-next-line deprecation/deprecation\nfunction isHub(hubOrClient: Hub | Client | undefined): hubOrClient is Hub {\n // eslint-disable-next-line deprecation/deprecation\n return (hubOrClient as Hub).getClient !== undefined;\n}\n","/* eslint-disable max-lines */\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n ClientOptions,\n DataCategory,\n DsnComponents,\n DynamicSamplingContext,\n Envelope,\n ErrorEvent,\n Event,\n EventDropReason,\n EventHint,\n EventProcessor,\n FeedbackEvent,\n Integration,\n IntegrationClass,\n MetricBucketItem,\n MetricsAggregator,\n Outcome,\n ParameterizedString,\n SdkMetadata,\n Session,\n SessionAggregates,\n Severity,\n SeverityLevel,\n StartSpanOptions,\n Transaction,\n TransactionEvent,\n Transport,\n TransportMakeRequestResponse,\n} from '@sentry/types';\nimport {\n SentryError,\n SyncPromise,\n addItemToEnvelope,\n checkOrSetAlreadyCaught,\n createAttachmentEnvelopeItem,\n isParameterizedString,\n isPlainObject,\n isPrimitive,\n isThenable,\n logger,\n makeDsn,\n rejectedSyncPromise,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api';\nimport { DEBUG_BUILD } from './debug-build';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope';\nimport { getClient } from './exports';\nimport { getIsolationScope } from './hub';\nimport type { IntegrationIndex } from './integration';\nimport { afterSetupIntegrations } from './integration';\nimport { setupIntegration, setupIntegrations } from './integration';\nimport { createMetricEnvelope } from './metrics/envelope';\nimport type { Scope } from './scope';\nimport { updateSession } from './session';\nimport { getDynamicSamplingContextFromClient } from './tracing/dynamicSamplingContext';\nimport { prepareEvent } from './utils/prepareEvent';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient implements Client {\n /**\n * A reference to a metrics aggregator\n *\n * @experimental Note this is alpha API. It may experience breaking changes in the future.\n */\n public metricsAggregator?: MetricsAggregator;\n\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n protected readonly _transport?: Transport;\n\n /** Array of set up integrations. */\n protected _integrations: IntegrationIndex;\n\n /** Indicates whether this client's integrations have been set up. */\n protected _integrationsInitialized: boolean;\n\n /** Number of calls being processed */\n protected _numProcessing: number;\n\n protected _eventProcessors: EventProcessor[];\n\n /** Holds flushable */\n private _outcomes: { [key: string]: number };\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n private _hooks: Record;\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n protected constructor(options: O) {\n this._options = options;\n this._integrations = {};\n this._integrationsInitialized = false;\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && logger.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(\n message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n level?: Severity | SeverityLevel,\n hint?: EventHint,\n scope?: Scope,\n ): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const eventMessage = isParameterizedString(message) ? message : String(message);\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(eventMessage, level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope: Scope | undefined = sdkProcessingMetadata.capturedSpanScope;\n\n this._process(\n this._captureEvent(event, hint, capturedSpanScope || scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!(typeof session.release === 'string')) {\n DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @see SdkMetadata in @sentry/types\n *\n * @return The metadata of the SDK\n */\n public getSdkMetadata(): SdkMetadata | undefined {\n return this._options._metadata;\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport | undefined {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike {\n const transport = this._transport;\n if (transport) {\n if (this.metricsAggregator) {\n this.metricsAggregator.flush();\n }\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n if (this.metricsAggregator) {\n this.metricsAggregator.close();\n }\n return result;\n });\n }\n\n /** Get all installed event processors. */\n public getEventProcessors(): EventProcessor[] {\n return this._eventProcessors;\n }\n\n /** @inheritDoc */\n public addEventProcessor(eventProcessor: EventProcessor): void {\n this._eventProcessors.push(eventProcessor);\n }\n\n /**\n * This is an internal function to setup all integrations that should run on the client.\n * @deprecated Use `client.init()` instead.\n */\n public setupIntegrations(forceInitialize?: boolean): void {\n if ((forceInitialize && !this._integrationsInitialized) || (this._isEnabled() && !this._integrationsInitialized)) {\n this._setupIntegrations();\n }\n }\n\n /** @inheritdoc */\n public init(): void {\n if (this._isEnabled()) {\n this._setupIntegrations();\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n * @deprecated Use `getIntegrationByName()` instead.\n */\n public getIntegrationById(integrationId: string): Integration | undefined {\n return this.getIntegrationByName(integrationId);\n }\n\n /**\n * Gets an installed integration by its name.\n *\n * @returns The installed integration or `undefined` if no integration with that `name` was installed.\n */\n public getIntegrationByName(integrationName: string): T | undefined {\n return this._integrations[integrationName] as T | undefined;\n }\n\n /**\n * Returns the client's instance of the given integration class, it any.\n * @deprecated Use `getIntegrationByName()` instead.\n */\n public getIntegration(integration: IntegrationClass): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n DEBUG_BUILD && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public addIntegration(integration: Integration): void {\n const isAlreadyInstalled = this._integrations[integration.name];\n\n // This hook takes care of only installing if not already installed\n setupIntegration(this, integration, this._integrations);\n // Here we need to check manually to make sure to not run this multiple times\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event, hint: EventHint = {}): void {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n const promise = this._sendEnvelope(env);\n if (promise) {\n promise.then(sendResponse => this.emit('afterSendEvent', event, sendResponse), null);\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session | SessionAggregates): void {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(env);\n }\n\n /**\n * @inheritDoc\n */\n public recordDroppedEvent(reason: EventDropReason, category: DataCategory, eventOrCount?: Event | number): void {\n if (this._options.sendClientReports) {\n // TODO v9: We do not need the `event` passed as third argument anymore, and can possibly remove this overload\n // If event is passed as third argument, we assume this is a count of 1\n const count = typeof eventOrCount === 'number' ? eventOrCount : 1;\n\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n DEBUG_BUILD && logger.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : ''}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n\n /**\n * @inheritDoc\n */\n public captureAggregateMetrics(metricBucketItems: Array): void {\n DEBUG_BUILD && logger.log(`Flushing aggregated metrics, number of metrics: ${metricBucketItems.length}`);\n const metricsEnvelope = createMetricEnvelope(\n metricBucketItems,\n this._dsn,\n this._options._metadata,\n this._options.tunnel,\n );\n\n // _sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._sendEnvelope(metricsEnvelope);\n }\n\n // Keep on() & emit() signatures in sync with types' client.ts interface\n /* eslint-disable @typescript-eslint/unified-signatures */\n\n /** @inheritdoc */\n public on(hook: 'startTransaction', callback: (transaction: Transaction) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'finishTransaction', callback: (transaction: Transaction) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeEnvelope', callback: (envelope: Envelope) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeSendEvent', callback: (event: Event, hint?: EventHint) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'preprocessEvent', callback: (event: Event, hint?: EventHint) => void): void;\n\n /** @inheritdoc */\n public on(\n hook: 'afterSendEvent',\n callback: (event: Event, sendResponse: TransportMakeRequestResponse | void) => void,\n ): void;\n\n /** @inheritdoc */\n public on(hook: 'beforeAddBreadcrumb', callback: (breadcrumb: Breadcrumb, hint?: BreadcrumbHint) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'createDsc', callback: (dsc: DynamicSamplingContext) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'otelSpanEnd', callback: (otelSpan: unknown, mutableOptions: { drop: boolean }) => void): void;\n\n /** @inheritdoc */\n public on(\n hook: 'beforeSendFeedback',\n callback: (feedback: FeedbackEvent, options?: { includeReplay: boolean }) => void,\n ): void;\n\n /** @inheritdoc */\n public on(hook: 'startPageLoadSpan', callback: (options: StartSpanOptions) => void): void;\n\n /** @inheritdoc */\n public on(hook: 'startNavigationSpan', callback: (options: StartSpanOptions) => void): void;\n\n /** @inheritdoc */\n public on(hook: string, callback: unknown): void {\n if (!this._hooks[hook]) {\n this._hooks[hook] = [];\n }\n\n // @ts-expect-error We assue the types are correct\n this._hooks[hook].push(callback);\n }\n\n /** @inheritdoc */\n public emit(hook: 'startTransaction', transaction: Transaction): void;\n\n /** @inheritdoc */\n public emit(hook: 'finishTransaction', transaction: Transaction): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeEnvelope', envelope: Envelope): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeSendEvent', event: Event, hint?: EventHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'preprocessEvent', event: Event, hint?: EventHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'afterSendEvent', event: Event, sendResponse: TransportMakeRequestResponse | void): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeAddBreadcrumb', breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void;\n\n /** @inheritdoc */\n public emit(hook: 'createDsc', dsc: DynamicSamplingContext): void;\n\n /** @inheritdoc */\n public emit(hook: 'otelSpanEnd', otelSpan: unknown, mutableOptions: { drop: boolean }): void;\n\n /** @inheritdoc */\n public emit(hook: 'beforeSendFeedback', feedback: FeedbackEvent, options?: { includeReplay: boolean }): void;\n\n /** @inheritdoc */\n public emit(hook: 'startPageLoadSpan', options: StartSpanOptions): void;\n\n /** @inheritdoc */\n public emit(hook: 'startNavigationSpan', options: StartSpanOptions): void;\n\n /** @inheritdoc */\n public emit(hook: string, ...rest: unknown[]): void {\n if (this._hooks[hook]) {\n this._hooks[hook].forEach(callback => callback(...rest));\n }\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Setup integrations for this client. */\n protected _setupIntegrations(): void {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n\n // TODO v8: We don't need this flag anymore\n this._integrationsInitialized = true;\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected _isClientDoneProcessing(timeout?: number): PromiseLike {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(\n event: Event,\n hint: EventHint,\n scope?: Scope,\n isolationScope = getIsolationScope(),\n ): PromiseLike {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations.length > 0) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n return prepareEvent(options, event, hint, scope, this, isolationScope).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n const propagationContext = {\n ...isolationScope.getPropagationContext(),\n ...(scope ? scope.getPropagationContext() : undefined),\n };\n\n const trace = evt.contexts && evt.contexts.trace;\n if (!trace && propagationContext) {\n const { traceId: trace_id, spanId, parentSpanId, dsc } = propagationContext;\n evt.contexts = {\n trace: {\n trace_id,\n span_id: spanId,\n parent_span_id: parentSpanId,\n },\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = dsc ? dsc : getDynamicSamplingContextFromClient(trace_id, this, scope);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n }\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint: EventHint = {}, scope?: Scope): PromiseLike {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (DEBUG_BUILD) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason as SentryError;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint: EventHint, scope?: Scope): PromiseLike {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (isError && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n const dataCategory: DataCategory = eventType === 'replay_event' ? 'replay' : eventType;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanIsolationScope: Scope | undefined = sdkProcessingMetadata.capturedSpanIsolationScope;\n\n return this._prepareEvent(event, hint, scope, capturedSpanIsolationScope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory, event);\n if (isTransaction) {\n const spans = event.spans || [];\n // the transaction itself counts as one span, plus all the child spans that are added\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent('before_send', 'span', spanCount);\n }\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n if (isTransaction) {\n const spanCountBefore =\n (processedEvent.sdkProcessingMetadata && processedEvent.sdkProcessingMetadata.spanCountBeforeProcessing) ||\n 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent('before_send', 'span', droppedSpanCount);\n }\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process(promise: PromiseLike): void {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n protected _sendEnvelope(envelope: Envelope): PromiseLike | void {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n return this._transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n } else {\n DEBUG_BUILD && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n protected _clearOutcomes(): Outcome[] {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') as [EventDropReason, DataCategory];\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public abstract eventFromException(_exception: any, _hint?: EventHint): PromiseLike;\n\n /**\n * @inheritDoc\n */\n public abstract eventFromMessage(\n _message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n _level?: Severity | SeverityLevel,\n _hint?: EventHint,\n ): PromiseLike;\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult: PromiseLike | Event | null,\n beforeSendLabel: string,\n): PromiseLike | Event | null {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n): PromiseLike | Event | null {\n const { beforeSend, beforeSendTransaction } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event) && beforeSendTransaction) {\n if (event.spans) {\n // We store the # of spans before processing in SDK metadata,\n // so we can compare it afterwards to determine how many spans were dropped\n const spanCountBefore = event.spans.length;\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore,\n };\n }\n return beforeSendTransaction(event, hint);\n }\n\n return event;\n}\n\nfunction isErrorEvent(event: Event): event is ErrorEvent {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event: Event): event is TransactionEvent {\n return event.type === 'transaction';\n}\n\n/**\n * Add an event processor to the current client.\n * This event processor will run for all events processed by this client.\n */\nexport function addEventProcessor(callback: EventProcessor): void {\n const client = getClient();\n\n if (!client || !client.addEventProcessor) {\n return;\n }\n\n client.addEventProcessor(callback);\n}\n","import { GLOBAL_OBJ } from '@sentry/utils';\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 replay packages should `@sentry/browser` import\n// from `@sentry/replay` in the future\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nexport const REPLAY_SESSION_KEY = 'sentryReplaySession';\nexport const REPLAY_EVENT_NAME = 'replay_event';\nexport const RECORDING_EVENT_NAME = 'replay_recording';\nexport const UNABLE_TO_SEND_REPLAY = 'Unable to send Replay';\n\n// The idle limit for a session after which recording is paused.\nexport const SESSION_IDLE_PAUSE_DURATION = 300_000; // 5 minutes in ms\n\n// The idle limit for a session after which the session expires.\nexport const SESSION_IDLE_EXPIRE_DURATION = 900_000; // 15 minutes in ms\n\n/** Default flush delays */\nexport const DEFAULT_FLUSH_MIN_DELAY = 5_000;\n// XXX: Temp fix for our debounce logic where `maxWait` would never occur if it\n// was the same as `wait`\nexport const DEFAULT_FLUSH_MAX_DELAY = 5_500;\n\n/* How long to wait for error checkouts */\nexport const BUFFER_CHECKOUT_TIME = 60_000;\n\nexport const RETRY_BASE_INTERVAL = 5000;\nexport const RETRY_MAX_COUNT = 3;\n\n/* The max (uncompressed) size in bytes of a network body. Any body larger than this will be truncated. */\nexport const NETWORK_BODY_MAX_SIZE = 150_000;\n\n/* The max size of a single console arg that is captured. Any arg larger than this will be truncated. */\nexport const CONSOLE_ARG_MAX_SIZE = 5_000;\n\n/* Min. time to wait before we consider something a slow click. */\nexport const SLOW_CLICK_THRESHOLD = 3_000;\n/* For scroll actions after a click, we only look for a very short time period to detect programmatic scrolling. */\nexport const SLOW_CLICK_SCROLL_TIMEOUT = 300;\n\n/** When encountering a total segment size exceeding this size, stop the replay (as we cannot properly ingest it). */\nexport const REPLAY_MAX_EVENT_BUFFER_SIZE = 20_000_000; // ~20MB\n\n/** Replays must be min. 5s long before we send them. */\nexport const MIN_REPLAY_DURATION = 4_999;\n/* The max. allowed value that the minReplayDuration can be set to. */\nexport const MIN_REPLAY_DURATION_LIMIT = 15_000;\n\n/** The max. length of a replay. */\nexport const MAX_REPLAY_DURATION = 3_600_000; // 60 minutes in ms;\n\n/** Default attributes to be ignored when `maskAllText` is enabled */\nexport const DEFAULT_IGNORED_ATTRIBUTES = ['title', 'placeholder'];\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n?.host;\r\n return Boolean(host?.shadowRoot === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n if (!n)\r\n return -1;\r\n const id = this.getMeta(n)?.id;\r\n return id ?? -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction shouldMaskInput({ maskInputOptions, tagName, type, }) {\r\n if (tagName === 'OPTION') {\r\n tagName = 'SELECT';\r\n }\r\n return Boolean(maskInputOptions[tagName.toLowerCase()] ||\r\n (type && maskInputOptions[type]) ||\r\n type === 'password' ||\r\n (tagName === 'INPUT' && !type && maskInputOptions['text']));\r\n}\r\nfunction maskInputValue({ isMasked, element, value, maskInputFn, }) {\r\n let text = value || '';\r\n if (!isMasked) {\r\n return text;\r\n }\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n return '*'.repeat(text.length);\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nfunction toUpperCase(str) {\r\n return str.toUpperCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isNodeMetaEqual(a, b) {\r\n if (!a || !b || a.type !== b.type)\r\n return false;\r\n if (a.type === NodeType.Document)\r\n return a.compatMode === b.compatMode;\r\n else if (a.type === NodeType.DocumentType)\r\n return (a.name === b.name &&\r\n a.publicId === b.publicId &&\r\n a.systemId === b.systemId);\r\n else if (a.type === NodeType.Comment ||\r\n a.type === NodeType.Text ||\r\n a.type === NodeType.CDATA)\r\n return a.textContent === b.textContent;\r\n else if (a.type === NodeType.Element)\r\n return (a.tagName === b.tagName &&\r\n JSON.stringify(a.attributes) ===\r\n JSON.stringify(b.attributes) &&\r\n a.isSVG === b.isSVG &&\r\n a.needBlock === b.needBlock);\r\n return false;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction getInputValue(el, tagName, type) {\r\n if (tagName === 'INPUT' && (type === 'radio' || type === 'checkbox')) {\r\n return el.getAttribute('value') || '';\r\n }\r\n return el.value;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n if (typeof maskAttributeFn === 'function') {\r\n return maskAttributeFn(name, value, element);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\r\n try {\r\n if (unblockSelector && element.matches(unblockSelector)) {\r\n return false;\r\n }\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction elementClassMatchesRegex(el, regex) {\r\n for (let eIndex = el.classList.length; eIndex--;) {\r\n const className = el.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\r\n if (!node)\r\n return -1;\r\n if (node.nodeType !== node.ELEMENT_NODE)\r\n return -1;\r\n if (distance > limit)\r\n return -1;\r\n if (matchPredicate(node))\r\n return distance;\r\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\r\n}\r\nfunction createMatchPredicate(className, selector) {\r\n return (node) => {\r\n const el = node;\r\n if (el === null)\r\n return false;\r\n try {\r\n if (className) {\r\n if (typeof className === 'string') {\r\n if (el.matches(`.${className}`))\r\n return true;\r\n }\r\n else if (elementClassMatchesRegex(el, className)) {\r\n return true;\r\n }\r\n }\r\n if (selector && el.matches(selector))\r\n return true;\r\n return false;\r\n }\r\n catch {\r\n return false;\r\n }\r\n };\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (el.tagName === 'INPUT') {\r\n const autocomplete = el.getAttribute('autocomplete');\r\n const disallowedAutocompleteValues = [\r\n 'current-password',\r\n 'new-password',\r\n 'cc-number',\r\n 'cc-exp',\r\n 'cc-exp-month',\r\n 'cc-exp-year',\r\n 'cc-csc',\r\n ];\r\n if (disallowedAutocompleteValues.includes(autocomplete)) {\r\n return true;\r\n }\r\n }\r\n let maskDistance = -1;\r\n let unmaskDistance = -1;\r\n if (maskAllText) {\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector));\r\n if (unmaskDistance < 0) {\r\n return true;\r\n }\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector), unmaskDistance >= 0 ? unmaskDistance : Infinity);\r\n }\r\n else {\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector));\r\n if (maskDistance < 0) {\r\n return false;\r\n }\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector), maskDistance >= 0 ? maskDistance : Infinity);\r\n }\r\n return maskDistance >= 0\r\n ? unmaskDistance >= 0\r\n ? maskDistance <= unmaskDistance\r\n : true\r\n : unmaskDistance >= 0\r\n ? false\r\n : !!maskAllText;\r\n }\r\n catch (e) {\r\n }\r\n return !!maskAllText;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskAttributeFn, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n inlineStylesheet,\r\n maskAttributeFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskTextFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n const { maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, maskTextFn, maskInputOptions, maskInputFn, rootId, } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n const isTextarea = parentTagName === 'TEXTAREA' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if (n.parentNode.sheet?.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n const forceMask = needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText);\r\n if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent, n.parentElement)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\r\n textContent = maskInputFn\r\n ? maskInputFn(textContent, n.parentNode)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (parentTagName === 'OPTION' && textContent) {\r\n const isInputMasked = shouldMaskInput({\r\n type: null,\r\n tagName: parentTagName,\r\n maskInputOptions,\r\n });\r\n textContent = maskInputValue({\r\n isMasked: needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked),\r\n element: n,\r\n value: textContent,\r\n maskInputFn,\r\n });\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, unblockSelector, inlineStylesheet, maskInputOptions = {}, maskAttributeFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector, unblockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (attr.name && !ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value, n, maskAttributeFn);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' ||\r\n tagName === 'textarea' ||\r\n tagName === 'select' ||\r\n tagName === 'option') {\r\n const el = n;\r\n const type = getInputType(el);\r\n const value = getInputValue(el, toUpperCase(tagName), type);\r\n const checked = el.checked;\r\n if (type !== 'submit' && type !== 'button' && value) {\r\n const forceMask = needMaskingText(el, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, shouldMaskInput({\r\n type,\r\n tagName: toUpperCase(tagName),\r\n maskInputOptions,\r\n }));\r\n attributes.value = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value,\r\n maskInputFn,\r\n });\r\n }\r\n if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n attributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n attributes.rr_mediaCurrentTime = n.currentTime;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n sn.attributes.href.endsWith('.js')))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskAttributeFn, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n serializedNode.attributes.rel === 'stylesheet') {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, unblockSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskAttributeFn, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n }\r\n : maskAllInputs === false\r\n ? {}\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\r\n\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options = {}) {\r\n let lineno = 1;\r\n let column = 1;\r\n function updatePosition(str) {\r\n const lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n const i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n const start = { line: lineno, column };\r\n return (node) => {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n class Position {\r\n constructor(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column };\r\n this.source = options.source;\r\n }\r\n }\r\n Position.prototype.content = css;\r\n const errorsList = [];\r\n function error(msg) {\r\n const err = new Error(`${options.source || ''}:${lineno}:${column}: ${msg}`);\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n const rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList,\r\n },\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n let node;\r\n const rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n const m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n const str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules = []) {\r\n let c;\r\n while ((c = comment())) {\r\n if (c) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n const pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n let i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n const str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str,\r\n });\r\n }\r\n function selector() {\r\n whitespace();\r\n while (css[0] == '}') {\r\n error('extra closing bracket');\r\n css = css.slice(1);\r\n whitespace();\r\n }\r\n const m = match(/^((\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^{])+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const cleanedInput = m[0]\r\n .trim()\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (m) => {\r\n return m.replace(/,/g, '\\u200C');\r\n });\r\n return customSplit(cleanedInput).map((s) => s.replace(/\\u200C/g, ',').trim());\r\n }\r\n function customSplit(input) {\r\n const result = [];\r\n let currentSegment = '';\r\n let depthParentheses = 0;\r\n let depthBrackets = 0;\r\n let currentStringChar = null;\r\n for (const char of input) {\r\n const hasStringEscape = currentSegment.endsWith('\\\\');\r\n if (currentStringChar) {\r\n if (currentStringChar === char && !hasStringEscape) {\r\n currentStringChar = null;\r\n }\r\n }\r\n else if (char === '(') {\r\n depthParentheses++;\r\n }\r\n else if (char === ')') {\r\n depthParentheses--;\r\n }\r\n else if (char === '[') {\r\n depthBrackets++;\r\n }\r\n else if (char === ']') {\r\n depthBrackets--;\r\n }\r\n else if ('\\'\"'.includes(char)) {\r\n currentStringChar = char;\r\n }\r\n if (char === ',' && depthParentheses === 0 && depthBrackets === 0) {\r\n result.push(currentSegment);\r\n currentSegment = '';\r\n }\r\n else {\r\n currentSegment += char;\r\n }\r\n }\r\n if (currentSegment) {\r\n result.push(currentSegment);\r\n }\r\n return result;\r\n }\r\n function declaration() {\r\n const pos = position();\r\n const propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n const prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(`property missing ':'`);\r\n }\r\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n const ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : '',\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n const decls = [];\r\n if (!open()) {\r\n return error(`missing '{'`);\r\n }\r\n comments(decls);\r\n let decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(`missing '}'`);\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n let m;\r\n const vals = [];\r\n const pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations(),\r\n });\r\n }\r\n function atkeyframes() {\r\n const pos = position();\r\n let m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n const name = m[1];\r\n if (!open()) {\r\n return error(`@keyframes missing '{'`);\r\n }\r\n let frame;\r\n let frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@keyframes missing '}'`);\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name,\r\n vendor,\r\n keyframes: frames,\r\n });\r\n }\r\n function atsupports() {\r\n const pos = position();\r\n const m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const supports = trim(m[1]);\r\n if (!open()) {\r\n return error(`@supports missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@supports missing '}'`);\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports,\r\n rules: style,\r\n });\r\n }\r\n function athost() {\r\n const pos = position();\r\n const m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@host missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@host missing '}'`);\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style,\r\n });\r\n }\r\n function atmedia() {\r\n const pos = position();\r\n const m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const media = trim(m[1]);\r\n if (!open()) {\r\n return error(`@media missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@media missing '}'`);\r\n }\r\n return pos({\r\n type: 'media',\r\n media,\r\n rules: style,\r\n });\r\n }\r\n function atcustommedia() {\r\n const pos = position();\r\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2]),\r\n });\r\n }\r\n function atpage() {\r\n const pos = position();\r\n const m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n const sel = selector() || [];\r\n if (!open()) {\r\n return error(`@page missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@page missing '}'`);\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls,\r\n });\r\n }\r\n function atdocument() {\r\n const pos = position();\r\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = trim(m[1]);\r\n const doc = trim(m[2]);\r\n if (!open()) {\r\n return error(`@document missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@document missing '}'`);\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor,\r\n rules: style,\r\n });\r\n }\r\n function atfontface() {\r\n const pos = position();\r\n const m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@font-face missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@font-face missing '}'`);\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls,\r\n });\r\n }\r\n const atimport = _compileAtrule('import');\r\n const atcharset = _compileAtrule('charset');\r\n const atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n const re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return () => {\r\n const pos = position();\r\n const m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n const ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n const pos = position();\r\n const sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations(),\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n const isNode = obj && typeof obj.type === 'string';\r\n const childParent = isNode ? obj : parent;\r\n for (const k of Object.keys(obj)) {\r\n const value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null,\r\n });\r\n }\r\n return obj;\r\n}\n\nconst tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction getTagName(n) {\r\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nconst HOVER_SELECTOR = /([^\\\\]):hover/;\r\nconst HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n const cachedStyle = cache?.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n if (cssText.length >= 1000000) {\r\n return cssText;\r\n }\r\n const ast = parse(cssText, {\r\n silent: true,\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n const selectors = [];\r\n ast.stylesheet.rules.forEach((rule) => {\r\n if ('selectors' in rule) {\r\n (rule.selectors || []).forEach((selector) => {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n });\r\n if (selectors.length === 0) {\r\n return cssText;\r\n }\r\n const selectorMatcher = new RegExp(selectors\r\n .filter((selector, index) => selectors.indexOf(selector) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((selector) => {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n const result = cssText.replace(selectorMatcher, (selector) => {\r\n const newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return `${selector}, ${newSelector}`;\r\n });\r\n cache?.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n const stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass,\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n const { doc, hackCss, cache } = options;\r\n switch (n.type) {\r\n case NodeType.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType.Element: {\r\n const tagName = getTagName(n);\r\n let node;\r\n if (n.isSVG) {\r\n node = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n if (n.isCustom &&\r\n doc.defaultView?.customElements &&\r\n !doc.defaultView.customElements.get(n.tagName))\r\n doc.defaultView.customElements.define(n.tagName, class extends doc.defaultView.HTMLElement {\r\n });\r\n node = doc.createElement(tagName);\r\n }\r\n const specialAttributes = {};\r\n for (const name in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\r\n continue;\r\n }\r\n let value = n.attributes[name];\r\n if (tagName === 'option' &&\r\n name === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === null) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name.startsWith('rr_')) {\r\n specialAttributes[name] = value;\r\n continue;\r\n }\r\n const isTextarea = tagName === 'textarea' && name === 'value';\r\n const isRemoteOrDynamicCss = tagName === 'style' && name === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = addHoverClass(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n const child = doc.createTextNode(value);\r\n for (const c of Array.from(node.childNodes)) {\r\n if (c.nodeType === node.TEXT_NODE) {\r\n node.removeChild(c);\r\n }\r\n }\r\n node.appendChild(child);\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name === 'xlink:href') {\r\n node.setAttributeNS('http://www.w3.org/1999/xlink', name, value.toString());\r\n }\r\n else if (name === 'onload' ||\r\n name === 'onclick' ||\r\n name.substring(0, 7) === 'onmouse') {\r\n node.setAttribute('_' + name, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name === 'content') {\r\n node.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n (n.attributes.rel === 'preload' ||\r\n n.attributes.rel === 'modulepreload') &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node.setAttribute(name, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n for (const name in specialAttributes) {\r\n const value = specialAttributes[name];\r\n if (tagName === 'canvas' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = node.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = value.toString();\r\n if (node.RRNodeType)\r\n node.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name === 'rr_dataURL') {\r\n const image = node;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name === 'rr_width') {\r\n node.style.setProperty('width', value.toString());\r\n }\r\n else if (name === 'rr_height') {\r\n node.style.setProperty('height', value.toString());\r\n }\r\n else if (name === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node.currentTime = value;\r\n }\r\n else if (name === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node\r\n .play()\r\n .catch((e) => console.warn('media playback error', e));\r\n break;\r\n case 'paused':\r\n node.pause();\r\n break;\r\n }\r\n }\r\n }\r\n if (n.isShadowHost) {\r\n if (!node.shadowRoot) {\r\n node.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node.shadowRoot.firstChild) {\r\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node;\r\n }\r\n case NodeType.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? addHoverClass(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n const { doc, mirror, skipChild = false, hackCss = true, afterAppend, cache, } = options;\r\n if (mirror.has(n.id)) {\r\n const nodeInMirror = mirror.getNode(n.id);\r\n const meta = mirror.getMeta(nodeInMirror);\r\n if (isNodeMetaEqual(meta, n))\r\n return mirror.getNode(n.id);\r\n }\r\n let node = buildNode(n, { doc, hackCss, cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType.DocumentType) {\r\n if (n.childNodes[0].type === NodeType.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('');\r\n }\r\n else {\r\n doc.write('');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\r\n !skipChild) {\r\n for (const childN of n.childNodes) {\r\n const childNode = buildNodeWithSN(childN, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else if (n.type === NodeType.Document &&\r\n childN.type == NodeType.Element) {\r\n const htmlElement = childNode;\r\n let body = null;\r\n htmlElement.childNodes.forEach((child) => {\r\n if (child.nodeName === 'BODY')\r\n body = child;\r\n });\r\n if (body) {\r\n htmlElement.removeChild(body);\r\n node.appendChild(childNode);\r\n htmlElement.appendChild(body);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (const id of mirror.getIds()) {\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n const n = mirror.getMeta(node);\r\n if (n?.type !== NodeType.Element) {\r\n return;\r\n }\r\n const el = node;\r\n for (const name in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) &&\r\n name.startsWith('rr_'))) {\r\n continue;\r\n }\r\n const value = n.attributes[name];\r\n if (name === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n const { doc, onVisit, hackCss = true, afterAppend, cache, mirror = new Mirror(), } = options;\r\n const node = buildNodeWithSN(n, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n visit(mirror, (visitedNode) => {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, addHoverClass, buildNodeWithSN, createCache, createMatchPredicate, createMirror, distanceToMatch, escapeImportStatement, fixSafariColons, genId, getInputType, getInputValue, ignoreAttribute, is2DCanvasBlank, isCSSImportRule, isCSSStyleRule, isElement, isNativeShadowDom, isNodeMetaEqual, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, shouldMaskInput, snapshot, stringifyRule, stringifyStylesheet, toLowerCase, toUpperCase, transformAttribute };\n","import { distanceToMatch, IGNORED_NODE, isShadowRoot, createMatchPredicate } from '../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nfunction on(type, fn, target = document) {\r\n const options = { capture: true, passive: true };\r\n target.addEventListener(type, fn, options);\r\n return () => target.removeEventListener(type, fn, options);\r\n}\r\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\r\n '\\r\\n' +\r\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\r\n '\\r\\n' +\r\n 'or you can use record.mirror to access the mirror instance during recording.';\r\nlet _mirror = {\r\n map: {},\r\n getId() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return -1;\r\n },\r\n getNode() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return null;\r\n },\r\n removeNodeFromMap() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n has() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return false;\r\n },\r\n reset() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n};\r\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\r\n _mirror = new Proxy(_mirror, {\r\n get(target, prop, receiver) {\r\n if (prop === 'map') {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n }\r\n return Reflect.get(target, prop, receiver);\r\n },\r\n });\r\n}\r\nfunction throttle(func, wait, options = {}) {\r\n let timeout = null;\r\n let previous = 0;\r\n return function (...args) {\r\n const now = Date.now();\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n const remaining = wait - (now - previous);\r\n const context = this;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n func.apply(context, args);\r\n }\r\n else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(() => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n func.apply(context, args);\r\n }, remaining);\r\n }\r\n };\r\n}\r\nfunction hookSetter(target, key, d, isRevoked, win = window) {\r\n const original = win.Object.getOwnPropertyDescriptor(target, key);\r\n win.Object.defineProperty(target, key, isRevoked\r\n ? d\r\n : {\r\n set(value) {\r\n setTimeout(() => {\r\n d.set.call(this, value);\r\n }, 0);\r\n if (original && original.set) {\r\n original.set.call(this, value);\r\n }\r\n },\r\n });\r\n return () => hookSetter(target, key, original || {}, true);\r\n}\r\nfunction patch(source, name, replacement) {\r\n try {\r\n if (!(name in source)) {\r\n return () => {\r\n };\r\n }\r\n const original = source[name];\r\n const wrapped = replacement(original);\r\n if (typeof wrapped === 'function') {\r\n wrapped.prototype = wrapped.prototype || {};\r\n Object.defineProperties(wrapped, {\r\n __rrweb_original__: {\r\n enumerable: false,\r\n value: original,\r\n },\r\n });\r\n }\r\n source[name] = wrapped;\r\n return () => {\r\n source[name] = original;\r\n };\r\n }\r\n catch {\r\n return () => {\r\n };\r\n }\r\n}\r\nlet nowTimestamp = Date.now;\r\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\r\n nowTimestamp = () => new Date().getTime();\r\n}\r\nfunction getWindowScroll(win) {\r\n const doc = win.document;\r\n return {\r\n left: doc.scrollingElement\r\n ? doc.scrollingElement.scrollLeft\r\n : win.pageXOffset !== undefined\r\n ? win.pageXOffset\r\n : doc?.documentElement.scrollLeft ||\r\n doc?.body?.parentElement?.scrollLeft ||\r\n doc?.body?.scrollLeft ||\r\n 0,\r\n top: doc.scrollingElement\r\n ? doc.scrollingElement.scrollTop\r\n : win.pageYOffset !== undefined\r\n ? win.pageYOffset\r\n : doc?.documentElement.scrollTop ||\r\n doc?.body?.parentElement?.scrollTop ||\r\n doc?.body?.scrollTop ||\r\n 0,\r\n };\r\n}\r\nfunction getWindowHeight() {\r\n return (window.innerHeight ||\r\n (document.documentElement && document.documentElement.clientHeight) ||\r\n (document.body && document.body.clientHeight));\r\n}\r\nfunction getWindowWidth() {\r\n return (window.innerWidth ||\r\n (document.documentElement && document.documentElement.clientWidth) ||\r\n (document.body && document.body.clientWidth));\r\n}\r\nfunction closestElementOfNode(node) {\r\n if (!node) {\r\n return null;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n return el;\r\n}\r\nfunction isBlocked(node, blockClass, blockSelector, unblockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = closestElementOfNode(node);\r\n if (!el) {\r\n return false;\r\n }\r\n const blockedPredicate = createMatchPredicate(blockClass, blockSelector);\r\n if (!checkAncestors) {\r\n const isUnblocked = unblockSelector && el.matches(unblockSelector);\r\n return blockedPredicate(el) && !isUnblocked;\r\n }\r\n const blockDistance = distanceToMatch(el, blockedPredicate);\r\n let unblockDistance = -1;\r\n if (blockDistance < 0) {\r\n return false;\r\n }\r\n if (unblockSelector) {\r\n unblockDistance = distanceToMatch(el, createMatchPredicate(null, unblockSelector));\r\n }\r\n if (blockDistance > -1 && unblockDistance < 0) {\r\n return true;\r\n }\r\n return blockDistance < unblockDistance;\r\n}\r\nfunction isSerialized(n, mirror) {\r\n return mirror.getId(n) !== -1;\r\n}\r\nfunction isIgnored(n, mirror) {\r\n return mirror.getId(n) === IGNORED_NODE;\r\n}\r\nfunction isAncestorRemoved(target, mirror) {\r\n if (isShadowRoot(target)) {\r\n return false;\r\n }\r\n const id = mirror.getId(target);\r\n if (!mirror.has(id)) {\r\n return true;\r\n }\r\n if (target.parentNode &&\r\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n if (!target.parentNode) {\r\n return true;\r\n }\r\n return isAncestorRemoved(target.parentNode, mirror);\r\n}\r\nfunction legacy_isTouchEvent(event) {\r\n return Boolean(event.changedTouches);\r\n}\r\nfunction polyfill(win = window) {\r\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\r\n win.NodeList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\r\n win.DOMTokenList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if (!Node.prototype.contains) {\r\n Node.prototype.contains = (...args) => {\r\n let node = args[0];\r\n if (!(0 in args)) {\r\n throw new TypeError('1 argument is required');\r\n }\r\n do {\r\n if (this === node) {\r\n return true;\r\n }\r\n } while ((node = node && node.parentNode));\r\n return false;\r\n };\r\n }\r\n}\r\nfunction queueToResolveTrees(queue) {\r\n const queueNodeMap = {};\r\n const putIntoMap = (m, parent) => {\r\n const nodeInTree = {\r\n value: m,\r\n parent,\r\n children: [],\r\n };\r\n queueNodeMap[m.node.id] = nodeInTree;\r\n return nodeInTree;\r\n };\r\n const queueNodeTrees = [];\r\n for (const mutation of queue) {\r\n const { nextId, parentId } = mutation;\r\n if (nextId && nextId in queueNodeMap) {\r\n const nextInTree = queueNodeMap[nextId];\r\n if (nextInTree.parent) {\r\n const idx = nextInTree.parent.children.indexOf(nextInTree);\r\n nextInTree.parent.children.splice(idx, 0, putIntoMap(mutation, nextInTree.parent));\r\n }\r\n else {\r\n const idx = queueNodeTrees.indexOf(nextInTree);\r\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\r\n }\r\n continue;\r\n }\r\n if (parentId in queueNodeMap) {\r\n const parentInTree = queueNodeMap[parentId];\r\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\r\n continue;\r\n }\r\n queueNodeTrees.push(putIntoMap(mutation, null));\r\n }\r\n return queueNodeTrees;\r\n}\r\nfunction iterateResolveTree(tree, cb) {\r\n cb(tree.value);\r\n for (let i = tree.children.length - 1; i >= 0; i--) {\r\n iterateResolveTree(tree.children[i], cb);\r\n }\r\n}\r\nfunction isSerializedIframe(n, mirror) {\r\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\r\n}\r\nfunction isSerializedStylesheet(n, mirror) {\r\n return Boolean(n.nodeName === 'LINK' &&\r\n n.nodeType === n.ELEMENT_NODE &&\r\n n.getAttribute &&\r\n n.getAttribute('rel') === 'stylesheet' &&\r\n mirror.getMeta(n));\r\n}\r\nfunction getBaseDimension(node, rootIframe) {\r\n const frameElement = node.ownerDocument?.defaultView?.frameElement;\r\n if (!frameElement || frameElement === rootIframe) {\r\n return {\r\n x: 0,\r\n y: 0,\r\n relativeScale: 1,\r\n absoluteScale: 1,\r\n };\r\n }\r\n const frameDimension = frameElement.getBoundingClientRect();\r\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\r\n const relativeScale = frameDimension.height / frameElement.clientHeight;\r\n return {\r\n x: frameDimension.x * frameBaseDimension.relativeScale +\r\n frameBaseDimension.x,\r\n y: frameDimension.y * frameBaseDimension.relativeScale +\r\n frameBaseDimension.y,\r\n relativeScale,\r\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\r\n };\r\n}\r\nfunction hasShadowRoot(n) {\r\n return Boolean(n?.shadowRoot);\r\n}\r\nfunction getNestedRule(rules, position) {\r\n const rule = rules[position[0]];\r\n if (position.length === 1) {\r\n return rule;\r\n }\r\n else {\r\n return getNestedRule(rule.cssRules[position[1]].cssRules, position.slice(2));\r\n }\r\n}\r\nfunction getPositionsAndIndex(nestedIndex) {\r\n const positions = [...nestedIndex];\r\n const index = positions.pop();\r\n return { positions, index };\r\n}\r\nfunction uniqueTextMutations(mutations) {\r\n const idSet = new Set();\r\n const uniqueMutations = [];\r\n for (let i = mutations.length; i--;) {\r\n const mutation = mutations[i];\r\n if (!idSet.has(mutation.id)) {\r\n uniqueMutations.push(mutation);\r\n idSet.add(mutation.id);\r\n }\r\n }\r\n return uniqueMutations;\r\n}\r\nclass StyleSheetMirror {\r\n constructor() {\r\n this.id = 1;\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n }\r\n getId(stylesheet) {\r\n return this.styleIDMap.get(stylesheet) ?? -1;\r\n }\r\n has(stylesheet) {\r\n return this.styleIDMap.has(stylesheet);\r\n }\r\n add(stylesheet, id) {\r\n if (this.has(stylesheet))\r\n return this.getId(stylesheet);\r\n let newId;\r\n if (id === undefined) {\r\n newId = this.id++;\r\n }\r\n else\r\n newId = id;\r\n this.styleIDMap.set(stylesheet, newId);\r\n this.idStyleMap.set(newId, stylesheet);\r\n return newId;\r\n }\r\n getStyle(id) {\r\n return this.idStyleMap.get(id) || null;\r\n }\r\n reset() {\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n this.id = 1;\r\n }\r\n generateId() {\r\n return this.id++;\r\n }\r\n}\r\nfunction getShadowHost(n) {\r\n let shadowHost = null;\r\n if (n.getRootNode?.()?.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n return shadowHost;\r\n}\r\nfunction getRootShadowHost(n) {\r\n let rootShadowHost = n;\r\n let shadowHost;\r\n while ((shadowHost = getShadowHost(rootShadowHost)))\r\n rootShadowHost = shadowHost;\r\n return rootShadowHost;\r\n}\r\nfunction shadowHostInDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n const shadowHost = getRootShadowHost(n);\r\n return doc.contains(shadowHost);\r\n}\r\nfunction inDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n return doc.contains(n) || shadowHostInDom(n);\r\n}\r\nconst cachedImplementations = {};\r\nfunction getImplementation(name) {\r\n const cached = cachedImplementations[name];\r\n if (cached) {\r\n return cached;\r\n }\r\n const document = window.document;\r\n let impl = window[name];\r\n if (document && typeof document.createElement === 'function') {\r\n try {\r\n const sandbox = document.createElement('iframe');\r\n sandbox.hidden = true;\r\n document.head.appendChild(sandbox);\r\n const contentWindow = sandbox.contentWindow;\r\n if (contentWindow && contentWindow[name]) {\r\n impl =\r\n contentWindow[name];\r\n }\r\n document.head.removeChild(sandbox);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return (cachedImplementations[name] = impl.bind(window));\r\n}\r\nfunction onRequestAnimationFrame(...rest) {\r\n return getImplementation('requestAnimationFrame')(...rest);\r\n}\r\nfunction setTimeout(...rest) {\r\n return getImplementation('setTimeout')(...rest);\r\n}\r\nfunction clearTimeout(...rest) {\r\n return getImplementation('clearTimeout')(...rest);\r\n}\n\nexport { StyleSheetMirror, _mirror, clearTimeout, closestElementOfNode, getBaseDimension, getNestedRule, getPositionsAndIndex, getRootShadowHost, getShadowHost, getWindowHeight, getWindowScroll, getWindowWidth, hasShadowRoot, hookSetter, inDom, isAncestorRemoved, isBlocked, isIgnored, isSerialized, isSerializedIframe, isSerializedStylesheet, iterateResolveTree, legacy_isTouchEvent, nowTimestamp, on, onRequestAnimationFrame, patch, polyfill, queueToResolveTrees, setTimeout, shadowHostInDom, throttle, uniqueTextMutations };\n","var EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\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 || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\n\nexport { CanvasContext, EventType, IncrementalSource, MouseInteractions, PointerTypes, ReplayerEvents };\n","import { isShadowRoot, isNativeShadowDom, getInputType, getInputValue, shouldMaskInput, needMaskingText, maskInputValue, ignoreAttribute, transformAttribute, toLowerCase, IGNORED_NODE, serializeNodeWithId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { isIgnored, isBlocked, isSerialized, isAncestorRemoved, closestElementOfNode, hasShadowRoot, inDom, getShadowHost, isSerializedIframe, isSerializedStylesheet } from '../utils.js';\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n this.tail = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = current?.next || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n if (node.next === null) {\r\n this.tail = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n else {\r\n this.tail = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n else {\r\n this.tail = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addedIds = new Set();\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n if (!n.parentNode || !inDom(n)) {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(getShadowHost(n))\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskAllText: this.maskAllText,\r\n unblockSelector: this.unblockSelector,\r\n maskTextClass: this.maskTextClass,\r\n unmaskTextClass: this.unmaskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n unmaskTextSelector: this.unmaskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskAttributeFn: this.maskAttributeFn,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n addedIds.add(sn.id);\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of this.movedSet) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of this.addedSet) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n let tailNode = addList.tail;\r\n while (tailNode) {\r\n const _node = tailNode;\r\n tailNode = tailNode.previous;\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => ({\r\n id: this.mirror.getId(text.node),\r\n value: text.value,\r\n }))\r\n .filter((text) => !addedIds.has(text.id))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => {\r\n const { attributes } = attribute;\r\n if (typeof attributes.style === 'string') {\r\n const diffAsStr = JSON.stringify(attribute.styleDiff);\r\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\r\n if (diffAsStr.length < attributes.style.length) {\r\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\r\n attributes.style.split('var(').length) {\r\n attributes.style = attribute.styleDiff;\r\n }\r\n }\r\n }\r\n return {\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attributes,\r\n };\r\n })\r\n .filter((attribute) => !addedIds.has(attribute.id))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, this.maskAllText) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value, closestElementOfNode(m.target))\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let attributeName = m.attributeName;\r\n let value = m.target.getAttribute(attributeName);\r\n if (attributeName === 'value') {\r\n const type = getInputType(target);\r\n const tagName = target.tagName;\r\n value = getInputValue(target, tagName, type);\r\n const isInputMasked = shouldMaskInput({\r\n maskInputOptions: this.maskInputOptions,\r\n tagName,\r\n type,\r\n });\r\n const forceMask = needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, isInputMasked);\r\n value = maskInputValue({\r\n isMasked: forceMask,\r\n element: target,\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributeMap.get(m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(m.target, item);\r\n }\r\n if (attributeName === 'type' &&\r\n target.tagName === 'INPUT' &&\r\n (m.oldValue || '').toLowerCase() === 'password') {\r\n target.setAttribute('data-rr-is-password', 'true');\r\n }\r\n if (!ignoreAttribute(target.tagName, attributeName)) {\r\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value, target, this.maskAttributeFn);\r\n if (attributeName === 'style') {\r\n if (!this.unattachedDoc) {\r\n try {\r\n this.unattachedDoc =\r\n document.implementation.createHTMLDocument();\r\n }\r\n catch (e) {\r\n this.unattachedDoc = this.doc;\r\n }\r\n }\r\n const old = this.unattachedDoc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n item.styleDiff[pname] = newValue;\r\n }\r\n else {\r\n item.styleDiff[pname] = [newValue, newPriority];\r\n }\r\n }\r\n else {\r\n item._unchangedStyles[pname] = [newValue, newPriority];\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n item.styleDiff[pname] = false;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, true)) {\r\n return;\r\n }\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.processedNodeManager.inOtherBuffer(n, this))\r\n return;\r\n if (this.addedSet.has(n) || this.movedSet.has(n))\r\n return;\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, this.unblockSelector, false)) {\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n if (hasShadowRoot(n)) {\r\n n.shadowRoot.childNodes.forEach((childN) => {\r\n this.processedNodeManager.add(childN, this);\r\n this.genAdds(childN, n);\r\n });\r\n }\r\n }\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'unblockSelector',\r\n 'maskAllText',\r\n 'maskTextClass',\r\n 'unmaskTextClass',\r\n 'maskTextSelector',\r\n 'unmaskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskAttributeFn',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n 'processedNodeManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nexport { MutationBuffer as default };\n","let errorHandler;\r\nfunction registerErrorHandler(handler) {\r\n errorHandler = handler;\r\n}\r\nfunction unregisterErrorHandler() {\r\n errorHandler = undefined;\r\n}\r\nconst callbackWrapper = (cb) => {\r\n if (!errorHandler) {\r\n return cb;\r\n }\r\n const rrwebWrapped = ((...rest) => {\r\n try {\r\n return cb(...rest);\r\n }\r\n catch (error) {\r\n if (errorHandler && errorHandler(error) === true) {\r\n return () => {\r\n };\r\n }\r\n throw error;\r\n }\r\n });\r\n return rrwebWrapped;\r\n};\n\nexport { callbackWrapper, registerErrorHandler, unregisterErrorHandler };\n","import { toLowerCase, toUpperCase, getInputType, getInputValue, shouldMaskInput, needMaskingText, maskInputValue } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { on, throttle, isBlocked, getWindowScroll, hookSetter, patch, setTimeout, legacy_isTouchEvent, nowTimestamp, getWindowHeight, getWindowWidth } from '../utils.js';\nimport { MouseInteractions, IncrementalSource, PointerTypes } from '../../../types/dist/rrweb-types.js';\nimport MutationBuffer from './mutation.js';\nimport { callbackWrapper } from './error-handler.js';\n\nconst mutationBuffers = [];\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n }\r\n catch {\r\n }\r\n return event && event.target;\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = window?.Zone?.__symbol__?.('MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(callbackWrapper((mutations) => {\r\n if (options.onMutation && options.onMutation(mutations) === false) {\r\n return;\r\n }\r\n mutationBuffer.processMutations.bind(mutationBuffer)(mutations);\r\n }));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle(callbackWrapper((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }), callbackThreshold);\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = legacy_isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = nowTimestamp();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: nowTimestamp() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource.MouseMove\r\n : IncrementalSource.TouchMove);\r\n }), threshold, {\r\n trailing: false,\r\n }));\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n let currentPointerType = null;\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n let pointerType = null;\r\n let thisEventKey = eventKey;\r\n if ('pointerType' in event) {\r\n switch (event.pointerType) {\r\n case 'mouse':\r\n pointerType = PointerTypes.Mouse;\r\n break;\r\n case 'touch':\r\n pointerType = PointerTypes.Touch;\r\n break;\r\n case 'pen':\r\n pointerType = PointerTypes.Pen;\r\n break;\r\n }\r\n if (pointerType === PointerTypes.Touch) {\r\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\r\n thisEventKey = 'TouchStart';\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\r\n thisEventKey = 'TouchEnd';\r\n }\r\n }\r\n else if (pointerType === PointerTypes.Pen) ;\r\n }\r\n else if (legacy_isTouchEvent(event)) {\r\n pointerType = PointerTypes.Touch;\r\n }\r\n if (pointerType !== null) {\r\n currentPointerType = pointerType;\r\n if ((thisEventKey.startsWith('Touch') &&\r\n pointerType === PointerTypes.Touch) ||\r\n (thisEventKey.startsWith('Mouse') &&\r\n pointerType === PointerTypes.Mouse)) {\r\n pointerType = null;\r\n }\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\r\n pointerType = currentPointerType;\r\n currentPointerType = null;\r\n }\r\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n callbackWrapper(mouseInteractionCb)({\r\n type: MouseInteractions[thisEventKey],\r\n id,\r\n x: clientX,\r\n y: clientY,\r\n ...(pointerType !== null && { pointerType }),\r\n });\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n let eventName = toLowerCase(eventKey);\r\n const handler = getHandler(eventKey);\r\n if (window.PointerEvent) {\r\n switch (MouseInteractions[eventKey]) {\r\n case MouseInteractions.MouseDown:\r\n case MouseInteractions.MouseUp:\r\n eventName = eventName.replace('mouse', 'pointer');\r\n break;\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n return;\r\n }\r\n }\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc && doc.defaultView) {\r\n const scrollLeftTop = getWindowScroll(doc.defaultView);\r\n scrollCb({\r\n id,\r\n x: scrollLeftTop.left,\r\n y: scrollLeftTop.top,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }), sampling.scroll || 100));\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = callbackWrapper(throttle(callbackWrapper(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }), 200));\r\n return on('resize', updateDimension, win);\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, unblockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n const tagName = target && toUpperCase(target.tagName);\r\n if (tagName === 'OPTION')\r\n target = target.parentElement;\r\n if (!target ||\r\n !tagName ||\r\n INPUT_TAGS.indexOf(tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const el = target;\r\n if (el.classList.contains(ignoreClass) ||\r\n (ignoreSelector && el.matches(ignoreSelector))) {\r\n return;\r\n }\r\n const type = getInputType(target);\r\n let text = getInputValue(el, tagName, type);\r\n let isChecked = false;\r\n const isInputMasked = shouldMaskInput({\r\n maskInputOptions,\r\n tagName,\r\n type,\r\n });\r\n const forceMask = needMaskingText(target, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked);\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n text = maskInputValue({\r\n isMasked: forceMask,\r\n element: target,\r\n value: text,\r\n maskInputFn,\r\n });\r\n cbWithDedup(target, userTriggeredOnInput\r\n ? { text, isChecked, userTriggered }\r\n : { text, isChecked });\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n const text = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value: getInputValue(el, tagName, type),\r\n maskInputFn,\r\n });\r\n cbWithDedup(el, userTriggeredOnInput\r\n ? { text, isChecked: !isChecked, userTriggered: false }\r\n : { text, isChecked: !isChecked });\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n callbackWrapper(inputCb)({\r\n ...v,\r\n id,\r\n });\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n callbackWrapper(eventHandler)({\r\n target: this,\r\n isTrusted: false,\r\n });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((hasNestedCSSRule('CSSGroupingRule') &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (hasNestedCSSRule('CSSMediaRule') &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (hasNestedCSSRule('CSSSupportsRule') &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (hasNestedCSSRule('CSSConditionRule') &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\r\n return () => {\r\n };\r\n }\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(thisArg),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(thisArg), index] },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n });\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? host.defaultView?.Document\r\n : host.ownerDocument?.defaultView?.ShadowRoot;\r\n const originalPropertyDescriptor = patchTarget?.prototype\r\n ? Object.getOwnPropertyDescriptor(patchTarget?.prototype, 'adoptedStyleSheets')\r\n : undefined;\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n return originalPropertyDescriptor.get?.call(this);\r\n },\r\n set(sheets) {\r\n const result = originalPropertyDescriptor.set?.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return callbackWrapper(() => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n });\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [property, value, priority] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(thisArg, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentRule?.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [property] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(thisArg, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentRule?.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n });\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, unblockSelector, mirror, sampling, doc, }) {\r\n const handler = callbackWrapper((type) => throttle(callbackWrapper((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate } = target;\r\n mediaInteractionCb({\r\n type,\r\n id: mirror.getId(target),\r\n currentTime,\r\n volume,\r\n muted,\r\n playbackRate,\r\n });\r\n }), sampling.media || 500));\r\n const handlers = [\r\n on('play', handler(0), doc),\r\n on('pause', handler(1), doc),\r\n on('seeked', handler(2), doc),\r\n on('volumechange', handler(3), doc),\r\n on('ratechange', handler(4), doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(callbackWrapper(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }), 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, selectionCb, } = param;\r\n let collapsed = true;\r\n const updateSelection = callbackWrapper(() => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && selection?.isCollapsed))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, unblockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, unblockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n });\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction initCustomElementObserver({ doc, customElementCb, }) {\r\n const win = doc.defaultView;\r\n if (!win || !win.customElements)\r\n return () => { };\r\n const restoreHandler = patch(win.customElements, 'define', function (original) {\r\n return function (name, constructor, options) {\r\n try {\r\n customElementCb({\r\n define: {\r\n name,\r\n },\r\n });\r\n }\r\n catch (e) {\r\n }\r\n return original.apply(this, [name, constructor, options]);\r\n };\r\n });\r\n return restoreHandler;\r\n}\r\nfunction initObservers(o, _hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n const mutationObserver = initMutationObserver(o, o.doc);\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o, {\r\n win: currentWindow,\r\n });\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n const styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n const adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n const styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n const fontObserver = o.collectFonts\r\n ? initFontObserver(o)\r\n : () => {\r\n };\r\n const selectionObserver = initSelectionObserver(o);\r\n const customElementObserver = initCustomElementObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return callbackWrapper(() => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n customElementObserver();\r\n pluginHandlers.forEach((h) => h());\r\n });\r\n}\r\nfunction hasNestedCSSRule(prop) {\r\n return typeof window[prop] !== 'undefined';\r\n}\r\nfunction canMonkeyPatchNestedCSSRule(prop) {\r\n return Boolean(typeof window[prop] !== 'undefined' &&\r\n window[prop].prototype &&\r\n 'insertRule' in window[prop].prototype &&\r\n 'deleteRule' in window[prop].prototype);\r\n}\n\nexport { INPUT_TAGS, initAdoptedStyleSheetObserver, initMutationObserver, initObservers, initScrollObserver, mutationBuffers };\n","class CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nexport { CrossOriginIframeMirror as default };\n","import { genId, NodeType } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport CrossOriginIframeMirror from './cross-origin-iframe-mirror.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/rrweb-types.js';\n\nclass IframeManagerNoop {\r\n constructor() {\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n }\r\n addIframe() {\r\n }\r\n addLoadListener() {\r\n }\r\n attachIframe() {\r\n }\r\n}\r\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n this.loadListener?.(iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n const crossOriginMessageEvent = message;\r\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\r\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\r\n return;\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n switch (e.type) {\r\n case EventType.FullSnapshot: {\r\n this.crossOriginIframeMirror.reset(iframeEl);\r\n this.crossOriginIframeStyleMirror.reset(iframeEl);\r\n this.replaceIdOnNode(e.data.node, iframeEl);\r\n const rootId = e.data.node.id;\r\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\r\n this.patchRootIdOnNode(e.data.node, rootId);\r\n return {\r\n timestamp: e.timestamp,\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: e.data.node,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n },\r\n };\r\n }\r\n case EventType.Meta:\r\n case EventType.Load:\r\n case EventType.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType.Plugin: {\r\n return e;\r\n }\r\n case EventType.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource.Mutation: {\r\n e.data.adds.forEach((n) => {\r\n this.replaceIds(n, iframeEl, [\r\n 'parentId',\r\n 'nextId',\r\n 'previousId',\r\n ]);\r\n this.replaceIdOnNode(n.node, iframeEl);\r\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\r\n rootId && this.patchRootIdOnNode(n.node, rootId);\r\n });\r\n e.data.removes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\r\n });\r\n e.data.attributes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n e.data.texts.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove: {\r\n e.data.positions.forEach((p) => {\r\n this.replaceIds(p, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource.MediaInteraction:\r\n case IncrementalSource.MouseInteraction:\r\n case IncrementalSource.Scroll:\r\n case IncrementalSource.CanvasMutation:\r\n case IncrementalSource.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\r\n return e;\r\n }\r\n case IncrementalSource.Font: {\r\n return e;\r\n }\r\n case IncrementalSource.Selection: {\r\n e.data.ranges.forEach((range) => {\r\n this.replaceIds(range, iframeEl, ['start', 'end']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n e.data.styles?.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n patchRootIdOnNode(node, rootId) {\r\n if (node.type !== NodeType.Document && !node.rootId)\r\n node.rootId = rootId;\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.patchRootIdOnNode(child, rootId);\r\n });\r\n }\r\n }\r\n}\n\nexport { IframeManager, IframeManagerNoop };\n","import { initMutationObserver, initScrollObserver, initAdoptedStyleSheetObserver } from './observer.js';\nimport { setTimeout, patch, inDom } from '../utils.js';\nimport { isNativeShadowDom } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nclass ShadowDomManagerNoop {\r\n init() {\r\n }\r\n addShadowRoot() {\r\n }\r\n observeAttachShadow() {\r\n }\r\n reset() {\r\n }\r\n}\r\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restoreHandlers = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n this.init();\r\n }\r\n init() {\r\n this.reset();\r\n this.patchAttachShadow(Element, document);\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n const observer = initMutationObserver({\r\n ...this.bypassOptions,\r\n doc,\r\n mutationCb: this.mutationCb,\r\n mirror: this.mirror,\r\n shadowDomManager: this,\r\n }, shadowRoot);\r\n this.restoreHandlers.push(() => observer.disconnect());\r\n this.restoreHandlers.push(initScrollObserver({\r\n ...this.bypassOptions,\r\n scrollCb: this.scrollCb,\r\n doc: shadowRoot,\r\n mirror: this.mirror,\r\n }));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot));\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\r\n return;\r\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\r\n }\r\n patchAttachShadow(element, doc) {\r\n const manager = this;\r\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot && inDom(this))\r\n manager.addShadowRoot(this.shadowRoot, doc);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n reset() {\r\n this.restoreHandlers.forEach((handler) => {\r\n try {\r\n handler();\r\n }\r\n catch (e) {\r\n }\r\n });\r\n this.restoreHandlers = [];\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\nexport { ShadowDomManager, ShadowDomManagerNoop };\n","import { onRequestAnimationFrame, isBlocked } from '../../../utils.js';\nimport { CanvasContext } from '../../../../../types/dist/rrweb-types.js';\nimport initCanvas2DMutationObserver from './2d.js';\nimport initCanvasContextObserver from './canvas.js';\nimport initCanvasWebGLMutationObserver from './webgl.js';\nimport { getImageBitmapDataUrlWorkerURL as t } from '../../../../../rrweb-worker/es/rrweb-worker/index.js';\nimport { callbackWrapper, registerErrorHandler } from '../../error-handler.js';\n\nclass CanvasManagerNoop {\r\n reset() {\r\n }\r\n freeze() {\r\n }\r\n unfreeze() {\r\n }\r\n lock() {\r\n }\r\n unlock() {\r\n }\r\n snapshot() {\r\n }\r\n}\r\nclass CanvasManager {\r\n reset() {\r\n this.pendingCanvasMutations.clear();\r\n this.resetObservers && this.resetObservers();\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n }\r\n lock() {\r\n this.locked = true;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n }\r\n constructor(options) {\r\n this.pendingCanvasMutations = new Map();\r\n this.rafStamps = { latestId: 0, invokeId: null };\r\n this.frozen = false;\r\n this.locked = false;\r\n this.processMutation = (target, mutation) => {\r\n const newFrame = this.rafStamps.invokeId &&\r\n this.rafStamps.latestId !== this.rafStamps.invokeId;\r\n if (newFrame || !this.rafStamps.invokeId)\r\n this.rafStamps.invokeId = this.rafStamps.latestId;\r\n if (!this.pendingCanvasMutations.has(target)) {\r\n this.pendingCanvasMutations.set(target, []);\r\n }\r\n this.pendingCanvasMutations.get(target).push(mutation);\r\n };\r\n const { sampling = 'all', win, blockClass, blockSelector, unblockSelector, maxCanvasSize, recordCanvas, dataURLOptions, errorHandler, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n this.options = options;\r\n if (errorHandler) {\r\n registerErrorHandler(errorHandler);\r\n }\r\n if (options.enableManualSnapshot) {\r\n return;\r\n }\r\n callbackWrapper(() => {\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, {\r\n dataURLOptions,\r\n });\r\n })();\r\n }\r\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, true);\r\n const rafId = this.takeSnapshot(false, fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, options.dataURLOptions);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, false);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n snapshot(canvasElement) {\r\n const { options } = this;\r\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);\r\n this.resetObservers = () => {\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n takeSnapshot(isManualSnapshot, fps, win, blockClass, blockSelector, unblockSelector, maxCanvasSize, dataURLOptions, canvasElement) {\r\n const snapshotInProgressMap = new Map();\r\n const worker = new Worker(t());\r\n worker.onmessage = (e) => {\r\n const data = e.data;\r\n const { id } = data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in data))\r\n return;\r\n const { base64, type, width, height } = data;\r\n this.mutationCb({\r\n id,\r\n type: CanvasContext['2D'],\r\n commands: [\r\n {\r\n property: 'clearRect',\r\n args: [0, 0, width, height],\r\n },\r\n {\r\n property: 'drawImage',\r\n args: [\r\n {\r\n rr_type: 'ImageBitmap',\r\n args: [\r\n {\r\n rr_type: 'Blob',\r\n data: [{ rr_type: 'ArrayBuffer', base64 }],\r\n type,\r\n },\r\n ],\r\n },\r\n 0,\r\n 0,\r\n width,\r\n height,\r\n ],\r\n },\r\n ],\r\n });\r\n };\r\n const timeBetweenSnapshots = 1000 / fps;\r\n let lastSnapshotTime = 0;\r\n let rafId;\r\n const getCanvas = (canvasElement) => {\r\n if (canvasElement) {\r\n return [canvasElement];\r\n }\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, unblockSelector, true)) {\r\n matchedCanvas.push(canvas);\r\n }\r\n });\r\n return matchedCanvas;\r\n };\r\n const takeCanvasSnapshots = (timestamp) => {\r\n if (lastSnapshotTime &&\r\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\r\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas(canvasElement).forEach((canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n if (!canvas.width || !canvas.height)\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (!isManualSnapshot &&\r\n ['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (context?.getContextAttributes()?.preserveDrawingBuffer === false) {\r\n context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n createImageBitmap(canvas)\r\n .then((bitmap) => {\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions,\r\n maxCanvasSize,\r\n }, [bitmap]);\r\n })\r\n .catch((error) => {\r\n callbackWrapper(() => {\r\n throw error;\r\n })();\r\n });\r\n });\r\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\r\n return rafId;\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n onRequestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n onRequestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n onRequestAnimationFrame(setLatestRAFTimestamp);\r\n }\r\n flushPendingCanvasMutations() {\r\n this.pendingCanvasMutations.forEach((values, canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n this.flushPendingCanvasMutationFor(canvas, id);\r\n });\r\n onRequestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n flushPendingCanvasMutationFor(canvas, id) {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\r\n if (!valuesWithType || id === -1)\r\n return;\r\n const values = valuesWithType.map((value) => {\r\n const { type, ...rest } = value;\r\n return rest;\r\n });\r\n const { type } = valuesWithType[0];\r\n this.mutationCb({ id, type, commands: values });\r\n this.pendingCanvasMutations.delete(canvas);\r\n }\r\n}\n\nexport { CanvasManager, CanvasManagerNoop };\n","import { stringifyRule } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { StyleSheetMirror } from '../utils.js';\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n styles.push({\r\n styleId,\r\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\r\n rule: stringifyRule(r),\r\n index,\r\n })),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nexport { StylesheetManager };\n","import { onRequestAnimationFrame } from '../utils.js';\n\nclass ProcessedNodeManager {\r\n constructor() {\r\n this.nodeMap = new WeakMap();\r\n this.loop = true;\r\n this.periodicallyClear();\r\n }\r\n periodicallyClear() {\r\n onRequestAnimationFrame(() => {\r\n this.clear();\r\n if (this.loop)\r\n this.periodicallyClear();\r\n });\r\n }\r\n inOtherBuffer(node, thisBuffer) {\r\n const buffers = this.nodeMap.get(node);\r\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\r\n }\r\n add(node, buffer) {\r\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\r\n }\r\n clear() {\r\n this.nodeMap = new WeakMap();\r\n }\r\n destroy() {\r\n this.loop = false;\r\n }\r\n}\n\nexport { ProcessedNodeManager as default };\n","import { createMirror, snapshot } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { initObservers, mutationBuffers } from './observer.js';\nimport { polyfill, on, nowTimestamp, getWindowWidth, getWindowHeight, getWindowScroll, isSerializedIframe, isSerializedStylesheet, hasShadowRoot } from '../utils.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/rrweb-types.js';\nimport { IframeManagerNoop, IframeManager } from './iframe-manager.js';\nimport { ShadowDomManagerNoop, ShadowDomManager } from './shadow-dom-manager.js';\nimport { CanvasManagerNoop } from './observers/canvas/canvas-manager.js';\nexport { CanvasManager } from './observers/canvas/canvas-manager.js';\nimport { StylesheetManager } from './stylesheet-manager.js';\nimport ProcessedNodeManager from './processed-node-manager.js';\nimport { callbackWrapper, unregisterErrorHandler, registerErrorHandler } from './error-handler.js';\n\nlet wrappedEmit;\r\nlet _wrappedEmit;\r\nlet _takeFullSnapshot;\r\nconst mirror = createMirror();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, unblockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskAttributeFn, maskInputFn, maskTextFn, maxCanvasSize = null, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\r\n ? options.recordAfter\r\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, onMutation, getCanvasManager, } = options;\r\n registerErrorHandler(errorHandler);\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n if (window.parent.document) {\r\n passEmitsToParent = false;\r\n }\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n radio: true,\r\n checkbox: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : {};\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn &&\r\n !passEmitsToParent) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (r, isCheckout) => {\r\n const e = r;\r\n e.timestamp = nowTimestamp();\r\n if (mutationBuffers[0]?.isFrozen() &&\r\n e.type !== EventType.FullSnapshot &&\r\n !(e.type === EventType.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit?.(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n origin: window.location.origin,\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n lastFullSnapshotEvent &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n _wrappedEmit = wrappedEmit;\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n ...m,\r\n },\r\n });\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Scroll,\r\n ...p,\r\n },\r\n });\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.CanvasMutation,\r\n ...p,\r\n },\r\n });\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.AdoptedStyleSheet,\r\n ...a,\r\n },\r\n });\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = typeof __RRWEB_EXCLUDE_IFRAME__ === 'boolean' && __RRWEB_EXCLUDE_IFRAME__\r\n ? new IframeManagerNoop()\r\n : new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n const processedNodeManager = new ProcessedNodeManager();\r\n const canvasManager = _getCanvasManager(getCanvasManager, {\r\n mirror,\r\n win: window,\r\n mutationCb: (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.CanvasMutation,\r\n ...p,\r\n },\r\n }),\r\n recordCanvas,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maxCanvasSize,\r\n sampling: sampling['canvas'],\r\n dataURLOptions,\r\n errorHandler,\r\n });\r\n const shadowDomManager = typeof __RRWEB_EXCLUDE_SHADOW_DOM__ === 'boolean' &&\r\n __RRWEB_EXCLUDE_SHADOW_DOM__\r\n ? new ShadowDomManagerNoop()\r\n : new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n onMutation,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n processedNodeManager,\r\n },\r\n mirror,\r\n });\r\n const takeFullSnapshot = (isCheckout = false) => {\r\n wrappedEmit({\r\n type: EventType.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }, isCheckout);\r\n stylesheetManager.reset();\r\n shadowDomManager.init();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskAttributeFn,\r\n maskInputFn,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit({\r\n type: EventType.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: getWindowScroll(window),\r\n },\r\n });\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n _takeFullSnapshot = takeFullSnapshot;\r\n try {\r\n const handlers = [];\r\n const observe = (doc) => {\r\n return callbackWrapper(initObservers)({\r\n onMutation,\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n }),\r\n mouseInteractionCb: (d) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.MouseInteraction,\r\n ...d,\r\n },\r\n }),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.ViewportResize,\r\n ...d,\r\n },\r\n }),\r\n inputCb: (v) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Input,\r\n ...v,\r\n },\r\n }),\r\n mediaInteractionCb: (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.MediaInteraction,\r\n ...p,\r\n },\r\n }),\r\n styleSheetRuleCb: (r) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.StyleSheetRule,\r\n ...r,\r\n },\r\n }),\r\n styleDeclarationCb: (r) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.StyleDeclaration,\r\n ...r,\r\n },\r\n }),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Font,\r\n ...p,\r\n },\r\n }),\r\n selectionCb: (p) => {\r\n wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Selection,\r\n ...p,\r\n },\r\n });\r\n },\r\n customElementCb: (c) => {\r\n wrappedEmit({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.CustomElement,\r\n ...c,\r\n },\r\n });\r\n },\r\n blockClass,\r\n ignoreClass,\r\n ignoreSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskAttributeFn,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n unblockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n processedNodeManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: plugins\r\n ?.filter((p) => p.observer)\r\n ?.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit({\r\n type: EventType.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n }),\r\n })) || [],\r\n }, {});\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n try {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit({\r\n type: EventType.DomContentLoaded,\r\n data: {},\r\n });\r\n if (recordAfter === 'DOMContentLoaded')\r\n init();\r\n }));\r\n handlers.push(on('load', () => {\r\n wrappedEmit({\r\n type: EventType.Load,\r\n data: {},\r\n });\r\n if (recordAfter === 'load')\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n processedNodeManager.destroy();\r\n _takeFullSnapshot = undefined;\r\n unregisterErrorHandler();\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nfunction addCustomEvent(tag, payload) {\r\n if (!_wrappedEmit) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit({\r\n type: EventType.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n });\r\n}\r\nfunction freezePage() {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n}\r\nfunction takeFullSnapshot(isCheckout) {\r\n if (!_takeFullSnapshot) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n _takeFullSnapshot(isCheckout);\r\n}\r\nrecord.mirror = mirror;\r\nrecord.takeFullSnapshot = takeFullSnapshot;\r\nfunction _getCanvasManager(getCanvasManagerFn, options) {\r\n try {\r\n return getCanvasManagerFn\r\n ? getCanvasManagerFn(options)\r\n : new CanvasManagerNoop();\r\n }\r\n catch {\r\n console.warn('Unable to initialize CanvasManager');\r\n return new CanvasManagerNoop();\r\n }\r\n}\n\nexport { addCustomEvent, record as default, freezePage, mirror, takeFullSnapshot };\n","type ClassOption = string | RegExp;\n\n/** Duplicate this from @sentry-internal/rrweb so we can export this as well. */\nexport const ReplayEventTypeDomContentLoaded = 0;\nexport const ReplayEventTypeLoad = 1;\nexport const ReplayEventTypeFullSnapshot = 2;\nexport const ReplayEventTypeIncrementalSnapshot = 3;\nexport const ReplayEventTypeMeta = 4;\nexport const ReplayEventTypeCustom = 5;\nexport const ReplayEventTypePlugin = 6;\n\nexport type ReplayEventType =\n | typeof ReplayEventTypeDomContentLoaded\n | typeof ReplayEventTypeLoad\n | typeof ReplayEventTypeFullSnapshot\n | typeof ReplayEventTypeIncrementalSnapshot\n | typeof ReplayEventTypeMeta\n | typeof ReplayEventTypeCustom\n | typeof ReplayEventTypePlugin;\n\n/**\n * This is a partial copy of rrweb's eventWithTime type which only contains the properties\n * we specifcally need in the SDK.\n */\nexport type ReplayEventWithTime = {\n type: ReplayEventType;\n data: unknown;\n timestamp: number;\n delay?: number;\n};\n\n/**\n * This is a partial copy of rrweb's recording options which only contains the properties\n * we specifically us in the SDK. Users can specify additional properties, hence we add the\n * Record union type.\n */\nexport type RrwebRecordOptions = {\n maskAllText?: boolean;\n maskAllInputs?: boolean;\n blockClass?: ClassOption;\n ignoreClass?: string;\n maskTextClass?: ClassOption;\n maskTextSelector?: string;\n blockSelector?: string;\n maskInputOptions?: Record;\n} & Record;\n\nexport interface CanvasManagerInterface {\n reset(): void;\n freeze(): void;\n unfreeze(): void;\n lock(): void;\n unlock(): void;\n snapshot(): void;\n}\n\nexport interface CanvasManagerOptions {\n recordCanvas: boolean;\n enableManualSnapshot?: boolean;\n blockClass: string | RegExp;\n blockSelector: string | null;\n unblockSelector: string | null;\n sampling?: 'all' | number;\n dataURLOptions: Partial<{\n type: string;\n quality: number;\n }>;\n mutationCb: (p: any) => void;\n win: typeof globalThis & Window;\n mirror: any;\n}\n","/**\n * Converts a timestamp to ms, if it was in s, or keeps it as ms.\n */\nexport function timestampToMs(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp : timestamp * 1000;\n}\n\n/**\n * Converts a timestamp to s, if it was in ms, or keeps it as s.\n */\nexport function timestampToS(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport type { Breadcrumb } from '@sentry/types';\nimport { normalize } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../../types';\n\n/**\n * Add a breadcrumb event to replay.\n */\nexport function addBreadcrumbEvent(replay: ReplayContainer, breadcrumb: Breadcrumb): void {\n if (breadcrumb.category === 'sentry.transaction') {\n return;\n }\n\n if (['ui.click', 'ui.input'].includes(breadcrumb.category as string)) {\n replay.triggerUserActivity();\n } else {\n replay.checkAndHandleExpiredSession();\n }\n\n replay.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n // TODO: We were converting from ms to seconds for breadcrumbs, spans,\n // but maybe we should just keep them as milliseconds\n timestamp: (breadcrumb.timestamp || 0) * 1000,\n data: {\n tag: 'breadcrumb',\n // normalize to max. 10 depth and 1_000 properties per object\n payload: normalize(breadcrumb, 10, 1_000),\n },\n });\n\n // Do not flush after console log messages\n return breadcrumb.category === 'console';\n });\n}\n","import type { INode } from '@sentry-internal/rrweb-snapshot';\n\nconst INTERACTIVE_SELECTOR = 'button,a';\n\n/** Get the closest interactive parent element, or else return the given element. */\nexport function getClosestInteractive(element: Element): Element {\n const closestInteractive = element.closest(INTERACTIVE_SELECTOR);\n return closestInteractive || element;\n}\n\n/**\n * For clicks, we check if the target is inside of a button or link\n * If so, we use this as the target instead\n * This is useful because if you click on the image in ,\n * The target will be the image, not the button, which we don't want here\n */\nexport function getClickTargetNode(event: Event | MouseEvent | Node): Node | INode | null {\n const target = getTargetNode(event);\n\n if (!target || !(target instanceof Element)) {\n return target;\n }\n\n return getClosestInteractive(target);\n}\n\n/** Get the event target node. */\nexport function getTargetNode(event: Node | { target: EventTarget | null }): Node | INode | null {\n if (isEventWithTarget(event)) {\n return event.target as Node | null;\n }\n\n return event;\n}\n\nfunction isEventWithTarget(event: unknown): event is { target: EventTarget | null } {\n return typeof event === 'object' && !!event && 'target' in event;\n}\n","import { fill } from '@sentry/utils';\n\nimport { WINDOW } from '../../constants';\n\ntype WindowOpenHandler = () => void;\n\nlet handlers: undefined | WindowOpenHandler[];\n\n/**\n * Register a handler to be called when `window.open()` is called.\n * Returns a cleanup function.\n */\nexport function onWindowOpen(cb: WindowOpenHandler): () => void {\n // Ensure to only register this once\n if (!handlers) {\n handlers = [];\n monkeyPatchWindowOpen();\n }\n\n handlers.push(cb);\n\n return () => {\n const pos = handlers ? handlers.indexOf(cb) : -1;\n if (pos > -1) {\n (handlers as WindowOpenHandler[]).splice(pos, 1);\n }\n };\n}\n\nfunction monkeyPatchWindowOpen(): void {\n fill(WINDOW, 'open', function (originalWindowOpen: () => void): () => void {\n return function (...args: unknown[]): void {\n if (handlers) {\n try {\n handlers.forEach(handler => handler());\n } catch (e) {\n // ignore errors in here\n }\n }\n\n return originalWindowOpen.apply(WINDOW, args);\n };\n });\n}\n","import { IncrementalSource, MouseInteractions, record } from '@sentry-internal/rrweb';\nimport type { Breadcrumb } from '@sentry/types';\n\nimport { WINDOW } from '../constants';\nimport type {\n RecordingEvent,\n ReplayClickDetector,\n ReplayContainer,\n ReplayMultiClickFrame,\n ReplaySlowClickFrame,\n SlowClickConfig,\n} from '../types';\nimport { ReplayEventTypeIncrementalSnapshot } from '../types';\nimport { timestampToS } from '../util/timestamp';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\nimport { getClosestInteractive } from './util/domUtils';\nimport { onWindowOpen } from './util/onWindowOpen';\n\ntype ClickBreadcrumb = Breadcrumb & {\n timestamp: number;\n};\n\ninterface Click {\n timestamp: number;\n mutationAfter?: number;\n scrollAfter?: number;\n clickBreadcrumb: ClickBreadcrumb;\n clickCount: number;\n node: HTMLElement;\n}\n\ntype IncrementalRecordingEvent = RecordingEvent & {\n type: typeof ReplayEventTypeIncrementalSnapshot;\n data: { source: IncrementalSource };\n};\n\ntype IncrementalMouseInteractionRecordingEvent = IncrementalRecordingEvent & {\n type: typeof ReplayEventTypeIncrementalSnapshot;\n data: { type: MouseInteractions; id: number };\n};\n\n/** Handle a click. */\nexport function handleClick(clickDetector: ReplayClickDetector, clickBreadcrumb: Breadcrumb, node: HTMLElement): void {\n clickDetector.handleClick(clickBreadcrumb, node);\n}\n\n/** A click detector class that can be used to detect slow or rage clicks on elements. */\nexport class ClickDetector implements ReplayClickDetector {\n // protected for testing\n protected _lastMutation: number;\n protected _lastScroll: number;\n\n private _clicks: Click[];\n private _teardown: undefined | (() => void);\n\n private _threshold: number;\n private _scollTimeout: number;\n private _timeout: number;\n private _ignoreSelector: string;\n\n private _replay: ReplayContainer;\n private _checkClickTimeout?: ReturnType;\n private _addBreadcrumbEvent: typeof addBreadcrumbEvent;\n\n public constructor(\n replay: ReplayContainer,\n slowClickConfig: SlowClickConfig,\n // Just for easier testing\n _addBreadcrumbEvent = addBreadcrumbEvent,\n ) {\n this._lastMutation = 0;\n this._lastScroll = 0;\n this._clicks = [];\n\n // We want everything in s, but options are in ms\n this._timeout = slowClickConfig.timeout / 1000;\n this._threshold = slowClickConfig.threshold / 1000;\n this._scollTimeout = slowClickConfig.scrollTimeout / 1000;\n this._replay = replay;\n this._ignoreSelector = slowClickConfig.ignoreSelector;\n this._addBreadcrumbEvent = _addBreadcrumbEvent;\n }\n\n /** Register click detection handlers on mutation or scroll. */\n public addListeners(): void {\n const cleanupWindowOpen = onWindowOpen(() => {\n // Treat window.open as mutation\n this._lastMutation = nowInSeconds();\n });\n\n this._teardown = () => {\n cleanupWindowOpen();\n\n this._clicks = [];\n this._lastMutation = 0;\n this._lastScroll = 0;\n };\n }\n\n /** Clean up listeners. */\n public removeListeners(): void {\n if (this._teardown) {\n this._teardown();\n }\n\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n }\n\n /** @inheritDoc */\n public handleClick(breadcrumb: Breadcrumb, node: HTMLElement): void {\n if (ignoreElement(node, this._ignoreSelector) || !isClickBreadcrumb(breadcrumb)) {\n return;\n }\n\n const newClick: Click = {\n timestamp: timestampToS(breadcrumb.timestamp),\n clickBreadcrumb: breadcrumb,\n // Set this to 0 so we know it originates from the click breadcrumb\n clickCount: 0,\n node,\n };\n\n // If there was a click in the last 1s on the same element, ignore it - only keep a single reference per second\n if (\n this._clicks.some(click => click.node === newClick.node && Math.abs(click.timestamp - newClick.timestamp) < 1)\n ) {\n return;\n }\n\n this._clicks.push(newClick);\n\n // If this is the first new click, set a timeout to check for multi clicks\n if (this._clicks.length === 1) {\n this._scheduleCheckClicks();\n }\n }\n\n /** @inheritDoc */\n public registerMutation(timestamp = Date.now()): void {\n this._lastMutation = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n public registerScroll(timestamp = Date.now()): void {\n this._lastScroll = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n public registerClick(element: HTMLElement): void {\n const node = getClosestInteractive(element);\n this._handleMultiClick(node as HTMLElement);\n }\n\n /** Count multiple clicks on elements. */\n private _handleMultiClick(node: HTMLElement): void {\n this._getClicks(node).forEach(click => {\n click.clickCount++;\n });\n }\n\n /** Get all pending clicks for a given node. */\n private _getClicks(node: HTMLElement): Click[] {\n return this._clicks.filter(click => click.node === node);\n }\n\n /** Check the clicks that happened. */\n private _checkClicks(): void {\n const timedOutClicks: Click[] = [];\n\n const now = nowInSeconds();\n\n this._clicks.forEach(click => {\n if (!click.mutationAfter && this._lastMutation) {\n click.mutationAfter = click.timestamp <= this._lastMutation ? this._lastMutation - click.timestamp : undefined;\n }\n if (!click.scrollAfter && this._lastScroll) {\n click.scrollAfter = click.timestamp <= this._lastScroll ? this._lastScroll - click.timestamp : undefined;\n }\n\n // All of these are in seconds!\n if (click.timestamp + this._timeout <= now) {\n timedOutClicks.push(click);\n }\n });\n\n // Remove \"old\" clicks\n for (const click of timedOutClicks) {\n const pos = this._clicks.indexOf(click);\n\n if (pos > -1) {\n this._generateBreadcrumbs(click);\n this._clicks.splice(pos, 1);\n }\n }\n\n // Trigger new check, unless no clicks left\n if (this._clicks.length) {\n this._scheduleCheckClicks();\n }\n }\n\n /** Generate matching breadcrumb(s) for the click. */\n private _generateBreadcrumbs(click: Click): void {\n const replay = this._replay;\n const hadScroll = click.scrollAfter && click.scrollAfter <= this._scollTimeout;\n const hadMutation = click.mutationAfter && click.mutationAfter <= this._threshold;\n\n const isSlowClick = !hadScroll && !hadMutation;\n const { clickCount, clickBreadcrumb } = click;\n\n // Slow click\n if (isSlowClick) {\n // If `mutationAfter` is set, it means a mutation happened after the threshold, but before the timeout\n // If not, it means we just timed out without scroll & mutation\n const timeAfterClickMs = Math.min(click.mutationAfter || this._timeout, this._timeout) * 1000;\n const endReason = timeAfterClickMs < this._timeout * 1000 ? 'mutation' : 'timeout';\n\n const breadcrumb: ReplaySlowClickFrame = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.slowClickDetected',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n timeAfterClickMs,\n endReason,\n // If clickCount === 0, it means multiClick was not correctly captured here\n // - we still want to send 1 in this case\n clickCount: clickCount || 1,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n return;\n }\n\n // Multi click\n if (clickCount > 1) {\n const breadcrumb: ReplayMultiClickFrame = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.multiClick',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n clickCount,\n metric: true,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n }\n }\n\n /** Schedule to check current clicks. */\n private _scheduleCheckClicks(): void {\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n\n this._checkClickTimeout = setTimeout(() => this._checkClicks(), 1000);\n }\n}\n\nconst SLOW_CLICK_TAGS = ['A', 'BUTTON', 'INPUT'];\n\n/** exported for tests only */\nexport function ignoreElement(node: HTMLElement, ignoreSelector: string): boolean {\n if (!SLOW_CLICK_TAGS.includes(node.tagName)) {\n return true;\n }\n\n // If tag, we only want to consider input[type='submit'] & input[type='button']\n if (node.tagName === 'INPUT' && !['submit', 'button'].includes(node.getAttribute('type') || '')) {\n return true;\n }\n\n // If tag, detect special variants that may not lead to an action\n // If target !== _self, we may open the link somewhere else, which would lead to no action\n // Also, when downloading a file, we may not leave the page, but still not trigger an action\n if (\n node.tagName === 'A' &&\n (node.hasAttribute('download') || (node.hasAttribute('target') && node.getAttribute('target') !== '_self'))\n ) {\n return true;\n }\n\n if (ignoreSelector && node.matches(ignoreSelector)) {\n return true;\n }\n\n return false;\n}\n\nfunction isClickBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is ClickBreadcrumb {\n return !!(breadcrumb.data && typeof breadcrumb.data.nodeId === 'number' && breadcrumb.timestamp);\n}\n\n// This is good enough for us, and is easier to test/mock than `timestampInSeconds`\nfunction nowInSeconds(): number {\n return Date.now() / 1000;\n}\n\n/** Update the click detector based on a recording event of rrweb. */\nexport function updateClickDetectorForRecordingEvent(clickDetector: ReplayClickDetector, event: RecordingEvent): void {\n try {\n // note: We only consider incremental snapshots here\n // This means that any full snapshot is ignored for mutation detection - the reason is that we simply cannot know if a mutation happened here.\n // E.g. think that we are buffering, an error happens and we take a full snapshot because we switched to session mode -\n // in this scenario, we would not know if a dead click happened because of the error, which is a key dead click scenario.\n // Instead, by ignoring full snapshots, we have the risk that we generate a false positive\n // (if a mutation _did_ happen but was \"swallowed\" by the full snapshot)\n // But this should be more unlikely as we'd generally capture the incremental snapshot right away\n\n if (!isIncrementalEvent(event)) {\n return;\n }\n\n const { source } = event.data;\n if (source === IncrementalSource.Mutation) {\n clickDetector.registerMutation(event.timestamp);\n }\n\n if (source === IncrementalSource.Scroll) {\n clickDetector.registerScroll(event.timestamp);\n }\n\n if (isIncrementalMouseInteraction(event)) {\n const { type, id } = event.data;\n const node = record.mirror.getNode(id);\n\n if (node instanceof HTMLElement && type === MouseInteractions.Click) {\n clickDetector.registerClick(node);\n }\n }\n } catch {\n // ignore errors here, e.g. if accessing something that does not exist\n }\n}\n\nfunction isIncrementalEvent(event: RecordingEvent): event is IncrementalRecordingEvent {\n return event.type === ReplayEventTypeIncrementalSnapshot;\n}\n\nfunction isIncrementalMouseInteraction(\n event: IncrementalRecordingEvent,\n): event is IncrementalMouseInteractionRecordingEvent {\n return event.data.source === IncrementalSource.MouseInteraction;\n}\n","import type { ReplayBreadcrumbFrame } from '../types/replayFrame';\n\n/**\n * Create a breadcrumb for a replay.\n */\nexport function createBreadcrumb(\n breadcrumb: Omit & Partial>,\n): ReplayBreadcrumbFrame {\n return {\n timestamp: Date.now() / 1000,\n type: 'default',\n ...breadcrumb,\n };\n}\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n const host = n?.host;\r\n return Boolean(host?.shadowRoot === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n if (!n)\r\n return -1;\r\n const id = this.getMeta(n)?.id;\r\n return id ?? -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction shouldMaskInput({ maskInputOptions, tagName, type, }) {\r\n if (tagName === 'OPTION') {\r\n tagName = 'SELECT';\r\n }\r\n return Boolean(maskInputOptions[tagName.toLowerCase()] ||\r\n (type && maskInputOptions[type]) ||\r\n type === 'password' ||\r\n (tagName === 'INPUT' && !type && maskInputOptions['text']));\r\n}\r\nfunction maskInputValue({ isMasked, element, value, maskInputFn, }) {\r\n let text = value || '';\r\n if (!isMasked) {\r\n return text;\r\n }\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n return '*'.repeat(text.length);\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nfunction toUpperCase(str) {\r\n return str.toUpperCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n const chunkSize = 50;\r\n for (let x = 0; x < canvas.width; x += chunkSize) {\r\n for (let y = 0; y < canvas.height; y += chunkSize) {\r\n const getImageData = ctx.getImageData;\r\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some((pixel) => pixel !== 0))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isNodeMetaEqual(a, b) {\r\n if (!a || !b || a.type !== b.type)\r\n return false;\r\n if (a.type === NodeType.Document)\r\n return a.compatMode === b.compatMode;\r\n else if (a.type === NodeType.DocumentType)\r\n return (a.name === b.name &&\r\n a.publicId === b.publicId &&\r\n a.systemId === b.systemId);\r\n else if (a.type === NodeType.Comment ||\r\n a.type === NodeType.Text ||\r\n a.type === NodeType.CDATA)\r\n return a.textContent === b.textContent;\r\n else if (a.type === NodeType.Element)\r\n return (a.tagName === b.tagName &&\r\n JSON.stringify(a.attributes) ===\r\n JSON.stringify(b.attributes) &&\r\n a.isSVG === b.isSVG &&\r\n a.needBlock === b.needBlock);\r\n return false;\r\n}\r\nfunction getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction getInputValue(el, tagName, type) {\r\n if (tagName === 'INPUT' && (type === 'radio' || type === 'checkbox')) {\r\n return el.getAttribute('value') || '';\r\n }\r\n return el.value;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n if (typeof maskAttributeFn === 'function') {\r\n return maskAttributeFn(name, value, element);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\r\n try {\r\n if (unblockSelector && element.matches(unblockSelector)) {\r\n return false;\r\n }\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction elementClassMatchesRegex(el, regex) {\r\n for (let eIndex = el.classList.length; eIndex--;) {\r\n const className = el.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (checkAncestors) {\r\n return (distanceToMatch(node, (node) => elementClassMatchesRegex(node, regex)) >= 0);\r\n }\r\n else if (node.nodeType === node.ELEMENT_NODE) {\r\n return elementClassMatchesRegex(node, regex);\r\n }\r\n return false;\r\n}\r\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\r\n if (!node)\r\n return -1;\r\n if (node.nodeType !== node.ELEMENT_NODE)\r\n return -1;\r\n if (distance > limit)\r\n return -1;\r\n if (matchPredicate(node))\r\n return distance;\r\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\r\n}\r\nfunction createMatchPredicate(className, selector) {\r\n return (node) => {\r\n const el = node;\r\n if (el === null)\r\n return false;\r\n try {\r\n if (className) {\r\n if (typeof className === 'string') {\r\n if (el.matches(`.${className}`))\r\n return true;\r\n }\r\n else if (elementClassMatchesRegex(el, className)) {\r\n return true;\r\n }\r\n }\r\n if (selector && el.matches(selector))\r\n return true;\r\n return false;\r\n }\r\n catch {\r\n return false;\r\n }\r\n };\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (el.tagName === 'INPUT') {\r\n const autocomplete = el.getAttribute('autocomplete');\r\n const disallowedAutocompleteValues = [\r\n 'current-password',\r\n 'new-password',\r\n 'cc-number',\r\n 'cc-exp',\r\n 'cc-exp-month',\r\n 'cc-exp-year',\r\n 'cc-csc',\r\n ];\r\n if (disallowedAutocompleteValues.includes(autocomplete)) {\r\n return true;\r\n }\r\n }\r\n let maskDistance = -1;\r\n let unmaskDistance = -1;\r\n if (maskAllText) {\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector));\r\n if (unmaskDistance < 0) {\r\n return true;\r\n }\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector), unmaskDistance >= 0 ? unmaskDistance : Infinity);\r\n }\r\n else {\r\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector));\r\n if (maskDistance < 0) {\r\n return false;\r\n }\r\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector), maskDistance >= 0 ? maskDistance : Infinity);\r\n }\r\n return maskDistance >= 0\r\n ? unmaskDistance >= 0\r\n ? maskDistance <= unmaskDistance\r\n : true\r\n : unmaskDistance >= 0\r\n ? false\r\n : !!maskAllText;\r\n }\r\n catch (e) {\r\n }\r\n return !!maskAllText;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskAttributeFn, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode,\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId,\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n inlineStylesheet,\r\n maskAttributeFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n maskTextFn,\r\n maskInputOptions,\r\n maskInputFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId,\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId,\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n const docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n const { maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, maskTextFn, maskInputOptions, maskInputFn, rootId, } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n const isTextarea = parentTagName === 'TEXTAREA' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if (n.parentNode.sheet?.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n const forceMask = needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText);\r\n if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent, n.parentElement)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\r\n textContent = maskInputFn\r\n ? maskInputFn(textContent, n.parentNode)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n if (parentTagName === 'OPTION' && textContent) {\r\n const isInputMasked = shouldMaskInput({\r\n type: null,\r\n tagName: parentTagName,\r\n maskInputOptions,\r\n });\r\n textContent = maskInputValue({\r\n isMasked: needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked),\r\n element: n,\r\n value: textContent,\r\n maskInputFn,\r\n });\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, unblockSelector, inlineStylesheet, maskInputOptions = {}, maskAttributeFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector, unblockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (attr.name && !ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value, n, maskAttributeFn);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' ||\r\n tagName === 'textarea' ||\r\n tagName === 'select' ||\r\n tagName === 'option') {\r\n const el = n;\r\n const type = getInputType(el);\r\n const value = getInputValue(el, toUpperCase(tagName), type);\r\n const checked = el.checked;\r\n if (type !== 'submit' && type !== 'button' && value) {\r\n const forceMask = needMaskingText(el, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, shouldMaskInput({\r\n type,\r\n tagName: toUpperCase(tagName),\r\n maskInputOptions,\r\n }));\r\n attributes.value = maskInputValue({\r\n isMasked: forceMask,\r\n element: el,\r\n value,\r\n maskInputFn,\r\n });\r\n }\r\n if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n attributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n attributes.rr_mediaCurrentTime = n.currentTime;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n const { width, height } = n.getBoundingClientRect();\r\n attributes = {\r\n class: attributes.class,\r\n rr_width: `${width}px`,\r\n rr_height: `${height}px`,\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n let isCustomElement;\r\n try {\r\n if (customElements.get(tagName))\r\n isCustomElement = true;\r\n }\r\n catch (e) {\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName,\r\n attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock,\r\n rootId,\r\n isCustom: isCustomElement,\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined || maybeAttr === null) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n (sn.attributes.rel === 'preload' ||\r\n sn.attributes.rel === 'modulepreload') &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n sn.attributes.href.endsWith('.js')))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskAttributeFn, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n const serializedNode = Object.assign(_serializedNode, { id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n let recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n const shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n const bypassOptions = {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskAllText,\r\n unblockSelector,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n serializedNode.attributes.rel === 'stylesheet') {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, unblockSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskAttributeFn, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n }\r\n : maskAllInputs === false\r\n ? {}\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n unblockSelector,\r\n maskAllText,\r\n maskTextClass,\r\n unmaskTextClass,\r\n maskTextSelector,\r\n unmaskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskAttributeFn,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\r\nfunction visitSnapshot(node, onVisit) {\r\n function walk(current) {\r\n onVisit(current);\r\n if (current.type === NodeType.Document ||\r\n current.type === NodeType.Element) {\r\n current.childNodes.forEach(walk);\r\n }\r\n }\r\n walk(node);\r\n}\r\nfunction cleanupSnapshot() {\r\n _id = 1;\r\n}\n\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options = {}) {\r\n let lineno = 1;\r\n let column = 1;\r\n function updatePosition(str) {\r\n const lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n const i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n const start = { line: lineno, column };\r\n return (node) => {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n class Position {\r\n constructor(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column };\r\n this.source = options.source;\r\n }\r\n }\r\n Position.prototype.content = css;\r\n const errorsList = [];\r\n function error(msg) {\r\n const err = new Error(`${options.source || ''}:${lineno}:${column}: ${msg}`);\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n const rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList,\r\n },\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n let node;\r\n const rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n const m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n const str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules = []) {\r\n let c;\r\n while ((c = comment())) {\r\n if (c) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n const pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n let i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n const str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str,\r\n });\r\n }\r\n function selector() {\r\n whitespace();\r\n while (css[0] == '}') {\r\n error('extra closing bracket');\r\n css = css.slice(1);\r\n whitespace();\r\n }\r\n const m = match(/^((\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^{])+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const cleanedInput = m[0]\r\n .trim()\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, (m) => {\r\n return m.replace(/,/g, '\\u200C');\r\n });\r\n return customSplit(cleanedInput).map((s) => s.replace(/\\u200C/g, ',').trim());\r\n }\r\n function customSplit(input) {\r\n const result = [];\r\n let currentSegment = '';\r\n let depthParentheses = 0;\r\n let depthBrackets = 0;\r\n let currentStringChar = null;\r\n for (const char of input) {\r\n const hasStringEscape = currentSegment.endsWith('\\\\');\r\n if (currentStringChar) {\r\n if (currentStringChar === char && !hasStringEscape) {\r\n currentStringChar = null;\r\n }\r\n }\r\n else if (char === '(') {\r\n depthParentheses++;\r\n }\r\n else if (char === ')') {\r\n depthParentheses--;\r\n }\r\n else if (char === '[') {\r\n depthBrackets++;\r\n }\r\n else if (char === ']') {\r\n depthBrackets--;\r\n }\r\n else if ('\\'\"'.includes(char)) {\r\n currentStringChar = char;\r\n }\r\n if (char === ',' && depthParentheses === 0 && depthBrackets === 0) {\r\n result.push(currentSegment);\r\n currentSegment = '';\r\n }\r\n else {\r\n currentSegment += char;\r\n }\r\n }\r\n if (currentSegment) {\r\n result.push(currentSegment);\r\n }\r\n return result;\r\n }\r\n function declaration() {\r\n const pos = position();\r\n const propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n const prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(`property missing ':'`);\r\n }\r\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n const ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : '',\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n const decls = [];\r\n if (!open()) {\r\n return error(`missing '{'`);\r\n }\r\n comments(decls);\r\n let decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(`missing '}'`);\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n let m;\r\n const vals = [];\r\n const pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations(),\r\n });\r\n }\r\n function atkeyframes() {\r\n const pos = position();\r\n let m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n const name = m[1];\r\n if (!open()) {\r\n return error(`@keyframes missing '{'`);\r\n }\r\n let frame;\r\n let frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@keyframes missing '}'`);\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name,\r\n vendor,\r\n keyframes: frames,\r\n });\r\n }\r\n function atsupports() {\r\n const pos = position();\r\n const m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const supports = trim(m[1]);\r\n if (!open()) {\r\n return error(`@supports missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@supports missing '}'`);\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports,\r\n rules: style,\r\n });\r\n }\r\n function athost() {\r\n const pos = position();\r\n const m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@host missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@host missing '}'`);\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style,\r\n });\r\n }\r\n function atmedia() {\r\n const pos = position();\r\n const m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const media = trim(m[1]);\r\n if (!open()) {\r\n return error(`@media missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@media missing '}'`);\r\n }\r\n return pos({\r\n type: 'media',\r\n media,\r\n rules: style,\r\n });\r\n }\r\n function atcustommedia() {\r\n const pos = position();\r\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2]),\r\n });\r\n }\r\n function atpage() {\r\n const pos = position();\r\n const m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n const sel = selector() || [];\r\n if (!open()) {\r\n return error(`@page missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@page missing '}'`);\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls,\r\n });\r\n }\r\n function atdocument() {\r\n const pos = position();\r\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n const vendor = trim(m[1]);\r\n const doc = trim(m[2]);\r\n if (!open()) {\r\n return error(`@document missing '{'`);\r\n }\r\n const style = comments().concat(rules());\r\n if (!close()) {\r\n return error(`@document missing '}'`);\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor,\r\n rules: style,\r\n });\r\n }\r\n function atfontface() {\r\n const pos = position();\r\n const m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(`@font-face missing '{'`);\r\n }\r\n let decls = comments();\r\n let decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(`@font-face missing '}'`);\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls,\r\n });\r\n }\r\n const atimport = _compileAtrule('import');\r\n const atcharset = _compileAtrule('charset');\r\n const atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n const re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return () => {\r\n const pos = position();\r\n const m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n const ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n const pos = position();\r\n const sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations(),\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n const isNode = obj && typeof obj.type === 'string';\r\n const childParent = isNode ? obj : parent;\r\n for (const k of Object.keys(obj)) {\r\n const value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null,\r\n });\r\n }\r\n return obj;\r\n}\n\nconst tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction getTagName(n) {\r\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nconst HOVER_SELECTOR = /([^\\\\]):hover/;\r\nconst HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n const cachedStyle = cache?.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n if (cssText.length >= 1000000) {\r\n return cssText;\r\n }\r\n const ast = parse(cssText, {\r\n silent: true,\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n const selectors = [];\r\n ast.stylesheet.rules.forEach((rule) => {\r\n if ('selectors' in rule) {\r\n (rule.selectors || []).forEach((selector) => {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n });\r\n if (selectors.length === 0) {\r\n return cssText;\r\n }\r\n const selectorMatcher = new RegExp(selectors\r\n .filter((selector, index) => selectors.indexOf(selector) === index)\r\n .sort((a, b) => b.length - a.length)\r\n .map((selector) => {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n const result = cssText.replace(selectorMatcher, (selector) => {\r\n const newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return `${selector}, ${newSelector}`;\r\n });\r\n cache?.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n const stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass,\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n const { doc, hackCss, cache } = options;\r\n switch (n.type) {\r\n case NodeType.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType.Element: {\r\n const tagName = getTagName(n);\r\n let node;\r\n if (n.isSVG) {\r\n node = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n if (n.isCustom &&\r\n doc.defaultView?.customElements &&\r\n !doc.defaultView.customElements.get(n.tagName))\r\n doc.defaultView.customElements.define(n.tagName, class extends doc.defaultView.HTMLElement {\r\n });\r\n node = doc.createElement(tagName);\r\n }\r\n const specialAttributes = {};\r\n for (const name in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\r\n continue;\r\n }\r\n let value = n.attributes[name];\r\n if (tagName === 'option' &&\r\n name === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === null) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name.startsWith('rr_')) {\r\n specialAttributes[name] = value;\r\n continue;\r\n }\r\n const isTextarea = tagName === 'textarea' && name === 'value';\r\n const isRemoteOrDynamicCss = tagName === 'style' && name === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = addHoverClass(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n const child = doc.createTextNode(value);\r\n for (const c of Array.from(node.childNodes)) {\r\n if (c.nodeType === node.TEXT_NODE) {\r\n node.removeChild(c);\r\n }\r\n }\r\n node.appendChild(child);\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name === 'xlink:href') {\r\n node.setAttributeNS('http://www.w3.org/1999/xlink', name, value.toString());\r\n }\r\n else if (name === 'onload' ||\r\n name === 'onclick' ||\r\n name.substring(0, 7) === 'onmouse') {\r\n node.setAttribute('_' + name, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name === 'content') {\r\n node.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n (n.attributes.rel === 'preload' ||\r\n n.attributes.rel === 'modulepreload') &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node.setAttribute(name, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n for (const name in specialAttributes) {\r\n const value = specialAttributes[name];\r\n if (tagName === 'canvas' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = node.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = value.toString();\r\n if (node.RRNodeType)\r\n node.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name === 'rr_dataURL') {\r\n const image = node;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name === 'rr_width') {\r\n node.style.setProperty('width', value.toString());\r\n }\r\n else if (name === 'rr_height') {\r\n node.style.setProperty('height', value.toString());\r\n }\r\n else if (name === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node.currentTime = value;\r\n }\r\n else if (name === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node\r\n .play()\r\n .catch((e) => console.warn('media playback error', e));\r\n break;\r\n case 'paused':\r\n node.pause();\r\n break;\r\n }\r\n }\r\n }\r\n if (n.isShadowHost) {\r\n if (!node.shadowRoot) {\r\n node.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node.shadowRoot.firstChild) {\r\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node;\r\n }\r\n case NodeType.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? addHoverClass(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n const { doc, mirror, skipChild = false, hackCss = true, afterAppend, cache, } = options;\r\n if (mirror.has(n.id)) {\r\n const nodeInMirror = mirror.getNode(n.id);\r\n const meta = mirror.getMeta(nodeInMirror);\r\n if (isNodeMetaEqual(meta, n))\r\n return mirror.getNode(n.id);\r\n }\r\n let node = buildNode(n, { doc, hackCss, cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType.DocumentType) {\r\n if (n.childNodes[0].type === NodeType.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('');\r\n }\r\n else {\r\n doc.write('');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\r\n !skipChild) {\r\n for (const childN of n.childNodes) {\r\n const childNode = buildNodeWithSN(childN, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else if (n.type === NodeType.Document &&\r\n childN.type == NodeType.Element) {\r\n const htmlElement = childNode;\r\n let body = null;\r\n htmlElement.childNodes.forEach((child) => {\r\n if (child.nodeName === 'BODY')\r\n body = child;\r\n });\r\n if (body) {\r\n htmlElement.removeChild(body);\r\n node.appendChild(childNode);\r\n htmlElement.appendChild(body);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (const id of mirror.getIds()) {\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n const n = mirror.getMeta(node);\r\n if (n?.type !== NodeType.Element) {\r\n return;\r\n }\r\n const el = node;\r\n for (const name in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) &&\r\n name.startsWith('rr_'))) {\r\n continue;\r\n }\r\n const value = n.attributes[name];\r\n if (name === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n const { doc, onVisit, hackCss = true, afterAppend, cache, mirror = new Mirror(), } = options;\r\n const node = buildNodeWithSN(n, {\r\n doc,\r\n mirror,\r\n skipChild: false,\r\n hackCss,\r\n afterAppend,\r\n cache,\r\n });\r\n visit(mirror, (visitedNode) => {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, addHoverClass, buildNodeWithSN, classMatchesRegex, cleanupSnapshot, createCache, createMatchPredicate, createMirror, distanceToMatch, escapeImportStatement, fixSafariColons, genId, getInputType, getInputValue, ignoreAttribute, is2DCanvasBlank, isCSSImportRule, isCSSStyleRule, isElement, isNativeShadowDom, isNodeMetaEqual, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, shouldMaskInput, snapshot, stringifyRule, stringifyStylesheet, toLowerCase, toUpperCase, transformAttribute, visitSnapshot };\n","// Note that these are the serialized attributes and not attributes directly on\n// the DOM Node. Attributes we are interested in:\nconst ATTRIBUTES_TO_RECORD = new Set([\n 'id',\n 'class',\n 'aria-label',\n 'role',\n 'name',\n 'alt',\n 'title',\n 'data-test-id',\n 'data-testid',\n 'disabled',\n 'aria-disabled',\n 'data-sentry-component',\n]);\n\n/**\n * Inclusion list of attributes that we want to record from the DOM element\n */\nexport function getAttributesToRecord(attributes: Record): Record {\n const obj: Record = {};\n for (const key in attributes) {\n if (ATTRIBUTES_TO_RECORD.has(key)) {\n let normalizedKey = key;\n\n if (key === 'data-testid' || key === 'data-test-id') {\n normalizedKey = 'testId';\n }\n\n obj[normalizedKey] = attributes[key];\n }\n }\n\n return obj;\n}\n","import { record } from '@sentry-internal/rrweb';\nimport type { serializedElementNodeWithId, serializedNodeWithId } from '@sentry-internal/rrweb-snapshot';\nimport { NodeType } from '@sentry-internal/rrweb-snapshot';\nimport type { Breadcrumb, HandlerDataDom } from '@sentry/types';\nimport { htmlTreeAsString } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../types';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { handleClick } from './handleClick';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\nimport { getClickTargetNode, getTargetNode } from './util/domUtils';\nimport { getAttributesToRecord } from './util/getAttributesToRecord';\n\nexport const handleDomListener: (replay: ReplayContainer) => (handlerData: HandlerDataDom) => void = (\n replay: ReplayContainer,\n) => {\n return (handlerData: HandlerDataDom): void => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleDom(handlerData);\n\n if (!result) {\n return;\n }\n\n const isClick = handlerData.name === 'click';\n const event = isClick ? (handlerData.event as PointerEvent) : undefined;\n // Ignore clicks if ctrl/alt/meta/shift keys are held down as they alter behavior of clicks (e.g. open in new tab)\n if (\n isClick &&\n replay.clickDetector &&\n event &&\n event.target &&\n !event.altKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.shiftKey\n ) {\n handleClick(\n replay.clickDetector,\n result as Breadcrumb & { timestamp: number; data: { nodeId: number } },\n getClickTargetNode(handlerData.event as Event) as HTMLElement,\n );\n }\n\n addBreadcrumbEvent(replay, result);\n };\n};\n\n/** Get the base DOM breadcrumb. */\nexport function getBaseDomBreadcrumb(target: Node | null, message: string): Breadcrumb {\n const nodeId = record.mirror.getId(target);\n const node = nodeId && record.mirror.getNode(nodeId);\n const meta = node && record.mirror.getMeta(node);\n const element = meta && isElement(meta) ? meta : null;\n\n return {\n message,\n data: element\n ? {\n nodeId,\n node: {\n id: nodeId,\n tagName: element.tagName,\n textContent: Array.from(element.childNodes)\n .map((node: serializedNodeWithId) => node.type === NodeType.Text && node.textContent)\n .filter(Boolean) // filter out empty values\n .map(text => (text as string).trim())\n .join(''),\n attributes: getAttributesToRecord(element.attributes),\n },\n }\n : {},\n };\n}\n\n/**\n * An event handler to react to DOM events.\n * Exported for tests.\n */\nexport function handleDom(handlerData: HandlerDataDom): Breadcrumb | null {\n const { target, message } = getDomTarget(handlerData);\n\n return createBreadcrumb({\n category: `ui.${handlerData.name}`,\n ...getBaseDomBreadcrumb(target, message),\n });\n}\n\nfunction getDomTarget(handlerData: HandlerDataDom): { target: Node | null; message: string } {\n const isClick = handlerData.name === 'click';\n\n let message: string | undefined;\n let target: Node | null = null;\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = isClick ? getClickTargetNode(handlerData.event as Event) : getTargetNode(handlerData.event as Event);\n message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n } catch (e) {\n message = '';\n }\n\n return { target, message };\n}\n\nfunction isElement(node: serializedNodeWithId): node is serializedElementNodeWithId {\n return node.type === NodeType.Element;\n}\n","import type { Breadcrumb } from '@sentry/types';\nimport { htmlTreeAsString } from '@sentry/utils';\n\nimport type { ReplayContainer } from '../types';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { getBaseDomBreadcrumb } from './handleDom';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\n\n/** Handle keyboard events & create breadcrumbs. */\nexport function handleKeyboardEvent(replay: ReplayContainer, event: KeyboardEvent): void {\n if (!replay.isEnabled()) {\n return;\n }\n\n // Update user activity, but do not restart recording as it can create\n // noisy/low-value replays (e.g. user comes back from idle, hits alt-tab, new\n // session with a single \"keydown\" breadcrumb is created)\n replay.updateUserActivity();\n\n const breadcrumb = getKeyboardBreadcrumb(event);\n\n if (!breadcrumb) {\n return;\n }\n\n addBreadcrumbEvent(replay, breadcrumb);\n}\n\n/** exported only for tests */\nexport function getKeyboardBreadcrumb(event: KeyboardEvent): Breadcrumb | null {\n const { metaKey, shiftKey, ctrlKey, altKey, key, target } = event;\n\n // never capture for input fields\n if (!target || isInputElement(target as HTMLElement) || !key) {\n return null;\n }\n\n // Note: We do not consider shift here, as that means \"uppercase\"\n const hasModifierKey = metaKey || ctrlKey || altKey;\n const isCharacterKey = key.length === 1; // other keys like Escape, Tab, etc have a longer length\n\n // Do not capture breadcrumb if only a word key is pressed\n // This could leak e.g. user input\n if (!hasModifierKey && isCharacterKey) {\n return null;\n }\n\n const message = htmlTreeAsString(target, { maxStringLength: 200 }) || '';\n const baseBreadcrumb = getBaseDomBreadcrumb(target as Node, message);\n\n return createBreadcrumb({\n category: 'ui.keyDown',\n message,\n data: {\n ...baseBreadcrumb.data,\n metaKey,\n shiftKey,\n ctrlKey,\n altKey,\n key,\n },\n });\n}\n\nfunction isInputElement(target: HTMLElement): boolean {\n return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable;\n}\n","import { record } from '@sentry-internal/rrweb';\nimport { browserPerformanceTimeOrigin } from '@sentry/utils';\n\nimport { WINDOW } from '../constants';\nimport type {\n AllPerformanceEntry,\n AllPerformanceEntryData,\n ExperimentalPerformanceResourceTiming,\n LargestContentfulPaintData,\n NavigationData,\n PaintData,\n ReplayPerformanceEntry,\n ResourceData,\n} from '../types';\n\n// Map entryType -> function to normalize data for event\nconst ENTRY_TYPES: Record<\n string,\n (entry: AllPerformanceEntry) => null | ReplayPerformanceEntry\n> = {\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n resource: createResourceEntry,\n paint: createPaintEntry,\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n navigation: createNavigationEntry,\n};\n\n/**\n * Create replay performance entries from the browser performance entries.\n */\nexport function createPerformanceEntries(\n entries: AllPerformanceEntry[],\n): ReplayPerformanceEntry[] {\n return entries.map(createPerformanceEntry).filter(Boolean) as ReplayPerformanceEntry[];\n}\n\nfunction createPerformanceEntry(entry: AllPerformanceEntry): ReplayPerformanceEntry | null {\n if (!ENTRY_TYPES[entry.entryType]) {\n return null;\n }\n\n return ENTRY_TYPES[entry.entryType](entry);\n}\n\nfunction getAbsoluteTime(time: number): number {\n // browserPerformanceTimeOrigin can be undefined if `performance` or\n // `performance.now` doesn't exist, but this is already checked by this integration\n return ((browserPerformanceTimeOrigin || WINDOW.performance.timeOrigin) + time) / 1000;\n}\n\nfunction createPaintEntry(entry: PerformancePaintTiming): ReplayPerformanceEntry {\n const { duration, entryType, name, startTime } = entry;\n\n const start = getAbsoluteTime(startTime);\n return {\n type: entryType,\n name,\n start,\n end: start + duration,\n data: undefined,\n };\n}\n\nfunction createNavigationEntry(entry: PerformanceNavigationTiming): ReplayPerformanceEntry | null {\n const {\n entryType,\n name,\n decodedBodySize,\n duration,\n domComplete,\n encodedBodySize,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n domInteractive,\n loadEventStart,\n loadEventEnd,\n redirectCount,\n startTime,\n transferSize,\n type,\n } = entry;\n\n // Ignore entries with no duration, they do not seem to be useful and cause dupes\n if (duration === 0) {\n return null;\n }\n\n return {\n type: `${entryType}.${type}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(domComplete),\n name,\n data: {\n size: transferSize,\n decodedBodySize,\n encodedBodySize,\n duration,\n domInteractive,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n loadEventStart,\n loadEventEnd,\n domComplete,\n redirectCount,\n },\n };\n}\n\nfunction createResourceEntry(\n entry: ExperimentalPerformanceResourceTiming,\n): ReplayPerformanceEntry | null {\n const {\n entryType,\n initiatorType,\n name,\n responseEnd,\n startTime,\n decodedBodySize,\n encodedBodySize,\n responseStatus,\n transferSize,\n } = entry;\n\n // Core SDK handles these\n if (['fetch', 'xmlhttprequest'].includes(initiatorType)) {\n return null;\n }\n\n return {\n type: `${entryType}.${initiatorType}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(responseEnd),\n name,\n data: {\n size: transferSize,\n statusCode: responseStatus,\n decodedBodySize,\n encodedBodySize,\n },\n };\n}\n\n/**\n * Add a LCP event to the replay based on an LCP metric.\n */\nexport function getLargestContentfulPaint(metric: {\n value: number;\n entries: PerformanceEntry[];\n}): ReplayPerformanceEntry {\n const entries = metric.entries;\n const lastEntry = entries[entries.length - 1] as (PerformanceEntry & { element?: Element }) | undefined;\n const element = lastEntry ? lastEntry.element : undefined;\n\n const value = metric.value;\n\n const end = getAbsoluteTime(value);\n\n const data: ReplayPerformanceEntry = {\n type: 'largest-contentful-paint',\n name: 'largest-contentful-paint',\n start: end,\n end,\n data: {\n value,\n size: value,\n nodeId: element ? record.mirror.getId(element) : undefined,\n },\n };\n\n return data;\n}\n","import { addLcpInstrumentationHandler, addPerformanceInstrumentationHandler } from '@sentry-internal/tracing';\n\nimport type { ReplayContainer } from '../types';\nimport { getLargestContentfulPaint } from '../util/createPerformanceEntries';\n\n/**\n * Sets up a PerformanceObserver to listen to all performance entry types.\n * Returns a callback to stop observing.\n */\nexport function setupPerformanceObserver(replay: ReplayContainer): () => void {\n function addPerformanceEntry(entry: PerformanceEntry): void {\n // It is possible for entries to come up multiple times\n if (!replay.performanceEntries.includes(entry)) {\n replay.performanceEntries.push(entry);\n }\n }\n\n function onEntries({ entries }: { entries: PerformanceEntry[] }): void {\n entries.forEach(addPerformanceEntry);\n }\n\n const clearCallbacks: (() => void)[] = [];\n\n (['navigation', 'paint', 'resource'] as const).forEach(type => {\n clearCallbacks.push(addPerformanceInstrumentationHandler(type, onEntries));\n });\n\n clearCallbacks.push(\n addLcpInstrumentationHandler(({ metric }) => {\n replay.replayPerformanceEntries.push(getLargestContentfulPaint(metric));\n }),\n );\n\n // A callback to cleanup all handlers\n return () => {\n clearCallbacks.forEach(clearCallback => clearCallback());\n };\n}\n","declare const __DEBUG_BUILD__: boolean;\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 */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","export default `var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),a=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(t,e){for(var i=new n(31),a=0;a<31;++a)i[a]=e+=1<>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,a=0,s=new n(r);a>h]=l}else for(o=new n(i),a=0;a>15-t[a]);return o},g=new t(288);for(c=0;c<144;++c)g[c]=8;for(c=144;c<256;++c)g[c]=9;for(c=256;c<280;++c)g[c]=7;for(c=280;c<288;++c)g[c]=8;var w=new t(32);for(c=0;c<32;++c)w[c]=5;var p=d(g,9,0),y=d(w,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==r||r<0)&&(r=0),(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},A=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},_=function(r,e){for(var i=[],a=0;ad&&(d=o[a].s);var g=new n(d+1),w=x(i[c-1],g,0);if(w>e){a=0;var p=0,y=w-e,m=1<e))break;p+=m-(1<>=y;p>0;){var M=o[a].s;g[M]=0&&p;--a){var E=o[a].s;g[E]==e&&(--g[E],++p)}w=e}return{t:new t(g),l:w}},x=function(t,n,r){return-1==t.s?Math.max(x(t.l,n,r+1),x(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,a=t[0],s=1,o=function(t){e[i++]=t},f=1;f<=r;++f)if(t[f]==a&&f!=r)++s;else{if(!a&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(a),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(a);s=1,a=t[f]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var a=0;a4&&!H[a[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(f,g)+T(h,w)+l,X=T(f,M)+T(h,C)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=p,P=g,Q=y,R=w;for(B=0;B255){A(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;A(r,m,Q[et]),m+=R[et],et>3&&(A(r,m,rt>>5&8191),m+=i[et])}else A(r,m,N[rt]),m+=P[rt]}return A(r,m,N[256]),m+P[256]},U=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,a=0|r.length,s=0;s!=a;){for(var o=Math.min(s+2655,a);s>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(a,s,o,f,u){if(!u&&(u={l:1},s.dictionary)){var c=s.dictionary.subarray(-32768),v=new t(c.length+a.length);v.set(c),v.set(a,c.length),a=v,u.w=c.length}return function(a,s,o,f,u,c){var v=c.z||a.length,d=new t(f+v+5*(1+Math.ceil(v/7e3))+u),g=d.subarray(f,d.length-u),w=c.l,p=7&(c.r||0);if(s){p&&(g[0]=c.r>>3);for(var y=U[s-1],M=y>>13,E=8191&y,z=(1<7e3||q>24576)&&(N>423||!w)){p=C(a,g,0,F,I,S,O,q,G,j-G,p),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(a[j+Q]==a[j+Q-W]){for(var $=0;$Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;Pnt&&(nt=et,K=rt)}}}W+=(J=K)-(K=A[J])&32767}if(R){F[q++]=268435456|h[Q]<<18|l[R];var it=31&h[Q],at=31&l[R];O+=e[it]+i[at],++I[257+it],++S[at],B=j+Q,++L}else F[q++]=a[j],++I[a[j]]}}for(j=Math.max(j,B);j=v&&(g[p/8|0]=w,st=v),p=k(g,p+1,a.subarray(j,st))}c.i=v}return b(d,0,f+m(p)+u)}(a,null==s.level?6:s.level,null==s.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+s.mem,o,f,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if(\"function\"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var a=this.b.length-this.s.z;a&&(this.b.set(n.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(a),32768),this.s.z=n.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,a=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),s=a.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(a,n),O(a,s-8,r.d()),O(a,s-4,e),a}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t}(),G=\"undefined\"!=typeof TextEncoder&&new TextEncoder,H=\"undefined\"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(r){for(var e=new t(n.length),i=0;i>1)),o=0,f=function(t){s[o++]=t};for(i=0;is.length){var h=new t(o+8+(a-i<<1));h.set(s),s=h}var l=n.charCodeAt(i);l<128||r?f(l):l<2048?(f(192|l>>6),f(128|63&l)):l>55295&&l<57344?(f(240|(l=65536+(1047552&l)|1023&n.charCodeAt(++i))>>18),f(128|l>>12&63),f(128|l>>6&63),f(128|63&l)):(f(224|l>>12),f(128|l>>6&63),f(128|63&l))}return b(s,0,o)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error(\"Adding invalid event\");const n=this._hasEvents?\",\":\"\";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push(\"]\",!0);const t=function(t){let n=0;for(let r=0,e=t.length;r{this._deflatedData.push(t)},this.stream=new J(((t,n)=>{this.deflate.push(t,n)})),this.stream.push(\"[\")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener(\"message\",(function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&\"function\"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:\"init\",success:!0,response:void 0});`;\n","import r from\"./worker\";function e(){const e=new Blob([r]);return URL.createObjectURL(e)}export{e as getWorkerURL};\n","import { addBreadcrumb } from '@sentry/core';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\n\n/**\n * Log a message in debug mode, and add a breadcrumb when _experiment.traceInternals is enabled.\n */\nexport function logInfo(message: string, shouldAddBreadcrumb?: boolean): void {\n if (!DEBUG_BUILD) {\n return;\n }\n\n logger.info(message);\n\n if (shouldAddBreadcrumb) {\n addLogBreadcrumb(message);\n }\n}\n\n/**\n * Log a message, and add a breadcrumb in the next tick.\n * This is necessary when the breadcrumb may be added before the replay is initialized.\n */\nexport function logInfoNextTick(message: string, shouldAddBreadcrumb?: boolean): void {\n if (!DEBUG_BUILD) {\n return;\n }\n\n logger.info(message);\n\n if (shouldAddBreadcrumb) {\n // Wait a tick here to avoid race conditions for some initial logs\n // which may be added before replay is initialized\n setTimeout(() => {\n addLogBreadcrumb(message);\n }, 0);\n }\n}\n\nfunction addLogBreadcrumb(message: string): void {\n addBreadcrumb(\n {\n category: 'console',\n data: {\n logger: 'replay',\n },\n level: 'info',\n message,\n },\n { level: 'info' },\n );\n}\n","import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\n\n/** This error indicates that the event buffer size exceeded the limit.. */\nexport class EventBufferSizeExceededError extends Error {\n public constructor() {\n super(`Event buffer exceeded maximum size of ${REPLAY_MAX_EVENT_BUFFER_SIZE}.`);\n }\n}\n","import { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { timestampToMs } from '../util/timestamp';\nimport { EventBufferSizeExceededError } from './error';\n\n/**\n * A basic event buffer that does not do any compression.\n * Used as fallback if the compression worker cannot be loaded or is disabled.\n */\nexport class EventBufferArray implements EventBuffer {\n /** All the events that are buffered to be sent. */\n public events: RecordingEvent[];\n\n /** @inheritdoc */\n public hasCheckout: boolean;\n\n private _totalSize: number;\n\n public constructor() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public get hasEvents(): boolean {\n return this.events.length > 0;\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return 'sync';\n }\n\n /** @inheritdoc */\n public destroy(): void {\n this.events = [];\n }\n\n /** @inheritdoc */\n public async addEvent(event: RecordingEvent): Promise {\n const eventSize = JSON.stringify(event).length;\n this._totalSize += eventSize;\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n throw new EventBufferSizeExceededError();\n }\n\n this.events.push(event);\n }\n\n /** @inheritdoc */\n public finish(): Promise {\n return new Promise(resolve => {\n // Make a copy of the events array reference and immediately clear the\n // events member so that we do not lose new events while uploading\n // attachment.\n const eventsRet = this.events;\n this.clear();\n resolve(JSON.stringify(eventsRet));\n });\n }\n\n /** @inheritdoc */\n public clear(): void {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n const timestamp = this.events.map(event => event.timestamp).sort()[0];\n\n if (!timestamp) {\n return null;\n }\n\n return timestampToMs(timestamp);\n }\n}\n","import { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { WorkerRequest, WorkerResponse } from '../types';\nimport { logInfo } from '../util/log';\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nexport class WorkerHandler {\n private _worker: Worker;\n private _id: number;\n private _ensureReadyPromise?: Promise;\n\n public constructor(worker: Worker) {\n this._worker = worker;\n this._id = 0;\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n public ensureReady(): Promise {\n // Ensure we only check once\n if (this._ensureReadyPromise) {\n return this._ensureReadyPromise;\n }\n\n this._ensureReadyPromise = new Promise((resolve, reject) => {\n this._worker.addEventListener(\n 'message',\n ({ data }: MessageEvent) => {\n if ((data as WorkerResponse).success) {\n resolve();\n } else {\n reject();\n }\n },\n { once: true },\n );\n\n this._worker.addEventListener(\n 'error',\n error => {\n reject(error);\n },\n { once: true },\n );\n });\n\n return this._ensureReadyPromise;\n }\n\n /**\n * Destroy the worker.\n */\n public destroy(): void {\n logInfo('[Replay] Destroying compression worker');\n this._worker.terminate();\n }\n\n /**\n * Post message to worker and wait for response before resolving promise.\n */\n public postMessage(method: WorkerRequest['method'], arg?: WorkerRequest['arg']): Promise {\n const id = this._getAndIncrementId();\n\n return new Promise((resolve, reject) => {\n const listener = ({ data }: MessageEvent): void => {\n const response = data as WorkerResponse;\n if (response.method !== method) {\n return;\n }\n\n // There can be multiple listeners for a single method, the id ensures\n // that the response matches the caller.\n if (response.id !== id) {\n return;\n }\n\n // At this point, we'll always want to remove listener regardless of result status\n this._worker.removeEventListener('message', listener);\n\n if (!response.success) {\n // TODO: Do some error handling, not sure what\n DEBUG_BUILD && logger.error('[Replay]', response.response);\n\n reject(new Error('Error in compression worker'));\n return;\n }\n\n resolve(response.response as T);\n };\n\n // Note: we can't use `once` option because it's possible it needs to\n // listen to multiple messages\n this._worker.addEventListener('message', listener);\n this._worker.postMessage({ id, method, arg });\n });\n }\n\n /** Get the current ID and increment it for the next call. */\n private _getAndIncrementId(): number {\n return this._id++;\n }\n}\n","import type { ReplayRecordingData } from '@sentry/types';\n\nimport { logger } from '@sentry/utils';\nimport { REPLAY_MAX_EVENT_BUFFER_SIZE } from '../constants';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { timestampToMs } from '../util/timestamp';\nimport { WorkerHandler } from './WorkerHandler';\nimport { EventBufferSizeExceededError } from './error';\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nexport class EventBufferCompressionWorker implements EventBuffer {\n /** @inheritdoc */\n public hasCheckout: boolean;\n\n private _worker: WorkerHandler;\n private _earliestTimestamp: number | null;\n private _totalSize;\n\n public constructor(worker: Worker) {\n this._worker = new WorkerHandler(worker);\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n public get hasEvents(): boolean {\n return !!this._earliestTimestamp;\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return 'worker';\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n public ensureReady(): Promise {\n return this._worker.ensureReady();\n }\n\n /**\n * Destroy the event buffer.\n */\n public destroy(): void {\n this._worker.destroy();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfuly received and processed by worker.\n */\n public addEvent(event: RecordingEvent): Promise {\n const timestamp = timestampToMs(event.timestamp);\n if (!this._earliestTimestamp || timestamp < this._earliestTimestamp) {\n this._earliestTimestamp = timestamp;\n }\n\n const data = JSON.stringify(event);\n this._totalSize += data.length;\n\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n return Promise.reject(new EventBufferSizeExceededError());\n }\n\n return this._sendEventToWorker(data);\n }\n\n /**\n * Finish the event buffer and return the compressed data.\n */\n public finish(): Promise {\n return this._finishRequest();\n }\n\n /** @inheritdoc */\n public clear(): void {\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n\n // We do not wait on this, as we assume the order of messages is consistent for the worker\n this._worker.postMessage('clear').then(null, e => {\n DEBUG_BUILD && logger.warn('[Replay] Sending \"clear\" message to worker failed', e);\n });\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n return this._earliestTimestamp;\n }\n\n /**\n * Send the event to the worker.\n */\n private _sendEventToWorker(data: string): Promise {\n return this._worker.postMessage('addEvent', data);\n }\n\n /**\n * Finish the request and return the compressed data from the worker.\n */\n private async _finishRequest(): Promise {\n const response = await this._worker.postMessage('finish');\n\n this._earliestTimestamp = null;\n this._totalSize = 0;\n\n return response;\n }\n}\n","import type { ReplayRecordingData } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { AddEventResult, EventBuffer, EventBufferType, RecordingEvent } from '../types';\nimport { logInfo } from '../util/log';\nimport { EventBufferArray } from './EventBufferArray';\nimport { EventBufferCompressionWorker } from './EventBufferCompressionWorker';\n\n/**\n * This proxy will try to use the compression worker, and fall back to use the simple buffer if an error occurs there.\n * This can happen e.g. if the worker cannot be loaded.\n * Exported only for testing.\n */\nexport class EventBufferProxy implements EventBuffer {\n private _fallback: EventBufferArray;\n private _compression: EventBufferCompressionWorker;\n private _used: EventBuffer;\n private _ensureWorkerIsLoadedPromise: Promise;\n\n public constructor(worker: Worker) {\n this._fallback = new EventBufferArray();\n this._compression = new EventBufferCompressionWorker(worker);\n this._used = this._fallback;\n\n this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded();\n }\n\n /** @inheritdoc */\n public get type(): EventBufferType {\n return this._used.type;\n }\n\n /** @inheritDoc */\n public get hasEvents(): boolean {\n return this._used.hasEvents;\n }\n\n /** @inheritdoc */\n public get hasCheckout(): boolean {\n return this._used.hasCheckout;\n }\n /** @inheritdoc */\n public set hasCheckout(value: boolean) {\n this._used.hasCheckout = value;\n }\n\n /** @inheritDoc */\n public destroy(): void {\n this._fallback.destroy();\n this._compression.destroy();\n }\n\n /** @inheritdoc */\n public clear(): void {\n return this._used.clear();\n }\n\n /** @inheritdoc */\n public getEarliestTimestamp(): number | null {\n return this._used.getEarliestTimestamp();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfully added.\n */\n public addEvent(event: RecordingEvent): Promise {\n return this._used.addEvent(event);\n }\n\n /** @inheritDoc */\n public async finish(): Promise {\n // Ensure the worker is loaded, so the sent event is compressed\n await this.ensureWorkerIsLoaded();\n\n return this._used.finish();\n }\n\n /** Ensure the worker has loaded. */\n public ensureWorkerIsLoaded(): Promise {\n return this._ensureWorkerIsLoadedPromise;\n }\n\n /** Actually check if the worker has been loaded. */\n private async _ensureWorkerIsLoaded(): Promise {\n try {\n await this._compression.ensureReady();\n } catch (error) {\n // If the worker fails to load, we fall back to the simple buffer.\n // Nothing more to do from our side here\n logInfo('[Replay] Failed to load the compression worker, falling back to simple buffer');\n return;\n }\n\n // Now we need to switch over the array buffer to the compression worker\n await this._switchToCompressionWorker();\n }\n\n /** Switch the used buffer to the compression worker. */\n private async _switchToCompressionWorker(): Promise {\n const { events, hasCheckout } = this._fallback;\n\n const addEventPromises: Promise[] = [];\n for (const event of events) {\n addEventPromises.push(this._compression.addEvent(event));\n }\n\n this._compression.hasCheckout = hasCheckout;\n\n // We switch over to the new buffer immediately - any further events will be added\n // after the previously buffered ones\n this._used = this._compression;\n\n // Wait for original events to be re-added before resolving\n try {\n await Promise.all(addEventPromises);\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to add events when switching buffers.', error);\n }\n }\n}\n","import { getWorkerURL } from '@sentry-internal/replay-worker';\n\nimport type { EventBuffer } from '../types';\nimport { logInfo } from '../util/log';\nimport { EventBufferArray } from './EventBufferArray';\nimport { EventBufferProxy } from './EventBufferProxy';\n\ninterface CreateEventBufferParams {\n useCompression: boolean;\n workerUrl?: string;\n}\n\n// Treeshakable guard to remove the code of the included compression worker\ndeclare const __SENTRY_EXCLUDE_REPLAY_WORKER__: boolean;\n\n/**\n * Create an event buffer for replays.\n */\nexport function createEventBuffer({\n useCompression,\n workerUrl: customWorkerUrl,\n}: CreateEventBufferParams): EventBuffer {\n if (\n useCompression &&\n // eslint-disable-next-line no-restricted-globals\n window.Worker\n ) {\n const worker = _loadWorker(customWorkerUrl);\n\n if (worker) {\n return worker;\n }\n }\n\n logInfo('[Replay] Using simple buffer');\n return new EventBufferArray();\n}\n\nfunction _loadWorker(customWorkerUrl?: string): EventBufferProxy | void {\n try {\n const workerUrl = customWorkerUrl || _getWorkerUrl();\n\n if (!workerUrl) {\n return;\n }\n\n logInfo(`[Replay] Using compression worker${customWorkerUrl ? ` from ${customWorkerUrl}` : ''}`);\n const worker = new Worker(workerUrl);\n return new EventBufferProxy(worker);\n } catch (error) {\n logInfo('[Replay] Failed to create compression worker');\n // Fall back to use simple event buffer array\n }\n}\n\nfunction _getWorkerUrl(): string {\n if (typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ === 'undefined' || !__SENTRY_EXCLUDE_REPLAY_WORKER__) {\n return getWorkerURL();\n }\n\n return '';\n}\n","import { WINDOW } from '../constants';\n\n/** If sessionStorage is available. */\nexport function hasSessionStorage(): boolean {\n try {\n // This can throw, e.g. when being accessed in a sandboxed iframe\n return 'sessionStorage' in WINDOW && !!WINDOW.sessionStorage;\n } catch {\n return false;\n }\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../../src/constants';\nimport type { ReplayContainer } from '../../src/types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\n\n/**\n * Removes the session from Session Storage and unsets session in replay instance\n */\nexport function clearSession(replay: ReplayContainer): void {\n deleteSession();\n replay.session = undefined;\n}\n\n/**\n * Deletes a session from storage\n */\nfunction deleteSession(): void {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.removeItem(REPLAY_SESSION_KEY);\n } catch {\n // Ignore potential SecurityError exceptions\n }\n}\n","/**\n * Given a sample rate, returns true if replay should be sampled.\n *\n * 1.0 = 100% sampling\n * 0.0 = 0% sampling\n */\nexport function isSampled(sampleRate?: number): boolean {\n if (sampleRate === undefined) {\n return false;\n }\n\n // Math.random() returns a number in range of 0 to 1 (inclusive of 0, but not 1)\n return Math.random() < sampleRate;\n}\n","import { uuid4 } from '@sentry/utils';\n\nimport type { Sampled, Session } from '../types';\n\n/**\n * Get a session with defaults & applied sampling.\n */\nexport function makeSession(session: Partial & { sampled: Sampled }): Session {\n const now = Date.now();\n const id = session.id || uuid4();\n // Note that this means we cannot set a started/lastActivity of `0`, but this should not be relevant outside of tests.\n const started = session.started || now;\n const lastActivity = session.lastActivity || now;\n const segmentId = session.segmentId || 0;\n const sampled = session.sampled;\n const previousSessionId = session.previousSessionId;\n\n return {\n id,\n started,\n lastActivity,\n segmentId,\n sampled,\n previousSessionId,\n };\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../constants';\nimport type { Session } from '../types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\n\n/**\n * Save a session to session storage.\n */\nexport function saveSession(session: Session): void {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));\n } catch {\n // Ignore potential SecurityError exceptions\n }\n}\n","import type { Sampled, Session, SessionOptions } from '../types';\nimport { isSampled } from '../util/isSampled';\nimport { makeSession } from './Session';\nimport { saveSession } from './saveSession';\n\n/**\n * Get the sampled status for a session based on sample rates & current sampled status.\n */\nexport function getSessionSampleType(sessionSampleRate: number, allowBuffering: boolean): Sampled {\n return isSampled(sessionSampleRate) ? 'session' : allowBuffering ? 'buffer' : false;\n}\n\n/**\n * Create a new session, which in its current implementation is a Sentry event\n * that all replays will be saved to as attachments. Currently, we only expect\n * one of these Sentry events per \"replay session\".\n */\nexport function createSession(\n { sessionSampleRate, allowBuffering, stickySession = false }: SessionOptions,\n { previousSessionId }: { previousSessionId?: string } = {},\n): Session {\n const sampled = getSessionSampleType(sessionSampleRate, allowBuffering);\n const session = makeSession({\n sampled,\n previousSessionId,\n });\n\n if (stickySession) {\n saveSession(session);\n }\n\n return session;\n}\n","import { REPLAY_SESSION_KEY, WINDOW } from '../constants';\nimport type { Session } from '../types';\nimport { hasSessionStorage } from '../util/hasSessionStorage';\nimport { logInfoNextTick } from '../util/log';\nimport { makeSession } from './Session';\n\n/**\n * Fetches a session from storage\n */\nexport function fetchSession(traceInternals?: boolean): Session | null {\n if (!hasSessionStorage()) {\n return null;\n }\n\n try {\n // This can throw if cookies are disabled\n const sessionStringFromStorage = WINDOW.sessionStorage.getItem(REPLAY_SESSION_KEY);\n\n if (!sessionStringFromStorage) {\n return null;\n }\n\n const sessionObj = JSON.parse(sessionStringFromStorage) as Session;\n\n logInfoNextTick('[Replay] Loading existing session', traceInternals);\n\n return makeSession(sessionObj);\n } catch {\n return null;\n }\n}\n","/**\n * Given an initial timestamp and an expiry duration, checks to see if current\n * time should be considered as expired.\n */\nexport function isExpired(\n initialTime: null | number,\n expiry: undefined | number,\n targetTime: number = +new Date(),\n): boolean {\n // Always expired if < 0\n if (initialTime === null || expiry === undefined || expiry < 0) {\n return true;\n }\n\n // Never expires if == 0\n if (expiry === 0) {\n return false;\n }\n\n return initialTime + expiry <= targetTime;\n}\n","import type { Session } from '../types';\nimport { isExpired } from './isExpired';\n\n/**\n * Checks to see if session is expired\n */\nexport function isSessionExpired(\n session: Session,\n {\n maxReplayDuration,\n sessionIdleExpire,\n targetTime = Date.now(),\n }: { maxReplayDuration: number; sessionIdleExpire: number; targetTime?: number },\n): boolean {\n return (\n // First, check that maximum session length has not been exceeded\n isExpired(session.started, maxReplayDuration, targetTime) ||\n // check that the idle timeout has not been exceeded (i.e. user has\n // performed an action within the last `sessionIdleExpire` ms)\n isExpired(session.lastActivity, sessionIdleExpire, targetTime)\n );\n}\n","import type { Session } from '../types';\nimport { isSessionExpired } from '../util/isSessionExpired';\n\n/** If the session should be refreshed or not. */\nexport function shouldRefreshSession(\n session: Session,\n { sessionIdleExpire, maxReplayDuration }: { sessionIdleExpire: number; maxReplayDuration: number },\n): boolean {\n // If not expired, all good, just keep the session\n if (!isSessionExpired(session, { sessionIdleExpire, maxReplayDuration })) {\n return false;\n }\n\n // If we are buffering & haven't ever flushed yet, always continue\n if (session.sampled === 'buffer' && session.segmentId === 0) {\n return false;\n }\n\n return true;\n}\n","import type { Session, SessionOptions } from '../types';\nimport { logInfoNextTick } from '../util/log';\nimport { createSession } from './createSession';\nimport { fetchSession } from './fetchSession';\nimport { shouldRefreshSession } from './shouldRefreshSession';\n\n/**\n * Get or create a session, when initializing the replay.\n * Returns a session that may be unsampled.\n */\nexport function loadOrCreateSession(\n {\n traceInternals,\n sessionIdleExpire,\n maxReplayDuration,\n previousSessionId,\n }: {\n sessionIdleExpire: number;\n maxReplayDuration: number;\n traceInternals?: boolean;\n previousSessionId?: string;\n },\n sessionOptions: SessionOptions,\n): Session {\n const existingSession = sessionOptions.stickySession && fetchSession(traceInternals);\n\n // No session exists yet, just create a new one\n if (!existingSession) {\n logInfoNextTick('[Replay] Creating new session', traceInternals);\n return createSession(sessionOptions, { previousSessionId });\n }\n\n if (!shouldRefreshSession(existingSession, { sessionIdleExpire, maxReplayDuration })) {\n return existingSession;\n }\n\n logInfoNextTick('[Replay] Session in sessionStorage is expired, creating new one...');\n return createSession(sessionOptions, { previousSessionId: existingSession.id });\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport { getClient } from '@sentry/core';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { EventBufferSizeExceededError } from '../eventBuffer/error';\nimport type { AddEventResult, RecordingEvent, ReplayContainer, ReplayFrameEvent, ReplayPluginOptions } from '../types';\nimport { logInfo } from './log';\nimport { timestampToMs } from './timestamp';\n\nfunction isCustomEvent(event: RecordingEvent): event is ReplayFrameEvent {\n return event.type === EventType.Custom;\n}\n\n/**\n * Add an event to the event buffer.\n * In contrast to `addEvent`, this does not return a promise & does not wait for the adding of the event to succeed/fail.\n * Instead this returns `true` if we tried to add the event, else false.\n * It returns `false` e.g. if we are paused, disabled, or out of the max replay duration.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nexport function addEventSync(replay: ReplayContainer, event: RecordingEvent, isCheckout?: boolean): boolean {\n if (!shouldAddEvent(replay, event)) {\n return false;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _addEvent(replay, event, isCheckout);\n\n return true;\n}\n\n/**\n * Add an event to the event buffer.\n * Resolves to `null` if no event was added, else to `void`.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nexport function addEvent(\n replay: ReplayContainer,\n event: RecordingEvent,\n isCheckout?: boolean,\n): Promise {\n if (!shouldAddEvent(replay, event)) {\n return Promise.resolve(null);\n }\n\n return _addEvent(replay, event, isCheckout);\n}\n\nasync function _addEvent(\n replay: ReplayContainer,\n event: RecordingEvent,\n isCheckout?: boolean,\n): Promise {\n if (!replay.eventBuffer) {\n return null;\n }\n\n try {\n if (isCheckout && replay.recordingMode === 'buffer') {\n replay.eventBuffer.clear();\n }\n\n if (isCheckout) {\n replay.eventBuffer.hasCheckout = true;\n }\n\n const replayOptions = replay.getOptions();\n\n const eventAfterPossibleCallback = maybeApplyCallback(event, replayOptions.beforeAddRecordingEvent);\n\n if (!eventAfterPossibleCallback) {\n return;\n }\n\n return await replay.eventBuffer.addEvent(eventAfterPossibleCallback);\n } catch (error) {\n const reason = error && error instanceof EventBufferSizeExceededError ? 'addEventSizeExceeded' : 'addEvent';\n\n DEBUG_BUILD && logger.error(error);\n await replay.stop({ reason });\n\n const client = getClient();\n\n if (client) {\n client.recordDroppedEvent('internal_sdk_error', 'replay');\n }\n }\n}\n\n/** Exported only for tests. */\nexport function shouldAddEvent(replay: ReplayContainer, event: RecordingEvent): boolean {\n if (!replay.eventBuffer || replay.isPaused() || !replay.isEnabled()) {\n return false;\n }\n\n const timestampInMs = timestampToMs(event.timestamp);\n\n // Throw out events that happen more than 5 minutes ago. This can happen if\n // page has been left open and idle for a long period of time and user\n // comes back to trigger a new session. The performance entries rely on\n // `performance.timeOrigin`, which is when the page first opened.\n if (timestampInMs + replay.timeouts.sessionIdlePause < Date.now()) {\n return false;\n }\n\n // Throw out events that are +60min from the initial timestamp\n if (timestampInMs > replay.getContext().initialTimestamp + replay.getOptions().maxReplayDuration) {\n logInfo(\n `[Replay] Skipping event with timestamp ${timestampInMs} because it is after maxReplayDuration`,\n replay.getOptions()._experiments.traceInternals,\n );\n return false;\n }\n\n return true;\n}\n\nfunction maybeApplyCallback(\n event: RecordingEvent,\n callback: ReplayPluginOptions['beforeAddRecordingEvent'],\n): RecordingEvent | null | undefined {\n try {\n if (typeof callback === 'function' && isCustomEvent(event)) {\n return callback(event);\n }\n } catch (error) {\n DEBUG_BUILD &&\n logger.error('[Replay] An error occured in the `beforeAddRecordingEvent` callback, skipping the event...', error);\n return null;\n }\n\n return event;\n}\n","import type { ErrorEvent, Event, FeedbackEvent, ReplayEvent, TransactionEvent } from '@sentry/types';\n\n/** If the event is an error event */\nexport function isErrorEvent(event: Event): event is ErrorEvent {\n return !event.type;\n}\n\n/** If the event is a transaction event */\nexport function isTransactionEvent(event: Event): event is TransactionEvent {\n return event.type === 'transaction';\n}\n\n/** If the event is an replay event */\nexport function isReplayEvent(event: Event): event is ReplayEvent {\n return event.type === 'replay_event';\n}\n\n/** If the event is a feedback event */\nexport function isFeedbackEvent(event: Event): event is FeedbackEvent {\n return event.type === 'feedback';\n}\n","import { getClient } from '@sentry/core';\nimport type { ErrorEvent, Event, TransactionEvent, Transport, TransportMakeRequestResponse } from '@sentry/types';\n\nimport type { ReplayContainer } from '../types';\nimport { isErrorEvent, isTransactionEvent } from '../util/eventUtils';\n\ntype AfterSendEventCallback = (event: Event, sendResponse: TransportMakeRequestResponse | void) => void;\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nexport function handleAfterSendEvent(replay: ReplayContainer): AfterSendEventCallback {\n // Custom transports may still be returning `Promise`, which means we cannot expect the status code to be available there\n // TODO (v8): remove this check as it will no longer be necessary\n const enforceStatusCode = isBaseTransportSend();\n\n return (event: Event, sendResponse: TransportMakeRequestResponse | void) => {\n if (!replay.isEnabled() || (!isErrorEvent(event) && !isTransactionEvent(event))) {\n return;\n }\n\n const statusCode = sendResponse && sendResponse.statusCode;\n\n // We only want to do stuff on successful error sending, otherwise you get error replays without errors attached\n // If not using the base transport, we allow `undefined` response (as a custom transport may not implement this correctly yet)\n // If we do use the base transport, we skip if we encountered an non-OK status code\n if (enforceStatusCode && (!statusCode || statusCode < 200 || statusCode >= 300)) {\n return;\n }\n\n if (isTransactionEvent(event)) {\n handleTransactionEvent(replay, event);\n return;\n }\n\n handleErrorEvent(replay, event);\n };\n}\n\nfunction handleTransactionEvent(replay: ReplayContainer, event: TransactionEvent): void {\n const replayContext = replay.getContext();\n\n // Collect traceIds in _context regardless of `recordingMode`\n // In error mode, _context gets cleared on every checkout\n // We limit to max. 100 transactions linked\n if (event.contexts && event.contexts.trace && event.contexts.trace.trace_id && replayContext.traceIds.size < 100) {\n replayContext.traceIds.add(event.contexts.trace.trace_id as string);\n }\n}\n\nfunction handleErrorEvent(replay: ReplayContainer, event: ErrorEvent): void {\n const replayContext = replay.getContext();\n\n // Add error to list of errorIds of replay. This is ok to do even if not\n // sampled because context will get reset at next checkout.\n // XXX: There is also a race condition where it's possible to capture an\n // error to Sentry before Replay SDK has loaded, but response returns after\n // it was loaded, and this gets called.\n // We limit to max. 100 errors linked\n if (event.event_id && replayContext.errorIds.size < 100) {\n replayContext.errorIds.add(event.event_id);\n }\n\n // If error event is tagged with replay id it means it was sampled (when in buffer mode)\n // Need to be very careful that this does not cause an infinite loop\n if (replay.recordingMode !== 'buffer' || !event.tags || !event.tags.replayId) {\n return;\n }\n\n const { beforeErrorSampling } = replay.getOptions();\n if (typeof beforeErrorSampling === 'function' && !beforeErrorSampling(event)) {\n return;\n }\n\n setTimeout(() => {\n // Capture current event buffer as new replay\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.sendBufferedReplayOrFlush();\n });\n}\n\nfunction isBaseTransportSend(): boolean {\n const client = getClient();\n if (!client) {\n return false;\n }\n\n const transport = client.getTransport();\n if (!transport) {\n return false;\n }\n\n return (\n (transport.send as Transport['send'] & { __sentry__baseTransport__?: true }).__sentry__baseTransport__ || false\n );\n}\n","import type { ErrorEvent, Event } from '@sentry/types';\n\nimport type { ReplayContainer } from '../types';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { isErrorEvent } from '../util/eventUtils';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\n\ntype BeforeSendEventCallback = (event: Event) => void;\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nexport function handleBeforeSendEvent(replay: ReplayContainer): BeforeSendEventCallback {\n return (event: Event) => {\n if (!replay.isEnabled() || !isErrorEvent(event)) {\n return;\n }\n\n handleHydrationError(replay, event);\n };\n}\n\nfunction handleHydrationError(replay: ReplayContainer, event: ErrorEvent): void {\n const exceptionValue = event.exception && event.exception.values && event.exception.values[0].value;\n if (typeof exceptionValue !== 'string') {\n return;\n }\n\n if (\n // Only matches errors in production builds of react-dom\n // Example https://reactjs.org/docs/error-decoder.html?invariant=423\n exceptionValue.match(/reactjs\\.org\\/docs\\/error-decoder\\.html\\?invariant=(418|419|422|423|425)/) ||\n // Development builds of react-dom\n // Error 1: Hydration failed because the initial UI does not match what was rendered on the server.\n // Error 2: Text content does not match server-rendered HTML. Warning: Text content did not match.\n exceptionValue.match(/(does not match server-rendered HTML|Hydration failed because)/i)\n ) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.hydrate-error',\n });\n addBreadcrumbEvent(replay, breadcrumb);\n }\n}\n","import type { Event, EventHint } from '@sentry/types';\n\n/**\n * Returns true if we think the given event is an error originating inside of rrweb.\n */\nexport function isRrwebError(event: Event, hint: EventHint): boolean {\n if (event.type || !event.exception || !event.exception.values || !event.exception.values.length) {\n return false;\n }\n\n // @ts-expect-error this may be set by rrweb when it finds errors\n if (hint.originalException && hint.originalException.__rrweb__) {\n return true;\n }\n\n return false;\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport type { FeedbackEvent } from '@sentry/types';\n\nimport type { ReplayBreadcrumbFrameEvent, ReplayContainer } from '../../types';\n\n/**\n * Add a feedback breadcrumb event to replay.\n */\nexport function addFeedbackBreadcrumb(replay: ReplayContainer, event: FeedbackEvent): void {\n replay.triggerUserActivity();\n replay.addUpdate(() => {\n if (!event.timestamp) {\n // Ignore events that don't have timestamps (this shouldn't happen, more of a typing issue)\n // Return true here so that we don't flush\n return true;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: event.timestamp * 1000,\n data: {\n tag: 'breadcrumb',\n payload: {\n timestamp: event.timestamp,\n type: 'default',\n category: 'sentry.feedback',\n data: {\n feedbackId: event.event_id,\n },\n },\n },\n } as ReplayBreadcrumbFrameEvent);\n\n return false;\n });\n}\n","import type { Event } from '@sentry/types';\n\nimport { UNABLE_TO_SEND_REPLAY } from '../../constants';\nimport type { ReplayContainer } from '../../types';\nimport { isSampled } from '../../util/isSampled';\n\n/**\n * Determine if event should be sampled (only applies in buffer mode).\n * When an event is captured by `hanldleGlobalEvent`, when in buffer mode\n * we determine if we want to sample the error or not.\n */\nexport function shouldSampleForBufferEvent(replay: ReplayContainer, event: Event): boolean {\n if (replay.recordingMode !== 'buffer') {\n return false;\n }\n\n // ignore this error because otherwise we could loop indefinitely with\n // trying to capture replay and failing\n if (event.message === UNABLE_TO_SEND_REPLAY) {\n return false;\n }\n\n // Require the event to be an error event & to have an exception\n if (!event.exception || event.type) {\n return false;\n }\n\n return isSampled(replay.getOptions().errorSampleRate);\n}\n","import type { Event, EventHint } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { ReplayContainer } from '../types';\nimport { isErrorEvent, isFeedbackEvent, isReplayEvent, isTransactionEvent } from '../util/eventUtils';\nimport { isRrwebError } from '../util/isRrwebError';\nimport { handleAfterSendEvent } from './handleAfterSendEvent';\nimport { addFeedbackBreadcrumb } from './util/addFeedbackBreadcrumb';\nimport { shouldSampleForBufferEvent } from './util/shouldSampleForBufferEvent';\n\n/**\n * Returns a listener to be added to `addEventProcessor(listener)`.\n */\nexport function handleGlobalEventListener(\n replay: ReplayContainer,\n includeAfterSendEventHandling = false,\n): (event: Event, hint: EventHint) => Event | null {\n const afterSendHandler = includeAfterSendEventHandling ? handleAfterSendEvent(replay) : undefined;\n\n return Object.assign(\n (event: Event, hint: EventHint) => {\n // Do nothing if replay has been disabled\n if (!replay.isEnabled()) {\n return event;\n }\n\n if (isReplayEvent(event)) {\n // Replays have separate set of breadcrumbs, do not include breadcrumbs\n // from core SDK\n delete event.breadcrumbs;\n return event;\n }\n\n // We only want to handle errors, transactions, and feedbacks, nothing else\n if (!isErrorEvent(event) && !isTransactionEvent(event) && !isFeedbackEvent(event)) {\n return event;\n }\n\n // Ensure we do not add replay_id if the session is expired\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (!isSessionActive) {\n return event;\n }\n\n if (isFeedbackEvent(event)) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.flush();\n event.contexts.feedback.replay_id = replay.getSessionId();\n // Add a replay breadcrumb for this piece of feedback\n addFeedbackBreadcrumb(replay, event);\n return event;\n }\n\n // Unless `captureExceptions` is enabled, we want to ignore errors coming from rrweb\n // As there can be a bunch of stuff going wrong in internals there, that we don't want to bubble up to users\n if (isRrwebError(event, hint) && !replay.getOptions()._experiments.captureExceptions) {\n DEBUG_BUILD && logger.log('[Replay] Ignoring error from rrweb internals', event);\n return null;\n }\n\n // When in buffer mode, we decide to sample here.\n // Later, in `handleAfterSendEvent`, if the replayId is set, we know that we sampled\n // And convert the buffer session to a full session\n const isErrorEventSampled = shouldSampleForBufferEvent(replay, event);\n\n // Tag errors if it has been sampled in buffer mode, or if it is session mode\n // Only tag transactions if in session mode\n const shouldTagReplayId = isErrorEventSampled || replay.recordingMode === 'session';\n\n if (shouldTagReplayId) {\n event.tags = { ...event.tags, replayId: replay.getSessionId() };\n }\n\n // In cases where a custom client is used that does not support the new hooks (yet),\n // we manually call this hook method here\n if (afterSendHandler) {\n // Pretend the error had a 200 response so we always capture it\n afterSendHandler(event, { statusCode: 200 });\n }\n\n return event;\n },\n { id: 'Replay' },\n );\n}\n","import { EventType } from '@sentry-internal/rrweb';\n\nimport type { AddEventResult, AllEntryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\n\n/**\n * Create a \"span\" for each performance entry.\n */\nexport function createPerformanceSpans(\n replay: ReplayContainer,\n entries: ReplayPerformanceEntry[],\n): Promise[] {\n return entries.map(({ type, start, end, name, data }) => {\n const response = replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: start,\n data: {\n tag: 'performanceSpan',\n payload: {\n op: type,\n description: name,\n startTimestamp: start,\n endTimestamp: end,\n data,\n },\n },\n });\n\n // If response is a string, it means its either THROTTLED or SKIPPED\n return typeof response === 'string' ? Promise.resolve(null) : response;\n });\n}\n","import type { HandlerDataHistory } from '@sentry/types';\n\nimport type { HistoryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { createPerformanceSpans } from '../util/createPerformanceSpans';\n\nfunction handleHistory(handlerData: HandlerDataHistory): ReplayPerformanceEntry {\n const { from, to } = handlerData;\n\n const now = Date.now() / 1000;\n\n return {\n type: 'navigation.push',\n start: now,\n end: now,\n name: to,\n data: {\n previous: from,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addHistoryInstrumentationHandler(listener)`.\n */\nexport function handleHistorySpanListener(replay: ReplayContainer): (handlerData: HandlerDataHistory) => void {\n return (handlerData: HandlerDataHistory) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleHistory(handlerData);\n\n if (result === null) {\n return;\n }\n\n // Need to collect visited URLs\n replay.getContext().urls.push(result.name);\n replay.triggerUserActivity();\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning false to flush\n return false;\n });\n };\n}\n","import { getClient, isSentryRequestUrl } from '@sentry/core';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { ReplayContainer } from '../types';\n\n/**\n * Check whether a given request URL should be filtered out. This is so we\n * don't log Sentry ingest requests.\n */\nexport function shouldFilterRequest(replay: ReplayContainer, url: string): boolean {\n // If we enabled the `traceInternals` experiment, we want to trace everything\n if (DEBUG_BUILD && replay.getOptions()._experiments.traceInternals) {\n return false;\n }\n\n return isSentryRequestUrl(url, getClient());\n}\n","import type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../../types';\nimport { createPerformanceSpans } from '../../util/createPerformanceSpans';\nimport { shouldFilterRequest } from '../../util/shouldFilterRequest';\n\n/** Add a performance entry breadcrumb */\nexport function addNetworkBreadcrumb(\n replay: ReplayContainer,\n result: ReplayPerformanceEntry | null,\n): void {\n if (!replay.isEnabled()) {\n return;\n }\n\n if (result === null) {\n return;\n }\n\n if (shouldFilterRequest(replay, result.name)) {\n return;\n }\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning true will cause `addUpdate` to not flush\n // We do not want network requests to cause a flush. This will prevent\n // recurring/polling requests from keeping the replay session alive.\n return true;\n });\n}\n","import type { HandlerDataFetch } from '@sentry/types';\n\nimport type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { addNetworkBreadcrumb } from './util/addNetworkBreadcrumb';\n\n/** only exported for tests */\nexport function handleFetch(handlerData: HandlerDataFetch): null | ReplayPerformanceEntry {\n const { startTimestamp, endTimestamp, fetchData, response } = handlerData;\n\n if (!endTimestamp) {\n return null;\n }\n\n // This is only used as a fallback, so we know the body sizes are never set here\n const { method, url } = fetchData;\n\n return {\n type: 'resource.fetch',\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: {\n method,\n statusCode: response ? (response as Response).status : undefined,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addFetchInstrumentationHandler(listener)`.\n */\nexport function handleFetchSpanListener(replay: ReplayContainer): (handlerData: HandlerDataFetch) => void {\n return (handlerData: HandlerDataFetch) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleFetch(handlerData);\n\n addNetworkBreadcrumb(replay, result);\n };\n}\n","import type { HandlerDataXhr } from '@sentry/types';\nimport { SENTRY_XHR_DATA_KEY } from '@sentry/utils';\n\nimport type { NetworkRequestData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { addNetworkBreadcrumb } from './util/addNetworkBreadcrumb';\n\n/** only exported for tests */\nexport function handleXhr(handlerData: HandlerDataXhr): ReplayPerformanceEntry | null {\n const { startTimestamp, endTimestamp, xhr } = handlerData;\n\n const sentryXhrData = xhr[SENTRY_XHR_DATA_KEY];\n\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return null;\n }\n\n // This is only used as a fallback, so we know the body sizes are never set here\n const { method, url, status_code: statusCode } = sentryXhrData;\n\n if (url === undefined) {\n return null;\n }\n\n return {\n type: 'resource.xhr',\n name: url,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n data: {\n method,\n statusCode,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addXhrInstrumentationHandler(listener)`.\n */\nexport function handleXhrSpanListener(replay: ReplayContainer): (handlerData: HandlerDataXhr) => void {\n return (handlerData: HandlerDataXhr) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleXhr(handlerData);\n\n addNetworkBreadcrumb(replay, result);\n };\n}\n","import type { TextEncoderInternal } from '@sentry/types';\nimport { dropUndefinedKeys, logger, stringMatchesSomePattern } from '@sentry/utils';\n\nimport { NETWORK_BODY_MAX_SIZE, WINDOW } from '../../constants';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type {\n NetworkBody,\n NetworkMetaWarning,\n NetworkRequestData,\n ReplayNetworkRequestData,\n ReplayNetworkRequestOrResponse,\n ReplayPerformanceEntry,\n} from '../../types';\n\n/** Get the size of a body. */\nexport function getBodySize(\n body: RequestInit['body'],\n textEncoder: TextEncoder | TextEncoderInternal,\n): number | undefined {\n if (!body) {\n return undefined;\n }\n\n try {\n if (typeof body === 'string') {\n return textEncoder.encode(body).length;\n }\n\n if (body instanceof URLSearchParams) {\n return textEncoder.encode(body.toString()).length;\n }\n\n if (body instanceof FormData) {\n const formDataStr = _serializeFormData(body);\n return textEncoder.encode(formDataStr).length;\n }\n\n if (body instanceof Blob) {\n return body.size;\n }\n\n if (body instanceof ArrayBuffer) {\n return body.byteLength;\n }\n\n // Currently unhandled types: ArrayBufferView, ReadableStream\n } catch {\n // just return undefined\n }\n\n return undefined;\n}\n\n/** Convert a Content-Length header to number/undefined. */\nexport function parseContentLengthHeader(header: string | null | undefined): number | undefined {\n if (!header) {\n return undefined;\n }\n\n const size = parseInt(header, 10);\n return isNaN(size) ? undefined : size;\n}\n\n/** Get the string representation of a body. */\nexport function getBodyString(body: unknown): [string | undefined, NetworkMetaWarning?] {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof URLSearchParams) {\n return [body.toString()];\n }\n\n if (body instanceof FormData) {\n return [_serializeFormData(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('[Replay] Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\n/** Merge a warning into an existing network request/response. */\nexport function mergeWarning(\n info: ReplayNetworkRequestOrResponse | undefined,\n warning: NetworkMetaWarning,\n): ReplayNetworkRequestOrResponse {\n if (!info) {\n return {\n headers: {},\n size: undefined,\n _meta: {\n warnings: [warning],\n },\n };\n }\n\n const newMeta = { ...info._meta };\n const existingWarnings = newMeta.warnings || [];\n newMeta.warnings = [...existingWarnings, warning];\n\n info._meta = newMeta;\n return info;\n}\n\n/** Convert ReplayNetworkRequestData to a PerformanceEntry. */\nexport function makeNetworkReplayBreadcrumb(\n type: string,\n data: ReplayNetworkRequestData | null,\n): ReplayPerformanceEntry | null {\n if (!data) {\n return null;\n }\n\n const { startTimestamp, endTimestamp, url, method, statusCode, request, response } = data;\n\n const result: ReplayPerformanceEntry = {\n type,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: dropUndefinedKeys({\n method,\n statusCode,\n request,\n response,\n }),\n };\n\n return result;\n}\n\n/** Build the request or response part of a replay network breadcrumb that was skipped. */\nexport function buildSkippedNetworkRequestOrResponse(bodySize: number | undefined): ReplayNetworkRequestOrResponse {\n return {\n headers: {},\n size: bodySize,\n _meta: {\n warnings: ['URL_SKIPPED'],\n },\n };\n}\n\n/** Build the request or response part of a replay network breadcrumb. */\nexport function buildNetworkRequestOrResponse(\n headers: Record,\n bodySize: number | undefined,\n body: string | undefined,\n): ReplayNetworkRequestOrResponse | undefined {\n if (!bodySize && Object.keys(headers).length === 0) {\n return undefined;\n }\n\n if (!bodySize) {\n return {\n headers,\n };\n }\n\n if (!body) {\n return {\n headers,\n size: bodySize,\n };\n }\n\n const info: ReplayNetworkRequestOrResponse = {\n headers,\n size: bodySize,\n };\n\n const { body: normalizedBody, warnings } = normalizeNetworkBody(body);\n info.body = normalizedBody;\n if (warnings && warnings.length > 0) {\n info._meta = {\n warnings,\n };\n }\n\n return info;\n}\n\n/** Filter a set of headers */\nexport function getAllowedHeaders(headers: Record, allowedHeaders: string[]): Record {\n return Object.keys(headers).reduce((filteredHeaders: Record, key: string) => {\n const normalizedKey = key.toLowerCase();\n // Avoid putting empty strings into the headers\n if (allowedHeaders.includes(normalizedKey) && headers[key]) {\n filteredHeaders[normalizedKey] = headers[key];\n }\n return filteredHeaders;\n }, {});\n}\n\nfunction _serializeFormData(formData: FormData): string {\n // This is a bit simplified, but gives us a decent estimate\n // This converts e.g. { name: 'Anne Smith', age: 13 } to 'name=Anne+Smith&age=13'\n // @ts-expect-error passing FormData to URLSearchParams actually works\n return new URLSearchParams(formData).toString();\n}\n\nfunction normalizeNetworkBody(body: string | undefined): {\n body: NetworkBody | undefined;\n warnings?: NetworkMetaWarning[];\n} {\n if (!body || typeof body !== 'string') {\n return {\n body,\n };\n }\n\n const exceedsSizeLimit = body.length > NETWORK_BODY_MAX_SIZE;\n const isProbablyJson = _strIsProbablyJson(body);\n\n if (exceedsSizeLimit) {\n const truncatedBody = body.slice(0, NETWORK_BODY_MAX_SIZE);\n\n if (isProbablyJson) {\n return {\n body: truncatedBody,\n warnings: ['MAYBE_JSON_TRUNCATED'],\n };\n }\n\n return {\n body: `${truncatedBody}…`,\n warnings: ['TEXT_TRUNCATED'],\n };\n }\n\n if (isProbablyJson) {\n try {\n const jsonBody = JSON.parse(body);\n return {\n body: jsonBody,\n };\n } catch {\n // fall back to just send the body as string\n }\n }\n\n return {\n body,\n };\n}\n\nfunction _strIsProbablyJson(str: string): boolean {\n const first = str[0];\n const last = str[str.length - 1];\n\n // Simple check: If this does not start & end with {} or [], it's not JSON\n return (first === '[' && last === ']') || (first === '{' && last === '}');\n}\n\n/** Match an URL against a list of strings/Regex. */\nexport function urlMatches(url: string, urls: (string | RegExp)[]): boolean {\n const fullUrl = getFullUrl(url);\n\n return stringMatchesSomePattern(fullUrl, urls);\n}\n\n/** exported for tests */\nexport function getFullUrl(url: string, baseURI = WINDOW.document.baseURI): string {\n // Short circuit for common cases:\n if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith(WINDOW.location.origin)) {\n return url;\n }\n const fixedUrl = new URL(url, baseURI);\n\n // If these do not match, we are not dealing with a relative URL, so just return it\n if (fixedUrl.origin !== new URL(baseURI).origin) {\n return url;\n }\n\n const fullUrl = fixedUrl.href;\n\n // Remove trailing slashes, if they don't match the original URL\n if (!url.endsWith('/') && fullUrl.endsWith('/')) {\n return fullUrl.slice(0, -1);\n }\n\n return fullUrl;\n}\n","import type { Breadcrumb, FetchBreadcrumbData, TextEncoderInternal } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type {\n FetchHint,\n NetworkMetaWarning,\n ReplayContainer,\n ReplayNetworkOptions,\n ReplayNetworkRequestData,\n ReplayNetworkRequestOrResponse,\n} from '../../types';\nimport { addNetworkBreadcrumb } from './addNetworkBreadcrumb';\nimport {\n buildNetworkRequestOrResponse,\n buildSkippedNetworkRequestOrResponse,\n getAllowedHeaders,\n getBodySize,\n getBodyString,\n makeNetworkReplayBreadcrumb,\n mergeWarning,\n parseContentLengthHeader,\n urlMatches,\n} from './networkUtils';\n\n/**\n * Capture a fetch breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nexport async function captureFetchBreadcrumbToReplay(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions & {\n textEncoder: TextEncoderInternal;\n replay: ReplayContainer;\n },\n): Promise {\n try {\n const data = await _prepareFetchData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.fetch', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.error('[Replay] Failed to capture fetch breadcrumb', error);\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nexport function enrichFetchBreadcrumb(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: Partial,\n options: { textEncoder: TextEncoderInternal },\n): void {\n const { input, response } = hint;\n\n const body = input ? _getFetchRequestArgBody(input) : undefined;\n const reqSize = getBodySize(body, options.textEncoder);\n\n const resSize = response ? parseContentLengthHeader(response.headers.get('content-length')) : undefined;\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nasync function _prepareFetchData(\n breadcrumb: Breadcrumb & { data: FetchBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions & {\n textEncoder: TextEncoderInternal;\n },\n): Promise {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n const captureDetails =\n urlMatches(url, options.networkDetailAllowUrls) && !urlMatches(url, options.networkDetailDenyUrls);\n\n const request = captureDetails\n ? _getRequestInfo(options, hint.input, requestBodySize)\n : buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = await _getResponseInfo(captureDetails, options, hint.response, responseBodySize);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n}\n\nfunction _getRequestInfo(\n { networkCaptureBodies, networkRequestHeaders }: ReplayNetworkOptions,\n input: FetchHint['input'] | undefined,\n requestBodySize?: number,\n): ReplayNetworkRequestOrResponse | undefined {\n const headers = input ? getRequestHeaders(input, networkRequestHeaders) : {};\n\n if (!networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, requestBodySize, undefined);\n }\n\n // We only want to transmit string or string-like bodies\n const requestBody = _getFetchRequestArgBody(input);\n const [bodyStr, warning] = getBodyString(requestBody);\n const data = buildNetworkRequestOrResponse(headers, requestBodySize, bodyStr);\n\n if (warning) {\n return mergeWarning(data, warning);\n }\n\n return data;\n}\n\n/** Exported only for tests. */\nexport async function _getResponseInfo(\n captureDetails: boolean,\n {\n networkCaptureBodies,\n textEncoder,\n networkResponseHeaders,\n }: Pick & {\n textEncoder: TextEncoderInternal;\n },\n response: Response | undefined,\n responseBodySize?: number,\n): Promise {\n if (!captureDetails && responseBodySize !== undefined) {\n return buildSkippedNetworkRequestOrResponse(responseBodySize);\n }\n\n const headers = response ? getAllHeaders(response.headers, networkResponseHeaders) : {};\n\n if (!response || (!networkCaptureBodies && responseBodySize !== undefined)) {\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n\n const [bodyText, warning] = await _parseFetchResponseBody(response);\n const result = getResponseData(bodyText, {\n networkCaptureBodies,\n textEncoder,\n responseBodySize,\n captureDetails,\n headers,\n });\n\n if (warning) {\n return mergeWarning(result, warning);\n }\n\n return result;\n}\n\nfunction getResponseData(\n bodyText: string | undefined,\n {\n networkCaptureBodies,\n textEncoder,\n responseBodySize,\n captureDetails,\n headers,\n }: {\n captureDetails: boolean;\n networkCaptureBodies: boolean;\n responseBodySize: number | undefined;\n headers: Record;\n textEncoder: TextEncoderInternal;\n },\n): ReplayNetworkRequestOrResponse | undefined {\n try {\n const size =\n bodyText && bodyText.length && responseBodySize === undefined\n ? getBodySize(bodyText, textEncoder)\n : responseBodySize;\n\n if (!captureDetails) {\n return buildSkippedNetworkRequestOrResponse(size);\n }\n\n if (networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, size, bodyText);\n }\n\n return buildNetworkRequestOrResponse(headers, size, undefined);\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize response body', error);\n // fallback\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n}\n\nasync function _parseFetchResponseBody(response: Response): Promise<[string | undefined, NetworkMetaWarning?]> {\n const res = _tryCloneResponse(response);\n\n if (!res) {\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n try {\n const text = await _tryGetResponseText(res);\n return [text];\n } catch (error) {\n DEBUG_BUILD && logger.warn('[Replay] Failed to get text body from response', error);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n}\n\nfunction _getFetchRequestArgBody(fetchArgs: unknown[] = []): RequestInit['body'] | undefined {\n // We only support getting the body from the fetch options\n if (fetchArgs.length !== 2 || typeof fetchArgs[1] !== 'object') {\n return undefined;\n }\n\n return (fetchArgs[1] as RequestInit).body;\n}\n\nfunction getAllHeaders(headers: Headers, allowedHeaders: string[]): Record {\n const allHeaders: Record = {};\n\n allowedHeaders.forEach(header => {\n if (headers.get(header)) {\n allHeaders[header] = headers.get(header) as string;\n }\n });\n\n return allHeaders;\n}\n\nfunction getRequestHeaders(fetchArgs: unknown[], allowedHeaders: string[]): Record {\n if (fetchArgs.length === 1 && typeof fetchArgs[0] !== 'string') {\n return getHeadersFromOptions(fetchArgs[0] as Request | RequestInit, allowedHeaders);\n }\n\n if (fetchArgs.length === 2) {\n return getHeadersFromOptions(fetchArgs[1] as Request | RequestInit, allowedHeaders);\n }\n\n return {};\n}\n\nfunction getHeadersFromOptions(\n input: Request | RequestInit | undefined,\n allowedHeaders: string[],\n): Record {\n if (!input) {\n return {};\n }\n\n const headers = input.headers;\n\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n return getAllHeaders(headers, allowedHeaders);\n }\n\n // We do not support this, as it is not really documented (anymore?)\n if (Array.isArray(headers)) {\n return {};\n }\n\n return getAllowedHeaders(headers, allowedHeaders);\n}\n\nfunction _tryCloneResponse(response: Response): Response | void {\n try {\n // We have to clone this, as the body can only be read once\n return response.clone();\n } catch (error) {\n // this can throw if the response was already consumed before\n DEBUG_BUILD && logger.warn('[Replay] Failed to clone response body', error);\n }\n}\n\n/**\n * Get the response body of a fetch request, or timeout after 500ms.\n * Fetch can return a streaming body, that may not resolve (or not for a long time).\n * If that happens, we rather abort after a short time than keep waiting for this.\n */\nfunction _tryGetResponseText(response: Response): Promise {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Timeout while trying to read response body')), 500);\n\n _getResponseText(response)\n .then(\n txt => resolve(txt),\n reason => reject(reason),\n )\n .finally(() => clearTimeout(timeout));\n });\n\n return _getResponseText(response);\n}\n\nasync function _getResponseText(response: Response): Promise {\n // Force this to be a promise, just to be safe\n // eslint-disable-next-line no-return-await\n return await response.text();\n}\n","import type { Breadcrumb, TextEncoderInternal, XhrBreadcrumbData } from '@sentry/types';\nimport { SENTRY_XHR_DATA_KEY, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type {\n NetworkMetaWarning,\n ReplayContainer,\n ReplayNetworkOptions,\n ReplayNetworkRequestData,\n XhrHint,\n} from '../../types';\nimport { addNetworkBreadcrumb } from './addNetworkBreadcrumb';\nimport {\n buildNetworkRequestOrResponse,\n buildSkippedNetworkRequestOrResponse,\n getAllowedHeaders,\n getBodySize,\n getBodyString,\n makeNetworkReplayBreadcrumb,\n mergeWarning,\n parseContentLengthHeader,\n urlMatches,\n} from './networkUtils';\n\n/**\n * Capture an XHR breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nexport async function captureXhrBreadcrumbToReplay(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions & { replay: ReplayContainer },\n): Promise {\n try {\n const data = _prepareXhrData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.xhr', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.error('[Replay] Failed to capture xhr breadcrumb', error);\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nexport function enrichXhrBreadcrumb(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: Partial,\n options: { textEncoder: TextEncoderInternal },\n): void {\n const { xhr, input } = hint;\n\n if (!xhr) {\n return;\n }\n\n const reqSize = getBodySize(input, options.textEncoder);\n const resSize = xhr.getResponseHeader('content-length')\n ? parseContentLengthHeader(xhr.getResponseHeader('content-length'))\n : _getBodySize(xhr.response, xhr.responseType, options.textEncoder);\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nfunction _prepareXhrData(\n breadcrumb: Breadcrumb & { data: XhrBreadcrumbData },\n hint: Partial,\n options: ReplayNetworkOptions,\n): ReplayNetworkRequestData | null {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now, input, xhr } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n if (!url) {\n return null;\n }\n\n if (!xhr || !urlMatches(url, options.networkDetailAllowUrls) || urlMatches(url, options.networkDetailDenyUrls)) {\n const request = buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = buildSkippedNetworkRequestOrResponse(responseBodySize);\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n }\n\n const xhrInfo = xhr[SENTRY_XHR_DATA_KEY];\n const networkRequestHeaders = xhrInfo\n ? getAllowedHeaders(xhrInfo.request_headers, options.networkRequestHeaders)\n : {};\n const networkResponseHeaders = getAllowedHeaders(getResponseHeaders(xhr), options.networkResponseHeaders);\n\n const [requestBody, requestWarning] = options.networkCaptureBodies ? getBodyString(input) : [undefined];\n const [responseBody, responseWarning] = options.networkCaptureBodies ? _getXhrResponseBody(xhr) : [undefined];\n\n const request = buildNetworkRequestOrResponse(networkRequestHeaders, requestBodySize, requestBody);\n const response = buildNetworkRequestOrResponse(networkResponseHeaders, responseBodySize, responseBody);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request: requestWarning ? mergeWarning(request, requestWarning) : request,\n response: responseWarning ? mergeWarning(response, responseWarning) : response,\n };\n}\n\nfunction getResponseHeaders(xhr: XMLHttpRequest): Record {\n const headers = xhr.getAllResponseHeaders();\n\n if (!headers) {\n return {};\n }\n\n return headers.split('\\r\\n').reduce((acc: Record, line: string) => {\n const [key, value] = line.split(': ');\n acc[key.toLowerCase()] = value;\n return acc;\n }, {});\n}\n\nfunction _getXhrResponseBody(xhr: XMLHttpRequest): [string | undefined, NetworkMetaWarning?] {\n // We collect errors that happen, but only log them if we can't get any response body\n const errors: unknown[] = [];\n\n try {\n return [xhr.responseText];\n } catch (e) {\n errors.push(e);\n }\n\n // Try to manually parse the response body, if responseText fails\n try {\n return _parseXhrResponse(xhr.response, xhr.responseType);\n } catch (e) {\n errors.push(e);\n }\n\n DEBUG_BUILD && logger.warn('[Replay] Failed to get xhr response body', ...errors);\n\n return [undefined];\n}\n\n/**\n * Get the string representation of the XHR response.\n * Based on MDN, these are the possible types of the response:\n * string\n * ArrayBuffer\n * Blob\n * Document\n * POJO\n *\n * Exported only for tests.\n */\nexport function _parseXhrResponse(\n body: XMLHttpRequest['response'],\n responseType: XMLHttpRequest['responseType'],\n): [string | undefined, NetworkMetaWarning?] {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof Document) {\n return [body.body.outerHTML];\n }\n\n if (responseType === 'json' && body && typeof body === 'object') {\n return [JSON.stringify(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch {\n DEBUG_BUILD && logger.warn('[Replay] Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('[Replay] Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\nfunction _getBodySize(\n body: XMLHttpRequest['response'],\n responseType: XMLHttpRequest['responseType'],\n textEncoder: TextEncoder | TextEncoderInternal,\n): number | undefined {\n try {\n const bodyStr = responseType === 'json' && body && typeof body === 'object' ? JSON.stringify(body) : body;\n return getBodySize(bodyStr, textEncoder);\n } catch {\n return undefined;\n }\n}\n","import { getClient } from '@sentry/core';\nimport type {\n Breadcrumb,\n BreadcrumbHint,\n FetchBreadcrumbData,\n TextEncoderInternal,\n XhrBreadcrumbData,\n} from '@sentry/types';\nimport { addFetchInstrumentationHandler, addXhrInstrumentationHandler, logger } from '@sentry/utils';\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { FetchHint, ReplayContainer, ReplayNetworkOptions, XhrHint } from '../types';\nimport { handleFetchSpanListener } from './handleFetch';\nimport { handleXhrSpanListener } from './handleXhr';\nimport { captureFetchBreadcrumbToReplay, enrichFetchBreadcrumb } from './util/fetchUtils';\nimport { captureXhrBreadcrumbToReplay, enrichXhrBreadcrumb } from './util/xhrUtils';\n\ninterface ExtendedNetworkBreadcrumbsOptions extends ReplayNetworkOptions {\n replay: ReplayContainer;\n textEncoder: TextEncoderInternal;\n}\n\n/**\n * This method does two things:\n * - It enriches the regular XHR/fetch breadcrumbs with request/response size data\n * - It captures the XHR/fetch breadcrumbs to the replay\n * (enriching it with further data that is _not_ added to the regular breadcrumbs)\n */\nexport function handleNetworkBreadcrumbs(replay: ReplayContainer): void {\n const client = getClient();\n\n try {\n const textEncoder = new TextEncoder();\n\n const {\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n } = replay.getOptions();\n\n const options: ExtendedNetworkBreadcrumbsOptions = {\n replay,\n textEncoder,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n };\n\n if (client && client.on) {\n client.on('beforeAddBreadcrumb', (breadcrumb, hint) => beforeAddNetworkBreadcrumb(options, breadcrumb, hint));\n } else {\n // Fallback behavior\n addFetchInstrumentationHandler(handleFetchSpanListener(replay));\n addXhrInstrumentationHandler(handleXhrSpanListener(replay));\n }\n } catch {\n // Do nothing\n }\n}\n\n/** just exported for tests */\nexport function beforeAddNetworkBreadcrumb(\n options: ExtendedNetworkBreadcrumbsOptions,\n breadcrumb: Breadcrumb,\n hint?: BreadcrumbHint,\n): void {\n if (!breadcrumb.data) {\n return;\n }\n\n try {\n if (_isXhrBreadcrumb(breadcrumb) && _isXhrHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichXhrBreadcrumb(breadcrumb, hint, options);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureXhrBreadcrumbToReplay(breadcrumb, hint, options);\n }\n\n if (_isFetchBreadcrumb(breadcrumb) && _isFetchHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichFetchBreadcrumb(breadcrumb, hint, options);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureFetchBreadcrumbToReplay(breadcrumb, hint, options);\n }\n } catch (e) {\n DEBUG_BUILD && logger.warn('Error when enriching network breadcrumb');\n }\n}\n\nfunction _isXhrBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is Breadcrumb & { data: XhrBreadcrumbData } {\n return breadcrumb.category === 'xhr';\n}\n\nfunction _isFetchBreadcrumb(breadcrumb: Breadcrumb): breadcrumb is Breadcrumb & { data: FetchBreadcrumbData } {\n return breadcrumb.category === 'fetch';\n}\n\nfunction _isXhrHint(hint?: BreadcrumbHint): hint is XhrHint {\n return hint && hint.xhr;\n}\n\nfunction _isFetchHint(hint?: BreadcrumbHint): hint is FetchHint {\n return hint && hint.response;\n}\n","import type { Breadcrumb, Scope } from '@sentry/types';\nimport { normalize } from '@sentry/utils';\n\nimport { CONSOLE_ARG_MAX_SIZE } from '../constants';\nimport type { ReplayContainer } from '../types';\nimport type { ReplayFrame } from '../types/replayFrame';\nimport { createBreadcrumb } from '../util/createBreadcrumb';\nimport { addBreadcrumbEvent } from './util/addBreadcrumbEvent';\n\nlet _LAST_BREADCRUMB: null | Breadcrumb = null;\n\ntype BreadcrumbWithCategory = Required>;\n\nfunction isBreadcrumbWithCategory(breadcrumb: Breadcrumb): breadcrumb is BreadcrumbWithCategory {\n return !!breadcrumb.category;\n}\n\nexport const handleScopeListener: (replay: ReplayContainer) => (scope: Scope) => void =\n (replay: ReplayContainer) =>\n (scope: Scope): void => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleScope(scope);\n\n if (!result) {\n return;\n }\n\n addBreadcrumbEvent(replay, result);\n };\n\n/**\n * An event handler to handle scope changes.\n */\nexport function handleScope(scope: Scope): Breadcrumb | null {\n // TODO (v8): Remove this guard. This was put in place because we introduced\n // Scope.getLastBreadcrumb mid-v7 which caused incompatibilities with older SDKs.\n // For now, we'll just return null if the method doesn't exist but we should eventually\n // get rid of this guard.\n const newBreadcrumb = scope.getLastBreadcrumb && scope.getLastBreadcrumb();\n\n // Listener can be called when breadcrumbs have not changed, so we store the\n // reference to the last crumb and only return a crumb if it has changed\n if (_LAST_BREADCRUMB === newBreadcrumb || !newBreadcrumb) {\n return null;\n }\n\n _LAST_BREADCRUMB = newBreadcrumb;\n\n if (\n !isBreadcrumbWithCategory(newBreadcrumb) ||\n ['fetch', 'xhr', 'sentry.event', 'sentry.transaction'].includes(newBreadcrumb.category) ||\n newBreadcrumb.category.startsWith('ui.')\n ) {\n return null;\n }\n\n if (newBreadcrumb.category === 'console') {\n return normalizeConsoleBreadcrumb(newBreadcrumb);\n }\n\n return createBreadcrumb(newBreadcrumb);\n}\n\n/** exported for tests only */\nexport function normalizeConsoleBreadcrumb(\n breadcrumb: Omit & BreadcrumbWithCategory,\n): ReplayFrame {\n const args = breadcrumb.data && breadcrumb.data.arguments;\n\n if (!Array.isArray(args) || args.length === 0) {\n return createBreadcrumb(breadcrumb);\n }\n\n let isTruncated = false;\n\n // Avoid giant args captures\n const normalizedArgs = args.map(arg => {\n if (!arg) {\n return arg;\n }\n if (typeof arg === 'string') {\n if (arg.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n return `${arg.slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n\n return arg;\n }\n if (typeof arg === 'object') {\n try {\n const normalizedArg = normalize(arg, 7);\n const stringified = JSON.stringify(normalizedArg);\n if (stringified.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n // We use the pretty printed JSON string here as a base\n return `${JSON.stringify(normalizedArg, null, 2).slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n return normalizedArg;\n } catch {\n // fall back to default\n }\n }\n\n return arg;\n });\n\n return createBreadcrumb({\n ...breadcrumb,\n data: {\n ...breadcrumb.data,\n arguments: normalizedArgs,\n ...(isTruncated ? { _meta: { warnings: ['CONSOLE_ARG_TRUNCATED'] } } : {}),\n },\n });\n}\n","import type { BaseClient } from '@sentry/core';\nimport { getCurrentScope } from '@sentry/core';\nimport { addEventProcessor, getClient } from '@sentry/core';\nimport type { Client, DynamicSamplingContext } from '@sentry/types';\nimport { addClickKeypressInstrumentationHandler, addHistoryInstrumentationHandler } from '@sentry/utils';\n\nimport { handleAfterSendEvent } from '../coreHandlers/handleAfterSendEvent';\nimport { handleBeforeSendEvent } from '../coreHandlers/handleBeforeSendEvent';\nimport { handleDomListener } from '../coreHandlers/handleDom';\nimport { handleGlobalEventListener } from '../coreHandlers/handleGlobalEvent';\nimport { handleHistorySpanListener } from '../coreHandlers/handleHistory';\nimport { handleNetworkBreadcrumbs } from '../coreHandlers/handleNetworkBreadcrumbs';\nimport { handleScopeListener } from '../coreHandlers/handleScope';\nimport type { ReplayContainer } from '../types';\n\n/**\n * Add global listeners that cannot be removed.\n */\nexport function addGlobalListeners(replay: ReplayContainer): void {\n // Listeners from core SDK //\n const scope = getCurrentScope();\n const client = getClient();\n\n scope.addScopeListener(handleScopeListener(replay));\n addClickKeypressInstrumentationHandler(handleDomListener(replay));\n addHistoryInstrumentationHandler(handleHistorySpanListener(replay));\n handleNetworkBreadcrumbs(replay);\n\n // Tag all (non replay) events that get sent to Sentry with the current\n // replay ID so that we can reference them later in the UI\n const eventProcessor = handleGlobalEventListener(replay, !hasHooks(client));\n if (client && client.addEventProcessor) {\n client.addEventProcessor(eventProcessor);\n } else {\n addEventProcessor(eventProcessor);\n }\n\n // If a custom client has no hooks yet, we continue to use the \"old\" implementation\n if (hasHooks(client)) {\n client.on('beforeSendEvent', handleBeforeSendEvent(replay));\n client.on('afterSendEvent', handleAfterSendEvent(replay));\n client.on('createDsc', (dsc: DynamicSamplingContext) => {\n const replayId = replay.getSessionId();\n // We do not want to set the DSC when in buffer mode, as that means the replay has not been sent (yet)\n if (replayId && replay.isEnabled() && replay.recordingMode === 'session') {\n // Ensure to check that the session is still active - it could have expired in the meanwhile\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (isSessionActive) {\n dsc.replay_id = replayId;\n }\n }\n });\n\n client.on('startTransaction', transaction => {\n replay.lastTransaction = transaction;\n });\n\n // We may be missing the initial startTransaction due to timing issues,\n // so we capture it on finish again.\n client.on('finishTransaction', transaction => {\n replay.lastTransaction = transaction;\n });\n\n // We want to flush replay\n client.on('beforeSendFeedback', (feedbackEvent, options) => {\n const replayId = replay.getSessionId();\n if (options && options.includeReplay && replay.isEnabled() && replayId) {\n // This should never reject\n if (feedbackEvent.contexts && feedbackEvent.contexts.feedback) {\n feedbackEvent.contexts.feedback.replay_id = replayId;\n }\n }\n });\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction hasHooks(client: Client | undefined): client is BaseClient {\n return !!(client && client.on);\n}\n","import { WINDOW } from '../constants';\nimport type { AddEventResult, MemoryData, ReplayContainer, ReplayPerformanceEntry } from '../types';\nimport { createPerformanceSpans } from './createPerformanceSpans';\n\ntype ReplayMemoryEntry = ReplayPerformanceEntry & { data: { memory: MemoryInfo } };\n\ninterface MemoryInfo {\n jsHeapSizeLimit: number;\n totalJSHeapSize: number;\n usedJSHeapSize: number;\n}\n\n/**\n * Create a \"span\" for the total amount of memory being used by JS objects\n * (including v8 internal objects).\n */\nexport async function addMemoryEntry(replay: ReplayContainer): Promise> {\n // window.performance.memory is a non-standard API and doesn't work on all browsers, so we try-catch this\n try {\n return Promise.all(\n createPerformanceSpans(replay, [\n // @ts-expect-error memory doesn't exist on type Performance as the API is non-standard (we check that it exists above)\n createMemoryEntry(WINDOW.performance.memory),\n ]),\n );\n } catch (error) {\n // Do nothing\n return [];\n }\n}\n\nfunction createMemoryEntry(memoryEntry: MemoryInfo): ReplayMemoryEntry {\n const { jsHeapSizeLimit, totalJSHeapSize, usedJSHeapSize } = memoryEntry;\n // we don't want to use `getAbsoluteTime` because it adds the event time to the\n // time origin, so we get the current timestamp instead\n const time = Date.now() / 1000;\n return {\n type: 'memory',\n name: 'memory',\n start: time,\n end: time,\n data: {\n memory: {\n jsHeapSizeLimit,\n totalJSHeapSize,\n usedJSHeapSize,\n },\n },\n };\n}\n","type DebouncedCallback = {\n (): void | unknown;\n flush: () => void | unknown;\n cancel: () => void;\n};\ntype CallbackFunction = () => unknown;\ntype DebounceOptions = { maxWait?: number };\n\n/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\nexport function debounce(func: CallbackFunction, wait: number, options?: DebounceOptions): DebouncedCallback {\n let callbackReturnValue: unknown;\n\n let timerId: ReturnType | undefined;\n let maxTimerId: ReturnType | undefined;\n\n const maxWait = options && options.maxWait ? Math.max(options.maxWait, wait) : 0;\n\n function invokeFunc(): unknown {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers(): void {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush(): unknown {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n\n function debounced(): unknown {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeout(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n","import { EventType } from '@sentry-internal/rrweb';\nimport { logger } from '@sentry/utils';\n\nimport { updateClickDetectorForRecordingEvent } from '../coreHandlers/handleClick';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { saveSession } from '../session/saveSession';\nimport type { RecordingEvent, ReplayContainer, ReplayOptionFrameEvent } from '../types';\nimport { addEventSync } from './addEvent';\nimport { logInfo } from './log';\n\ntype RecordingEmitCallback = (event: RecordingEvent, isCheckout?: boolean) => void;\n\n/**\n * Handler for recording events.\n *\n * Adds to event buffer, and has varying flushing behaviors if the event was a checkout.\n */\nexport function getHandleRecordingEmit(replay: ReplayContainer): RecordingEmitCallback {\n let hadFirstEvent = false;\n\n return (event: RecordingEvent, _isCheckout?: boolean) => {\n // If this is false, it means session is expired, create and a new session and wait for checkout\n if (!replay.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.warn('[Replay] Received replay event after session expired.');\n\n return;\n }\n\n // `_isCheckout` is only set when the checkout is due to `checkoutEveryNms`\n // We also want to treat the first event as a checkout, so we handle this specifically here\n const isCheckout = _isCheckout || !hadFirstEvent;\n hadFirstEvent = true;\n\n if (replay.clickDetector) {\n updateClickDetectorForRecordingEvent(replay.clickDetector, event);\n }\n\n // The handler returns `true` if we do not want to trigger debounced flush, `false` if we want to debounce flush.\n replay.addUpdate(() => {\n // The session is always started immediately on pageload/init, but for\n // error-only replays, it should reflect the most recent checkout\n // when an error occurs. Clear any state that happens before this current\n // checkout. This needs to happen before `addEvent()` which updates state\n // dependent on this reset.\n if (replay.recordingMode === 'buffer' && isCheckout) {\n replay.setInitialState();\n }\n\n // If the event is not added (e.g. due to being paused, disabled, or out of the max replay duration),\n // Skip all further steps\n if (!addEventSync(replay, event, isCheckout)) {\n // Return true to skip scheduling a debounced flush\n return true;\n }\n\n // Different behavior for full snapshots (type=2), ignore other event types\n // See https://github.com/rrweb-io/rrweb/blob/d8f9290ca496712aa1e7d472549480c4e7876594/packages/rrweb/src/types.ts#L16\n if (!isCheckout) {\n return false;\n }\n\n // Additionally, create a meta event that will capture certain SDK settings.\n // In order to handle buffer mode, this needs to either be done when we\n // receive checkout events or at flush time.\n //\n // `isCheckout` is always true, but want to be explicit that it should\n // only be added for checkouts\n addSettingsEvent(replay, isCheckout);\n\n // If there is a previousSessionId after a full snapshot occurs, then\n // the replay session was started due to session expiration. The new session\n // is started before triggering a new checkout and contains the id\n // of the previous session. Do not immediately flush in this case\n // to avoid capturing only the checkout and instead the replay will\n // be captured if they perform any follow-up actions.\n if (replay.session && replay.session.previousSessionId) {\n return true;\n }\n\n // When in buffer mode, make sure we adjust the session started date to the current earliest event of the buffer\n // this should usually be the timestamp of the checkout event, but to be safe...\n if (replay.recordingMode === 'buffer' && replay.session && replay.eventBuffer) {\n const earliestEvent = replay.eventBuffer.getEarliestTimestamp();\n if (earliestEvent) {\n logInfo(\n `[Replay] Updating session start time to earliest event in buffer to ${new Date(earliestEvent)}`,\n replay.getOptions()._experiments.traceInternals,\n );\n\n replay.session.started = earliestEvent;\n\n if (replay.getOptions().stickySession) {\n saveSession(replay.session);\n }\n }\n }\n\n if (replay.recordingMode === 'session') {\n // If the full snapshot is due to an initial load, we will not have\n // a previous session ID. In this case, we want to buffer events\n // for a set amount of time before flushing. This can help avoid\n // capturing replays of users that immediately close the window.\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void replay.flush();\n }\n\n return true;\n });\n };\n}\n\n/**\n * Exported for tests\n */\nexport function createOptionsEvent(replay: ReplayContainer): ReplayOptionFrameEvent {\n const options = replay.getOptions();\n return {\n type: EventType.Custom,\n timestamp: Date.now(),\n data: {\n tag: 'options',\n payload: {\n shouldRecordCanvas: replay.isRecordingCanvas(),\n sessionSampleRate: options.sessionSampleRate,\n errorSampleRate: options.errorSampleRate,\n useCompressionOption: options.useCompression,\n blockAllMedia: options.blockAllMedia,\n maskAllText: options.maskAllText,\n maskAllInputs: options.maskAllInputs,\n useCompression: replay.eventBuffer ? replay.eventBuffer.type === 'worker' : false,\n networkDetailHasUrls: options.networkDetailAllowUrls.length > 0,\n networkCaptureBodies: options.networkCaptureBodies,\n networkRequestHasHeaders: options.networkRequestHeaders.length > 0,\n networkResponseHasHeaders: options.networkResponseHeaders.length > 0,\n },\n },\n };\n}\n\n/**\n * Add a \"meta\" event that contains a simplified view on current configuration\n * options. This should only be included on the first segment of a recording.\n */\nfunction addSettingsEvent(replay: ReplayContainer, isCheckout?: boolean): void {\n // Only need to add this event when sending the first segment\n if (!isCheckout || !replay.session || replay.session.segmentId !== 0) {\n return;\n }\n\n addEventSync(replay, createOptionsEvent(replay), false);\n}\n","import type { DsnComponents, ReplayEnvelope, ReplayEvent, ReplayRecordingData } from '@sentry/types';\nimport { createEnvelope, createEventEnvelopeHeaders, getSdkMetadataForEnvelopeHeader } from '@sentry/utils';\n\n/**\n * Create a replay envelope ready to be sent.\n * This includes both the replay event, as well as the recording data.\n */\nexport function createReplayEnvelope(\n replayEvent: ReplayEvent,\n recordingData: ReplayRecordingData,\n dsn: DsnComponents,\n tunnel?: string,\n): ReplayEnvelope {\n return createEnvelope(\n createEventEnvelopeHeaders(replayEvent, getSdkMetadataForEnvelopeHeader(replayEvent), tunnel, dsn),\n [\n [{ type: 'replay_event' }, replayEvent],\n [\n {\n type: 'replay_recording',\n // If string then we need to encode to UTF8, otherwise will have\n // wrong size. TextEncoder has similar browser support to\n // MutationObserver, although it does not accept IE11.\n length:\n typeof recordingData === 'string' ? new TextEncoder().encode(recordingData).length : recordingData.length,\n },\n recordingData,\n ],\n ],\n );\n}\n","import type { ReplayRecordingData } from '@sentry/types';\n\n/**\n * Prepare the recording data ready to be sent.\n */\nexport function prepareRecordingData({\n recordingData,\n headers,\n}: {\n recordingData: ReplayRecordingData;\n headers: Record;\n}): ReplayRecordingData {\n let payloadWithSequence;\n\n // XXX: newline is needed to separate sequence id from events\n const replayHeaders = `${JSON.stringify(headers)}\n`;\n\n if (typeof recordingData === 'string') {\n payloadWithSequence = `${replayHeaders}${recordingData}`;\n } else {\n const enc = new TextEncoder();\n // XXX: newline is needed to separate sequence id from events\n const sequence = enc.encode(replayHeaders);\n // Merge the two Uint8Arrays\n payloadWithSequence = new Uint8Array(sequence.length + recordingData.length);\n payloadWithSequence.set(sequence);\n payloadWithSequence.set(recordingData, sequence.length);\n }\n\n return payloadWithSequence;\n}\n","import type { IntegrationIndex, Scope } from '@sentry/core';\nimport { getIsolationScope } from '@sentry/core';\nimport { prepareEvent } from '@sentry/core';\nimport type { Client, EventHint, ReplayEvent } from '@sentry/types';\n\n/**\n * Prepare a replay event & enrich it with the SDK metadata.\n */\nexport async function prepareReplayEvent({\n client,\n scope,\n replayId: event_id,\n event,\n}: {\n client: Client & { _integrations?: IntegrationIndex };\n scope: Scope;\n replayId: string;\n event: ReplayEvent;\n}): Promise {\n const integrations =\n typeof client._integrations === 'object' && client._integrations !== null && !Array.isArray(client._integrations)\n ? Object.keys(client._integrations)\n : undefined;\n\n const eventHint: EventHint = { event_id, integrations };\n\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 )) as ReplayEvent | null;\n\n // If e.g. a global event processor returned null\n if (!preparedEvent) {\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 // extract the SDK name because `client._prepareEvent` doesn't add it to the event\n const metadata = client.getSdkMetadata && client.getSdkMetadata();\n const { name, version } = (metadata && metadata.sdk) || {};\n\n preparedEvent.sdk = {\n ...preparedEvent.sdk,\n name: name || 'sentry.javascript.unknown',\n version: version || '0.0.0',\n };\n\n return preparedEvent;\n}\n","import { getClient, getCurrentScope } from '@sentry/core';\nimport type { ReplayEvent, TransportMakeRequestResponse } from '@sentry/types';\nimport type { RateLimits } from '@sentry/utils';\nimport { isRateLimited, updateRateLimits } from '@sentry/utils';\n\nimport { REPLAY_EVENT_NAME, UNABLE_TO_SEND_REPLAY } from '../constants';\nimport type { SendReplayData } from '../types';\nimport { createReplayEnvelope } from './createReplayEnvelope';\nimport { logInfo } from './log';\nimport { prepareRecordingData } from './prepareRecordingData';\nimport { prepareReplayEvent } from './prepareReplayEvent';\n\n/**\n * Send replay attachment using `fetch()`\n */\nexport async function sendReplayRequest({\n recordingData,\n replayId,\n segmentId: segment_id,\n eventContext,\n timestamp,\n session,\n}: SendReplayData): Promise {\n const preparedRecordingData = prepareRecordingData({\n recordingData,\n headers: {\n segment_id,\n },\n });\n\n const { urls, errorIds, traceIds, initialTimestamp } = eventContext;\n\n const client = getClient();\n const scope = getCurrentScope();\n const transport = client && client.getTransport();\n const dsn = client && client.getDsn();\n\n if (!client || !transport || !dsn || !session.sampled) {\n return;\n }\n\n const baseEvent: ReplayEvent = {\n type: REPLAY_EVENT_NAME,\n replay_start_timestamp: initialTimestamp / 1000,\n timestamp: timestamp / 1000,\n error_ids: errorIds,\n trace_ids: traceIds,\n urls,\n replay_id: replayId,\n segment_id,\n replay_type: session.sampled,\n };\n\n const replayEvent = await prepareReplayEvent({ scope, client, replayId, event: baseEvent });\n\n if (!replayEvent) {\n // Taken from baseclient's `_processEvent` method, where this is handled for errors/transactions\n client.recordDroppedEvent('event_processor', 'replay', baseEvent);\n logInfo('An event processor returned `null`, will not send event.');\n return;\n }\n\n /*\n For reference, the fully built event looks something like this:\n {\n \"type\": \"replay_event\",\n \"timestamp\": 1670837008.634,\n \"error_ids\": [\n \"errorId\"\n ],\n \"trace_ids\": [\n \"traceId\"\n ],\n \"urls\": [\n \"https://example.com\"\n ],\n \"replay_id\": \"eventId\",\n \"segment_id\": 3,\n \"replay_type\": \"error\",\n \"platform\": \"javascript\",\n \"event_id\": \"eventId\",\n \"environment\": \"production\",\n \"sdk\": {\n \"integrations\": [\n \"BrowserTracing\",\n \"Replay\"\n ],\n \"name\": \"sentry.javascript.browser\",\n \"version\": \"7.25.0\"\n },\n \"sdkProcessingMetadata\": {},\n \"contexts\": {\n },\n }\n */\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete replayEvent.sdkProcessingMetadata;\n\n const envelope = createReplayEnvelope(replayEvent, preparedRecordingData, dsn, client.getOptions().tunnel);\n\n let response: void | TransportMakeRequestResponse;\n\n try {\n response = await transport.send(envelope);\n } catch (err) {\n const error = new Error(UNABLE_TO_SEND_REPLAY);\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 {\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 response;\n }\n\n // If the status code is invalid, we want to immediately stop & not retry\n if (typeof response.statusCode === 'number' && (response.statusCode < 200 || response.statusCode >= 300)) {\n throw new TransportStatusCodeError(response.statusCode);\n }\n\n const rateLimits = updateRateLimits({}, response);\n if (isRateLimited(rateLimits, 'replay')) {\n throw new RateLimitError(rateLimits);\n }\n\n return response;\n}\n\n/**\n * This error indicates that the transport returned an invalid status code.\n */\nexport class TransportStatusCodeError extends Error {\n public constructor(statusCode: number) {\n super(`Transport returned status code ${statusCode}`);\n }\n}\n\n/**\n * This error indicates that we hit a rate limit API error.\n */\nexport class RateLimitError extends Error {\n public rateLimits: RateLimits;\n\n public constructor(rateLimits: RateLimits) {\n super('Rate limit hit');\n this.rateLimits = rateLimits;\n }\n}\n","import { captureException, setContext } from '@sentry/core';\n\nimport { RETRY_BASE_INTERVAL, RETRY_MAX_COUNT, UNABLE_TO_SEND_REPLAY } from '../constants';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { SendReplayData } from '../types';\nimport { RateLimitError, TransportStatusCodeError, sendReplayRequest } from './sendReplayRequest';\n\n/**\n * Finalize and send the current replay event to Sentry\n */\nexport async function sendReplay(\n replayData: SendReplayData,\n retryConfig = {\n count: 0,\n interval: RETRY_BASE_INTERVAL,\n },\n): Promise {\n const { recordingData, options } = replayData;\n\n // short circuit if there's no events to upload (this shouldn't happen as _runFlush makes this check)\n if (!recordingData.length) {\n return;\n }\n\n try {\n await sendReplayRequest(replayData);\n return true;\n } catch (err) {\n if (err instanceof TransportStatusCodeError || err instanceof RateLimitError) {\n throw err;\n }\n\n // Capture error for every failed replay\n setContext('Replays', {\n _retryCount: retryConfig.count,\n });\n\n if (DEBUG_BUILD && options._experiments && options._experiments.captureExceptions) {\n captureException(err);\n }\n\n // If an error happened here, it's likely that uploading the attachment\n // failed, we'll can retry with the same events payload\n if (retryConfig.count >= RETRY_MAX_COUNT) {\n const error = new Error(`${UNABLE_TO_SEND_REPLAY} - max retries exceeded`);\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 {\n // nothing to do\n }\n\n throw error;\n }\n\n // will retry in intervals of 5, 10, 30\n retryConfig.interval *= ++retryConfig.count;\n\n return new Promise((resolve, reject) => {\n setTimeout(async () => {\n try {\n await sendReplay(replayData, retryConfig);\n resolve(true);\n } catch (err) {\n reject(err);\n }\n }, retryConfig.interval);\n });\n }\n}\n","export const THROTTLED = '__THROTTLED';\nexport const SKIPPED = '__SKIPPED';\n\n/**\n * Create a throttled function off a given function.\n * When calling the throttled function, it will call the original function only\n * if it hasn't been called more than `maxCount` times in the last `durationSeconds`.\n *\n * Returns `THROTTLED` if throttled for the first time, after that `SKIPPED`,\n * or else the return value of the original function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function throttle any>(\n fn: T,\n maxCount: number,\n durationSeconds: number,\n): (...rest: Parameters) => ReturnType | typeof THROTTLED | typeof SKIPPED {\n const counter = new Map();\n\n const _cleanup = (now: number): void => {\n const threshold = now - durationSeconds;\n counter.forEach((_value, key) => {\n if (key < threshold) {\n counter.delete(key);\n }\n });\n };\n\n const _getTotalCount = (): number => {\n return [...counter.values()].reduce((a, b) => a + b, 0);\n };\n\n let isThrottled = false;\n\n return (...rest: Parameters): ReturnType | typeof THROTTLED | typeof SKIPPED => {\n // Date in second-precision, which we use as basis for the throttling\n const now = Math.floor(Date.now() / 1000);\n\n // First, make sure to delete any old entries\n _cleanup(now);\n\n // If already over limit, do nothing\n if (_getTotalCount() >= maxCount) {\n const wasThrottled = isThrottled;\n isThrottled = true;\n return wasThrottled ? SKIPPED : THROTTLED;\n }\n\n isThrottled = false;\n const count = counter.get(now) || 0;\n counter.set(now, count + 1);\n\n return fn(...rest);\n };\n}\n","/* eslint-disable max-lines */ // TODO: We might want to split this file up\nimport { EventType, record } from '@sentry-internal/rrweb';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n captureException,\n getClient,\n getCurrentScope,\n spanToJSON,\n} from '@sentry/core';\nimport type { ReplayRecordingMode, Transaction } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport {\n BUFFER_CHECKOUT_TIME,\n SESSION_IDLE_EXPIRE_DURATION,\n SESSION_IDLE_PAUSE_DURATION,\n SLOW_CLICK_SCROLL_TIMEOUT,\n SLOW_CLICK_THRESHOLD,\n WINDOW,\n} from './constants';\nimport { ClickDetector } from './coreHandlers/handleClick';\nimport { handleKeyboardEvent } from './coreHandlers/handleKeyboardEvent';\nimport { setupPerformanceObserver } from './coreHandlers/performanceObserver';\nimport { DEBUG_BUILD } from './debug-build';\nimport { createEventBuffer } from './eventBuffer';\nimport { clearSession } from './session/clearSession';\nimport { loadOrCreateSession } from './session/loadOrCreateSession';\nimport { saveSession } from './session/saveSession';\nimport { shouldRefreshSession } from './session/shouldRefreshSession';\n\nimport type {\n AddEventResult,\n AddUpdateCallback,\n AllPerformanceEntry,\n AllPerformanceEntryData,\n EventBuffer,\n InternalEventContext,\n PopEventContext,\n RecordingEvent,\n RecordingOptions,\n ReplayBreadcrumbFrame,\n ReplayCanvasIntegrationOptions,\n ReplayContainer as ReplayContainerInterface,\n ReplayPerformanceEntry,\n ReplayPluginOptions,\n SendBufferedReplayOptions,\n Session,\n SlowClickConfig,\n Timeouts,\n} from './types';\nimport { ReplayEventTypeCustom } from './types';\nimport { addEvent, addEventSync } from './util/addEvent';\nimport { addGlobalListeners } from './util/addGlobalListeners';\nimport { addMemoryEntry } from './util/addMemoryEntry';\nimport { createBreadcrumb } from './util/createBreadcrumb';\nimport { createPerformanceEntries } from './util/createPerformanceEntries';\nimport { createPerformanceSpans } from './util/createPerformanceSpans';\nimport { debounce } from './util/debounce';\nimport { getHandleRecordingEmit } from './util/handleRecordingEmit';\nimport { isExpired } from './util/isExpired';\nimport { isSessionExpired } from './util/isSessionExpired';\nimport { logInfo, logInfoNextTick } from './util/log';\nimport { sendReplay } from './util/sendReplay';\nimport type { SKIPPED } from './util/throttle';\nimport { THROTTLED, throttle } from './util/throttle';\n\n/**\n * The main replay container class, which holds all the state and methods for recording and sending replays.\n */\nexport class ReplayContainer implements ReplayContainerInterface {\n public eventBuffer: EventBuffer | null;\n\n public performanceEntries: AllPerformanceEntry[];\n\n public replayPerformanceEntries: ReplayPerformanceEntry[];\n\n public session: Session | undefined;\n\n public clickDetector: ClickDetector | undefined;\n\n /**\n * Recording can happen in one of three modes:\n * - session: Record the whole session, sending it continuously\n * - buffer: Always keep the last 60s of recording, requires:\n * - having replaysOnErrorSampleRate > 0 to capture replay when an error occurs\n * - or calling `flush()` to send the replay\n */\n public recordingMode: ReplayRecordingMode;\n\n /**\n * The current or last active transcation.\n * This is only available when performance is enabled.\n */\n public lastTransaction?: Transaction;\n\n /**\n * These are here so we can overwrite them in tests etc.\n * @hidden\n */\n public readonly timeouts: Timeouts;\n\n private _throttledAddEvent: (\n event: RecordingEvent,\n isCheckout?: boolean,\n ) => typeof THROTTLED | typeof SKIPPED | Promise;\n\n /**\n * Options to pass to `rrweb.record()`\n */\n private readonly _recordingOptions: RecordingOptions;\n\n private readonly _options: ReplayPluginOptions;\n\n private _performanceCleanupCallback?: () => void;\n\n private _debouncedFlush: ReturnType;\n private _flushLock: Promise | undefined;\n\n /**\n * Timestamp of the last user activity. This lives across sessions.\n */\n private _lastActivity: number;\n\n /**\n * Is the integration currently active?\n */\n private _isEnabled: boolean;\n\n /**\n * Paused is a state where:\n * - DOM Recording is not listening at all\n * - Nothing will be added to event buffer (e.g. core SDK events)\n */\n private _isPaused: boolean;\n\n /**\n * Have we attached listeners to the core SDK?\n * Note we have to track this as there is no way to remove instrumentation handlers.\n */\n private _hasInitializedCoreListeners: boolean;\n\n /**\n * Function to stop recording\n */\n private _stopRecording: ReturnType | undefined;\n\n private _context: InternalEventContext;\n\n /**\n * Internal use for canvas recording options\n */\n private _canvas: ReplayCanvasIntegrationOptions | undefined;\n\n public constructor({\n options,\n recordingOptions,\n }: {\n options: ReplayPluginOptions;\n recordingOptions: RecordingOptions;\n }) {\n this.eventBuffer = null;\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n this.recordingMode = 'session';\n this.timeouts = {\n sessionIdlePause: SESSION_IDLE_PAUSE_DURATION,\n sessionIdleExpire: SESSION_IDLE_EXPIRE_DURATION,\n } as const;\n this._lastActivity = Date.now();\n this._isEnabled = false;\n this._isPaused = false;\n this._hasInitializedCoreListeners = false;\n this._context = {\n errorIds: new Set(),\n traceIds: new Set(),\n urls: [],\n initialTimestamp: Date.now(),\n initialUrl: '',\n };\n\n this._recordingOptions = recordingOptions;\n this._options = options;\n\n this._debouncedFlush = debounce(() => this._flush(), this._options.flushMinDelay, {\n maxWait: this._options.flushMaxDelay,\n });\n\n this._throttledAddEvent = throttle(\n (event: RecordingEvent, isCheckout?: boolean) => addEvent(this, event, isCheckout),\n // Max 300 events...\n 300,\n // ... per 5s\n 5,\n );\n\n const { slowClickTimeout, slowClickIgnoreSelectors } = this.getOptions();\n\n const slowClickConfig: SlowClickConfig | undefined = slowClickTimeout\n ? {\n threshold: Math.min(SLOW_CLICK_THRESHOLD, slowClickTimeout),\n timeout: slowClickTimeout,\n scrollTimeout: SLOW_CLICK_SCROLL_TIMEOUT,\n ignoreSelector: slowClickIgnoreSelectors ? slowClickIgnoreSelectors.join(',') : '',\n }\n : undefined;\n\n if (slowClickConfig) {\n this.clickDetector = new ClickDetector(this, slowClickConfig);\n }\n }\n\n /** Get the event context. */\n public getContext(): InternalEventContext {\n return this._context;\n }\n\n /** If recording is currently enabled. */\n public isEnabled(): boolean {\n return this._isEnabled;\n }\n\n /** If recording is currently paused. */\n public isPaused(): boolean {\n return this._isPaused;\n }\n\n /**\n * Determine if canvas recording is enabled\n */\n public isRecordingCanvas(): boolean {\n return Boolean(this._canvas);\n }\n\n /** Get the replay integration options. */\n public getOptions(): ReplayPluginOptions {\n return this._options;\n }\n\n /**\n * Initializes the plugin based on sampling configuration. Should not be\n * called outside of constructor.\n */\n public initializeSampling(previousSessionId?: string): void {\n const { errorSampleRate, sessionSampleRate } = this._options;\n\n // If neither sample rate is > 0, then do nothing - user will need to call one of\n // `start()` or `startBuffering` themselves.\n if (errorSampleRate <= 0 && sessionSampleRate <= 0) {\n return;\n }\n\n // Otherwise if there is _any_ sample rate set, try to load an existing\n // session, or create a new one.\n this._initializeSessionForSampling(previousSessionId);\n\n if (!this.session) {\n // This should not happen, something wrong has occurred\n this._handleException(new Error('Unable to initialize and create session'));\n return;\n }\n\n if (this.session.sampled === false) {\n // This should only occur if `errorSampleRate` is 0 and was unsampled for\n // session-based replay. In this case there is nothing to do.\n return;\n }\n\n // If segmentId > 0, it means we've previously already captured this session\n // In this case, we still want to continue in `session` recording mode\n this.recordingMode = this.session.sampled === 'buffer' && this.session.segmentId === 0 ? 'buffer' : 'session';\n\n logInfoNextTick(\n `[Replay] Starting replay in ${this.recordingMode} mode`,\n this._options._experiments.traceInternals,\n );\n\n this._initializeRecording();\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will throw an error if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * _performanceObserver, Recording, Sentry SDK, etc)\n */\n public start(): void {\n if (this._isEnabled && this.recordingMode === 'session') {\n throw new Error('Replay recording is already in progress');\n }\n\n if (this._isEnabled && this.recordingMode === 'buffer') {\n throw new Error('Replay buffering is in progress, call `flush()` to save the replay');\n }\n\n logInfoNextTick('[Replay] Starting replay in session mode', this._options._experiments.traceInternals);\n\n // Required as user activity is initially set in\n // constructor, so if `start()` is called after\n // session idle expiration, a replay will not be\n // created due to an idle timeout.\n this._updateUserActivity();\n\n const session = loadOrCreateSession(\n {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n traceInternals: this._options._experiments.traceInternals,\n },\n {\n stickySession: this._options.stickySession,\n // This is intentional: create a new session-based replay when calling `start()`\n sessionSampleRate: 1,\n allowBuffering: false,\n },\n );\n\n this.session = session;\n\n this._initializeRecording();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, an error occurs.\n */\n public startBuffering(): void {\n if (this._isEnabled) {\n throw new Error('Replay recording is already in progress');\n }\n\n logInfoNextTick('[Replay] Starting replay in buffer mode', this._options._experiments.traceInternals);\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n traceInternals: this._options._experiments.traceInternals,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: 0,\n allowBuffering: true,\n },\n );\n\n this.session = session;\n\n this.recordingMode = 'buffer';\n this._initializeRecording();\n }\n\n /**\n * Start recording.\n *\n * Note that this will cause a new DOM checkout\n */\n public startRecording(): void {\n try {\n const canvasOptions = this._canvas;\n\n this._stopRecording = record({\n ...this._recordingOptions,\n // When running in error sampling mode, we need to overwrite `checkoutEveryNms`\n // Without this, it would record forever, until an error happens, which we don't want\n // instead, we'll always keep the last 60 seconds of replay before an error happened\n ...(this.recordingMode === 'buffer' && { checkoutEveryNms: BUFFER_CHECKOUT_TIME }),\n emit: getHandleRecordingEmit(this),\n onMutation: this._onMutationHandler,\n ...(canvasOptions\n ? {\n recordCanvas: canvasOptions.recordCanvas,\n getCanvasManager: canvasOptions.getCanvasManager,\n sampling: canvasOptions.sampling,\n dataURLOptions: canvasOptions.dataURLOptions,\n }\n : {}),\n });\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Stops the recording, if it was running.\n *\n * Returns true if it was previously stopped, or is now stopped,\n * otherwise false.\n */\n public stopRecording(): boolean {\n try {\n if (this._stopRecording) {\n this._stopRecording();\n this._stopRecording = undefined;\n }\n\n return true;\n } catch (err) {\n this._handleException(err);\n return false;\n }\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n public async stop({ forceFlush = false, reason }: { forceFlush?: boolean; reason?: string } = {}): Promise {\n if (!this._isEnabled) {\n return;\n }\n\n // We can't move `_isEnabled` after awaiting a flush, otherwise we can\n // enter into an infinite loop when `stop()` is called while flushing.\n this._isEnabled = false;\n\n try {\n logInfo(\n `[Replay] Stopping Replay${reason ? ` triggered by ${reason}` : ''}`,\n this._options._experiments.traceInternals,\n );\n\n this._removeListeners();\n this.stopRecording();\n\n this._debouncedFlush.cancel();\n // See comment above re: `_isEnabled`, we \"force\" a flush, ignoring the\n // `_isEnabled` state of the plugin since it was disabled above.\n if (forceFlush) {\n await this._flush({ force: true });\n }\n\n // After flush, destroy event buffer\n this.eventBuffer && this.eventBuffer.destroy();\n this.eventBuffer = null;\n\n // Clear session from session storage, note this means if a new session\n // is started after, it will not have `previousSessionId`\n clearSession(this);\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Pause some replay functionality. See comments for `_isPaused`.\n * This differs from stop as this only stops DOM recording, it is\n * not as thorough of a shutdown as `stop()`.\n */\n public pause(): void {\n if (this._isPaused) {\n return;\n }\n\n this._isPaused = true;\n this.stopRecording();\n\n logInfo('[Replay] Pausing replay', this._options._experiments.traceInternals);\n }\n\n /**\n * Resumes recording, see notes for `pause().\n *\n * Note that calling `startRecording()` here will cause a\n * new DOM checkout.`\n */\n public resume(): void {\n if (!this._isPaused || !this._checkSession()) {\n return;\n }\n\n this._isPaused = false;\n this.startRecording();\n\n logInfo('[Replay] Resuming replay', this._options._experiments.traceInternals);\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n public async sendBufferedReplayOrFlush({ continueRecording = true }: SendBufferedReplayOptions = {}): Promise {\n if (this.recordingMode === 'session') {\n return this.flushImmediate();\n }\n\n const activityTime = Date.now();\n\n logInfo('[Replay] Converting buffer to session', this._options._experiments.traceInternals);\n\n // Allow flush to complete before resuming as a session recording, otherwise\n // the checkout from `startRecording` may be included in the payload.\n // Prefer to keep the error replay as a separate (and smaller) segment\n // than the session replay.\n await this.flushImmediate();\n\n const hasStoppedRecording = this.stopRecording();\n\n if (!continueRecording || !hasStoppedRecording) {\n return;\n }\n\n // To avoid race conditions where this is called multiple times, we check here again that we are still buffering\n if ((this.recordingMode as ReplayRecordingMode) === 'session') {\n return;\n }\n\n // Re-start recording in session-mode\n this.recordingMode = 'session';\n\n // Once this session ends, we do not want to refresh it\n if (this.session) {\n this._updateUserActivity(activityTime);\n this._updateSessionActivity(activityTime);\n this._maybeSaveSession();\n }\n\n this.startRecording();\n }\n\n /**\n * We want to batch uploads of replay events. Save events only if\n * `` milliseconds have elapsed since the last event\n * *OR* if `` milliseconds have elapsed.\n *\n * Accepts a callback to perform side-effects and returns true to stop batch\n * processing and hand back control to caller.\n */\n public addUpdate(cb: AddUpdateCallback): void {\n // We need to always run `cb` (e.g. in the case of `this.recordingMode == 'buffer'`)\n const cbResult = cb();\n\n // If this option is turned on then we will only want to call `flush`\n // explicitly\n if (this.recordingMode === 'buffer') {\n return;\n }\n\n // If callback is true, we do not want to continue with flushing -- the\n // caller will need to handle it.\n if (cbResult === true) {\n return;\n }\n\n // addUpdate is called quite frequently - use _debouncedFlush so that it\n // respects the flush delays and does not flush immediately\n this._debouncedFlush();\n }\n\n /**\n * Updates the user activity timestamp and resumes recording. This should be\n * called in an event handler for a user action that we consider as the user\n * being \"active\" (e.g. a mouse click).\n */\n public triggerUserActivity(): void {\n this._updateUserActivity();\n\n // This case means that recording was once stopped due to inactivity.\n // Ensure that recording is resumed.\n if (!this._stopRecording) {\n // Create a new session, otherwise when the user action is flushed, it\n // will get rejected due to an expired session.\n if (!this._checkSession()) {\n return;\n }\n\n // Note: This will cause a new DOM checkout\n this.resume();\n return;\n }\n\n // Otherwise... recording was never suspended, continue as normalish\n this.checkAndHandleExpiredSession();\n\n this._updateSessionActivity();\n }\n\n /**\n * Updates the user activity timestamp *without* resuming\n * recording. Some user events (e.g. keydown) can be create\n * low-value replays that only contain the keypress as a\n * breadcrumb. Instead this would require other events to\n * create a new replay after a session has expired.\n */\n public updateUserActivity(): void {\n this._updateUserActivity();\n this._updateSessionActivity();\n }\n\n /**\n * Only flush if `this.recordingMode === 'session'`\n */\n public conditionalFlush(): Promise {\n if (this.recordingMode === 'buffer') {\n return Promise.resolve();\n }\n\n return this.flushImmediate();\n }\n\n /**\n * Flush using debounce flush\n */\n public flush(): Promise {\n return this._debouncedFlush() as Promise;\n }\n\n /**\n * Always flush via `_debouncedFlush` so that we do not have flushes triggered\n * from calling both `flush` and `_debouncedFlush`. Otherwise, there could be\n * cases of mulitple flushes happening closely together.\n */\n public flushImmediate(): Promise {\n this._debouncedFlush();\n // `.flush` is provided by the debounced function, analogously to lodash.debounce\n return this._debouncedFlush.flush() as Promise;\n }\n\n /**\n * Cancels queued up flushes.\n */\n public cancelFlush(): void {\n this._debouncedFlush.cancel();\n }\n\n /** Get the current sesion (=replay) ID */\n public getSessionId(): string | undefined {\n return this.session && this.session.id;\n }\n\n /**\n * Checks if recording should be stopped due to user inactivity. Otherwise\n * check if session is expired and create a new session if so. Triggers a new\n * full snapshot on new session.\n *\n * Returns true if session is not expired, false otherwise.\n * @hidden\n */\n public checkAndHandleExpiredSession(): boolean | void {\n // Prevent starting a new session if the last user activity is older than\n // SESSION_IDLE_PAUSE_DURATION. Otherwise non-user activity can trigger a new\n // session+recording. This creates noisy replays that do not have much\n // content in them.\n if (\n this._lastActivity &&\n isExpired(this._lastActivity, this.timeouts.sessionIdlePause) &&\n this.session &&\n this.session.sampled === 'session'\n ) {\n // Pause recording only for session-based replays. Otherwise, resuming\n // will create a new replay and will conflict with users who only choose\n // to record error-based replays only. (e.g. the resumed replay will not\n // contain a reference to an error)\n this.pause();\n return;\n }\n\n // --- There is recent user activity --- //\n // This will create a new session if expired, based on expiry length\n if (!this._checkSession()) {\n // Check session handles the refreshing itself\n return false;\n }\n\n return true;\n }\n\n /**\n * Capture some initial state that can change throughout the lifespan of the\n * replay. This is required because otherwise they would be captured at the\n * first flush.\n */\n public setInitialState(): void {\n const urlPath = `${WINDOW.location.pathname}${WINDOW.location.hash}${WINDOW.location.search}`;\n const url = `${WINDOW.location.origin}${urlPath}`;\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n // Reset _context as well\n this._clearContext();\n\n this._context.initialUrl = url;\n this._context.initialTimestamp = Date.now();\n this._context.urls.push(url);\n }\n\n /**\n * Add a breadcrumb event, that may be throttled.\n * If it was throttled, we add a custom breadcrumb to indicate that.\n */\n public throttledAddEvent(\n event: RecordingEvent,\n isCheckout?: boolean,\n ): typeof THROTTLED | typeof SKIPPED | Promise {\n const res = this._throttledAddEvent(event, isCheckout);\n\n // If this is THROTTLED, it means we have throttled the event for the first time\n // In this case, we want to add a breadcrumb indicating that something was skipped\n if (res === THROTTLED) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.throttled',\n });\n\n this.addUpdate(() => {\n // Return `false` if the event _was_ added, as that means we schedule a flush\n return !addEventSync(this, {\n type: ReplayEventTypeCustom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n metric: true,\n },\n });\n });\n }\n\n return res;\n }\n\n /**\n * This will get the parametrized route name of the current page.\n * This is only available if performance is enabled, and if an instrumented router is used.\n */\n public getCurrentRoute(): string | undefined {\n // eslint-disable-next-line deprecation/deprecation\n const lastTransaction = this.lastTransaction || getCurrentScope().getTransaction();\n\n const attributes = (lastTransaction && spanToJSON(lastTransaction).data) || {};\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n if (!lastTransaction || !source || !['route', 'custom'].includes(source)) {\n return undefined;\n }\n\n return spanToJSON(lastTransaction).description;\n }\n\n /**\n * Initialize and start all listeners to varying events (DOM,\n * Performance Observer, Recording, Sentry SDK, etc)\n */\n private _initializeRecording(): void {\n this.setInitialState();\n\n // this method is generally called on page load or manually - in both cases\n // we should treat it as an activity\n this._updateSessionActivity();\n\n this.eventBuffer = createEventBuffer({\n useCompression: this._options.useCompression,\n workerUrl: this._options.workerUrl,\n });\n\n this._removeListeners();\n this._addListeners();\n\n // Need to set as enabled before we start recording, as `record()` can trigger a flush with a new checkout\n this._isEnabled = true;\n this._isPaused = false;\n\n this.startRecording();\n }\n\n /** A wrapper to conditionally capture exceptions. */\n private _handleException(error: unknown): void {\n DEBUG_BUILD && logger.error('[Replay]', error);\n\n if (DEBUG_BUILD && this._options._experiments && this._options._experiments.captureExceptions) {\n captureException(error);\n }\n }\n\n /**\n * Loads (or refreshes) the current session.\n */\n private _initializeSessionForSampling(previousSessionId?: string): void {\n // Whenever there is _any_ error sample rate, we always allow buffering\n // Because we decide on sampling when an error occurs, we need to buffer at all times if sampling for errors\n const allowBuffering = this._options.errorSampleRate > 0;\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n traceInternals: this._options._experiments.traceInternals,\n previousSessionId,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: this._options.sessionSampleRate,\n allowBuffering,\n },\n );\n\n this.session = session;\n }\n\n /**\n * Checks and potentially refreshes the current session.\n * Returns false if session is not recorded.\n */\n private _checkSession(): boolean {\n // If there is no session yet, we do not want to refresh anything\n // This should generally not happen, but to be safe....\n if (!this.session) {\n return false;\n }\n\n const currentSession = this.session;\n\n if (\n shouldRefreshSession(currentSession, {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n })\n ) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._refreshSession(currentSession);\n return false;\n }\n\n return true;\n }\n\n /**\n * Refresh a session with a new one.\n * This stops the current session (without forcing a flush, as that would never work since we are expired),\n * and then does a new sampling based on the refreshed session.\n */\n private async _refreshSession(session: Session): Promise {\n if (!this._isEnabled) {\n return;\n }\n await this.stop({ reason: 'refresh session' });\n this.initializeSampling(session.id);\n }\n\n /**\n * Adds listeners to record events for the replay\n */\n private _addListeners(): void {\n try {\n WINDOW.document.addEventListener('visibilitychange', this._handleVisibilityChange);\n WINDOW.addEventListener('blur', this._handleWindowBlur);\n WINDOW.addEventListener('focus', this._handleWindowFocus);\n WINDOW.addEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.addListeners();\n }\n\n // There is no way to remove these listeners, so ensure they are only added once\n if (!this._hasInitializedCoreListeners) {\n addGlobalListeners(this);\n\n this._hasInitializedCoreListeners = true;\n }\n } catch (err) {\n this._handleException(err);\n }\n\n this._performanceCleanupCallback = setupPerformanceObserver(this);\n }\n\n /**\n * Cleans up listeners that were created in `_addListeners`\n */\n private _removeListeners(): void {\n try {\n WINDOW.document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n\n WINDOW.removeEventListener('blur', this._handleWindowBlur);\n WINDOW.removeEventListener('focus', this._handleWindowFocus);\n WINDOW.removeEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.removeListeners();\n }\n\n if (this._performanceCleanupCallback) {\n this._performanceCleanupCallback();\n }\n } catch (err) {\n this._handleException(err);\n }\n }\n\n /**\n * Handle when visibility of the page content changes. Opening a new tab will\n * cause the state to change to hidden because of content of current page will\n * be hidden. Likewise, moving a different window to cover the contents of the\n * page will also trigger a change to a hidden state.\n */\n private _handleVisibilityChange: () => void = () => {\n if (WINDOW.document.visibilityState === 'visible') {\n this._doChangeToForegroundTasks();\n } else {\n this._doChangeToBackgroundTasks();\n }\n };\n\n /**\n * Handle when page is blurred\n */\n private _handleWindowBlur: () => void = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.blur',\n });\n\n // Do not count blur as a user action -- it's part of the process of them\n // leaving the page\n this._doChangeToBackgroundTasks(breadcrumb);\n };\n\n /**\n * Handle when page is focused\n */\n private _handleWindowFocus: () => void = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.focus',\n });\n\n // Do not count focus as a user action -- instead wait until they focus and\n // interactive with page\n this._doChangeToForegroundTasks(breadcrumb);\n };\n\n /** Ensure page remains active when a key is pressed. */\n private _handleKeyboardEvent: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n handleKeyboardEvent(this, event);\n };\n\n /**\n * Tasks to run when we consider a page to be hidden (via blurring and/or visibility)\n */\n private _doChangeToBackgroundTasks(breadcrumb?: ReplayBreadcrumbFrame): void {\n if (!this.session) {\n return;\n }\n\n const expired = isSessionExpired(this.session, {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n });\n\n if (expired) {\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Send replay when the page/tab becomes hidden. There is no reason to send\n // replay if it becomes visible, since no actions we care about were done\n // while it was hidden\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void this.conditionalFlush();\n }\n\n /**\n * Tasks to run when we consider a page to be visible (via focus and/or visibility)\n */\n private _doChangeToForegroundTasks(breadcrumb?: ReplayBreadcrumbFrame): void {\n if (!this.session) {\n return;\n }\n\n const isSessionActive = this.checkAndHandleExpiredSession();\n\n if (!isSessionActive) {\n // If the user has come back to the page within SESSION_IDLE_PAUSE_DURATION\n // ms, we will re-use the existing session, otherwise create a new\n // session\n logInfo('[Replay] Document has become active, but session has expired');\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n }\n\n /**\n * Update user activity (across session lifespans)\n */\n private _updateUserActivity(_lastActivity: number = Date.now()): void {\n this._lastActivity = _lastActivity;\n }\n\n /**\n * Updates the session's last activity timestamp\n */\n private _updateSessionActivity(_lastActivity: number = Date.now()): void {\n if (this.session) {\n this.session.lastActivity = _lastActivity;\n this._maybeSaveSession();\n }\n }\n\n /**\n * Helper to create (and buffer) a replay breadcrumb from a core SDK breadcrumb\n */\n private _createCustomBreadcrumb(breadcrumb: ReplayBreadcrumbFrame): void {\n this.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.throttledAddEvent({\n type: EventType.Custom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n },\n });\n });\n }\n\n /**\n * Observed performance events are added to `this.performanceEntries`. These\n * are included in the replay event before it is finished and sent to Sentry.\n */\n private _addPerformanceEntries(): Promise> {\n const performanceEntries = createPerformanceEntries(this.performanceEntries).concat(this.replayPerformanceEntries);\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n return Promise.all(createPerformanceSpans(this, performanceEntries));\n }\n\n /**\n * Clear _context\n */\n private _clearContext(): void {\n // XXX: `initialTimestamp` and `initialUrl` do not get cleared\n this._context.errorIds.clear();\n this._context.traceIds.clear();\n this._context.urls = [];\n }\n\n /** Update the initial timestamp based on the buffer content. */\n private _updateInitialTimestampFromEventBuffer(): void {\n const { session, eventBuffer } = this;\n if (!session || !eventBuffer) {\n return;\n }\n\n // we only ever update this on the initial segment\n if (session.segmentId) {\n return;\n }\n\n const earliestEvent = eventBuffer.getEarliestTimestamp();\n if (earliestEvent && earliestEvent < this._context.initialTimestamp) {\n this._context.initialTimestamp = earliestEvent;\n }\n }\n\n /**\n * Return and clear _context\n */\n private _popEventContext(): PopEventContext {\n const _context = {\n initialTimestamp: this._context.initialTimestamp,\n initialUrl: this._context.initialUrl,\n errorIds: Array.from(this._context.errorIds),\n traceIds: Array.from(this._context.traceIds),\n urls: this._context.urls,\n };\n\n this._clearContext();\n\n return _context;\n }\n\n /**\n * Flushes replay event buffer to Sentry.\n *\n * Performance events are only added right before flushing - this is\n * due to the buffered performance observer events.\n *\n * Should never be called directly, only by `flush`\n */\n private async _runFlush(): Promise {\n const replayId = this.getSessionId();\n\n if (!this.session || !this.eventBuffer || !replayId) {\n DEBUG_BUILD && logger.error('[Replay] No session or eventBuffer found to flush.');\n return;\n }\n\n await this._addPerformanceEntries();\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer || !this.eventBuffer.hasEvents) {\n return;\n }\n\n // Only attach memory event if eventBuffer is not empty\n await addMemoryEntry(this);\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer) {\n return;\n }\n\n // if this changed in the meanwhile, e.g. because the session was refreshed or similar, we abort here\n if (replayId !== this.getSessionId()) {\n return;\n }\n\n try {\n // This uses the data from the eventBuffer, so we need to call this before `finish()\n this._updateInitialTimestampFromEventBuffer();\n\n const timestamp = Date.now();\n\n // Check total duration again, to avoid sending outdated stuff\n // We leave 30s wiggle room to accomodate late flushing etc.\n // This _could_ happen when the browser is suspended during flushing, in which case we just want to stop\n if (timestamp - this._context.initialTimestamp > this._options.maxReplayDuration + 30_000) {\n throw new Error('Session is too long, not sending replay');\n }\n\n const eventContext = this._popEventContext();\n // Always increment segmentId regardless of outcome of sending replay\n const segmentId = this.session.segmentId++;\n this._maybeSaveSession();\n\n // Note this empties the event buffer regardless of outcome of sending replay\n const recordingData = await this.eventBuffer.finish();\n\n await sendReplay({\n replayId,\n recordingData,\n segmentId,\n eventContext,\n session: this.session,\n options: this.getOptions(),\n timestamp,\n });\n } catch (err) {\n this._handleException(err);\n\n // This means we retried 3 times and all of them failed,\n // or we ran into a problem we don't want to retry, like rate limiting.\n // In this case, we want to completely stop the replay - otherwise, we may get inconsistent segments\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'sendReplay' });\n\n const client = getClient();\n\n if (client) {\n client.recordDroppedEvent('send_error', 'replay');\n }\n }\n }\n\n /**\n * Flush recording data to Sentry. Creates a lock so that only a single flush\n * can be active at a time. Do not call this directly.\n */\n private _flush = async ({\n force = false,\n }: {\n /**\n * If true, flush while ignoring the `_isEnabled` state of\n * Replay integration. (By default, flush is noop if integration\n * is stopped).\n */\n force?: boolean;\n } = {}): Promise => {\n if (!this._isEnabled && !force) {\n // This can happen if e.g. the replay was stopped because of exceeding the retry limit\n return;\n }\n\n if (!this.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.error('[Replay] Attempting to finish replay event after session expired.');\n return;\n }\n\n if (!this.session) {\n // should never happen, as we would have bailed out before\n return;\n }\n\n const start = this.session.started;\n const now = Date.now();\n const duration = now - start;\n\n // A flush is about to happen, cancel any queued flushes\n this._debouncedFlush.cancel();\n\n // If session is too short, or too long (allow some wiggle room over maxReplayDuration), do not send it\n // This _should_ not happen, but it may happen if flush is triggered due to a page activity change or similar\n const tooShort = duration < this._options.minReplayDuration;\n const tooLong = duration > this._options.maxReplayDuration + 5_000;\n if (tooShort || tooLong) {\n logInfo(\n `[Replay] Session duration (${Math.floor(duration / 1000)}s) is too ${\n tooShort ? 'short' : 'long'\n }, not sending replay.`,\n this._options._experiments.traceInternals,\n );\n\n if (tooShort) {\n this._debouncedFlush();\n }\n return;\n }\n\n const eventBuffer = this.eventBuffer;\n if (eventBuffer && this.session.segmentId === 0 && !eventBuffer.hasCheckout) {\n logInfo('[Replay] Flushing initial segment without checkout.', this._options._experiments.traceInternals);\n // TODO FN: Evaluate if we want to stop here, or remove this again?\n }\n\n // this._flushLock acts as a lock so that future calls to `_flush()`\n // will be blocked until this promise resolves\n if (!this._flushLock) {\n this._flushLock = this._runFlush();\n await this._flushLock;\n this._flushLock = undefined;\n return;\n }\n\n // Wait for previous flush to finish, then call the debounced `_flush()`.\n // It's possible there are other flush requests queued and waiting for it\n // to resolve. We want to reduce all outstanding requests (as well as any\n // new flush requests that occur within a second of the locked flush\n // completing) into a single flush.\n\n try {\n await this._flushLock;\n } catch (err) {\n DEBUG_BUILD && logger.error(err);\n } finally {\n this._debouncedFlush();\n }\n };\n\n /** Save the session, if it is sticky */\n private _maybeSaveSession(): void {\n if (this.session && this._options.stickySession) {\n saveSession(this.session);\n }\n }\n\n /** Handler for rrweb.record.onMutation */\n private _onMutationHandler = (mutations: unknown[]): boolean => {\n const count = mutations.length;\n\n const mutationLimit = this._options.mutationLimit;\n const mutationBreadcrumbLimit = this._options.mutationBreadcrumbLimit;\n const overMutationLimit = mutationLimit && count > mutationLimit;\n\n // Create a breadcrumb if a lot of mutations happen at the same time\n // We can show this in the UI as an information with potential performance improvements\n if (count > mutationBreadcrumbLimit || overMutationLimit) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.mutations',\n data: {\n count,\n limit: overMutationLimit,\n },\n });\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Stop replay if over the mutation limit\n if (overMutationLimit) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'mutationLimit', forceFlush: this.recordingMode === 'session' });\n return false;\n }\n\n // `true` means we use the regular mutation handling by rrweb\n return true;\n };\n}\n","import { consoleSandbox } from '@sentry/utils';\n\nimport type { DeprecatedPrivacyOptions, ReplayIntegrationPrivacyOptions } from '../types';\n\ntype GetPrivacyOptions = Required> &\n Omit;\ninterface GetPrivacyReturn {\n maskTextSelector: string;\n unmaskTextSelector: string;\n blockSelector: string;\n unblockSelector: string;\n ignoreSelector: string;\n\n blockClass?: RegExp;\n maskTextClass?: RegExp;\n}\n\nfunction getOption(\n selectors: string[],\n defaultSelectors: string[],\n deprecatedClassOption?: string | RegExp,\n deprecatedSelectorOption?: string,\n): string {\n const deprecatedSelectors = typeof deprecatedSelectorOption === 'string' ? deprecatedSelectorOption.split(',') : [];\n\n const allSelectors = [\n ...selectors,\n // @deprecated\n ...deprecatedSelectors,\n\n // sentry defaults\n ...defaultSelectors,\n ];\n\n // @deprecated\n if (typeof deprecatedClassOption !== 'undefined') {\n // NOTE: No support for RegExp\n if (typeof deprecatedClassOption === 'string') {\n allSelectors.push(`.${deprecatedClassOption}`);\n }\n\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Replay] You are using a deprecated configuration item for privacy. Read the documentation on how to use the new privacy configuration.',\n );\n });\n }\n\n return allSelectors.join(',');\n}\n\n/**\n * Returns privacy related configuration for use in rrweb\n */\nexport function getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n\n // eslint-disable-next-line deprecation/deprecation\n blockClass,\n // eslint-disable-next-line deprecation/deprecation\n blockSelector,\n // eslint-disable-next-line deprecation/deprecation\n maskTextClass,\n // eslint-disable-next-line deprecation/deprecation\n maskTextSelector,\n // eslint-disable-next-line deprecation/deprecation\n ignoreClass,\n}: GetPrivacyOptions): GetPrivacyReturn {\n const defaultBlockedElements = ['base[href=\"/\"]'];\n\n const maskSelector = getOption(mask, ['.sentry-mask', '[data-sentry-mask]'], maskTextClass, maskTextSelector);\n const unmaskSelector = getOption(unmask, ['.sentry-unmask', '[data-sentry-unmask]']);\n\n const options: GetPrivacyReturn = {\n // We are making the decision to make text and input selectors the same\n maskTextSelector: maskSelector,\n unmaskTextSelector: unmaskSelector,\n\n blockSelector: getOption(\n block,\n ['.sentry-block', '[data-sentry-block]', ...defaultBlockedElements],\n blockClass,\n blockSelector,\n ),\n unblockSelector: getOption(unblock, ['.sentry-unblock', '[data-sentry-unblock]']),\n ignoreSelector: getOption(ignore, ['.sentry-ignore', '[data-sentry-ignore]', 'input[type=\"file\"]'], ignoreClass),\n };\n\n if (blockClass instanceof RegExp) {\n options.blockClass = blockClass;\n }\n\n if (maskTextClass instanceof RegExp) {\n options.maskTextClass = maskTextClass;\n }\n\n return options;\n}\n","import type { getPrivacyOptions } from './getPrivacyOptions';\n\ninterface MaskAttributeParams {\n maskAttributes: string[];\n maskAllText: boolean;\n privacyOptions: ReturnType;\n key: string;\n value: string;\n el: HTMLElement;\n}\n\n/**\n * Masks an attribute if necessary, otherwise return attribute value as-is.\n */\nexport function maskAttribute({\n el,\n key,\n maskAttributes,\n maskAllText,\n privacyOptions,\n value,\n}: MaskAttributeParams): string {\n // We only mask attributes if `maskAllText` is true\n if (!maskAllText) {\n return value;\n }\n\n // unmaskTextSelector takes precendence\n if (privacyOptions.unmaskTextSelector && el.matches(privacyOptions.unmaskTextSelector)) {\n return value;\n }\n\n if (\n maskAttributes.includes(key) ||\n // Need to mask `value` attribute for `` if it's a button-like\n // type\n (key === 'value' && el.tagName === 'INPUT' && ['submit', 'button'].includes(el.getAttribute('type') || ''))\n ) {\n return value.replace(/[\\S]/g, '*');\n }\n\n return value;\n}\n","import { getClient } from '@sentry/core';\nimport type { BrowserClientReplayOptions, Integration, IntegrationFn } from '@sentry/types';\nimport { consoleSandbox, dropUndefinedKeys, isBrowser } from '@sentry/utils';\n\nimport {\n DEFAULT_FLUSH_MAX_DELAY,\n DEFAULT_FLUSH_MIN_DELAY,\n MAX_REPLAY_DURATION,\n MIN_REPLAY_DURATION,\n MIN_REPLAY_DURATION_LIMIT,\n} from './constants';\nimport { ReplayContainer } from './replay';\nimport type {\n RecordingOptions,\n ReplayCanvasIntegrationOptions,\n ReplayConfiguration,\n ReplayPluginOptions,\n SendBufferedReplayOptions,\n} from './types';\nimport { getPrivacyOptions } from './util/getPrivacyOptions';\nimport { maskAttribute } from './util/maskAttribute';\n\nconst MEDIA_SELECTORS =\n 'img,image,svg,video,object,picture,embed,map,audio,link[rel=\"icon\"],link[rel=\"apple-touch-icon\"]';\n\nconst DEFAULT_NETWORK_HEADERS = ['content-length', 'content-type', 'accept'];\n\nlet _initialized = false;\n\ntype InitialReplayPluginOptions = Omit &\n Partial>;\n\nexport const replayIntegration = ((options?: ReplayConfiguration) => {\n // eslint-disable-next-line deprecation/deprecation\n return new Replay(options);\n}) satisfies IntegrationFn;\n\n/**\n * The main replay integration class, to be passed to `init({ integrations: [] })`.\n * @deprecated Use `replayIntegration()` instead.\n */\nexport class Replay implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Replay';\n\n /**\n * @inheritDoc\n */\n public name: string;\n\n /**\n * Options to pass to `rrweb.record()`\n */\n private readonly _recordingOptions: RecordingOptions;\n\n /**\n * Initial options passed to the replay integration, merged with default values.\n * Note: `sessionSampleRate` and `errorSampleRate` are not required here, as they\n * can only be finally set when setupOnce() is called.\n *\n * @private\n */\n private readonly _initialOptions: InitialReplayPluginOptions;\n\n private _replay?: ReplayContainer;\n\n public constructor({\n flushMinDelay = DEFAULT_FLUSH_MIN_DELAY,\n flushMaxDelay = DEFAULT_FLUSH_MAX_DELAY,\n minReplayDuration = MIN_REPLAY_DURATION,\n maxReplayDuration = MAX_REPLAY_DURATION,\n stickySession = true,\n useCompression = true,\n workerUrl,\n _experiments = {},\n sessionSampleRate,\n errorSampleRate,\n maskAllText = true,\n maskAllInputs = true,\n blockAllMedia = true,\n\n mutationBreadcrumbLimit = 750,\n mutationLimit = 10_000,\n\n slowClickTimeout = 7_000,\n slowClickIgnoreSelectors = [],\n\n networkDetailAllowUrls = [],\n networkDetailDenyUrls = [],\n networkCaptureBodies = true,\n networkRequestHeaders = [],\n networkResponseHeaders = [],\n\n mask = [],\n maskAttributes = ['title', 'placeholder'],\n unmask = [],\n block = [],\n unblock = [],\n ignore = [],\n maskFn,\n\n beforeAddRecordingEvent,\n beforeErrorSampling,\n\n // eslint-disable-next-line deprecation/deprecation\n blockClass,\n // eslint-disable-next-line deprecation/deprecation\n blockSelector,\n // eslint-disable-next-line deprecation/deprecation\n maskInputOptions,\n // eslint-disable-next-line deprecation/deprecation\n maskTextClass,\n // eslint-disable-next-line deprecation/deprecation\n maskTextSelector,\n // eslint-disable-next-line deprecation/deprecation\n ignoreClass,\n }: ReplayConfiguration = {}) {\n // eslint-disable-next-line deprecation/deprecation\n this.name = Replay.id;\n\n const privacyOptions = getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n ignoreClass,\n });\n\n this._recordingOptions = {\n maskAllInputs,\n maskAllText,\n maskInputOptions: { ...(maskInputOptions || {}), password: true },\n maskTextFn: maskFn,\n maskInputFn: maskFn,\n maskAttributeFn: (key: string, value: string, el: HTMLElement): string =>\n maskAttribute({\n maskAttributes,\n maskAllText,\n privacyOptions,\n key,\n value,\n el,\n }),\n\n ...privacyOptions,\n\n // Our defaults\n slimDOMOptions: 'all',\n inlineStylesheet: true,\n // Disable inline images as it will increase segment/replay size\n inlineImages: false,\n // collect fonts, but be aware that `sentry.io` needs to be an allowed\n // origin for playback\n collectFonts: true,\n errorHandler: (err: Error & { __rrweb__?: boolean }) => {\n try {\n err.__rrweb__ = true;\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\n this._initialOptions = {\n flushMinDelay,\n flushMaxDelay,\n minReplayDuration: Math.min(minReplayDuration, MIN_REPLAY_DURATION_LIMIT),\n maxReplayDuration: Math.min(maxReplayDuration, MAX_REPLAY_DURATION),\n stickySession,\n sessionSampleRate,\n errorSampleRate,\n useCompression,\n workerUrl,\n blockAllMedia,\n maskAllInputs,\n maskAllText,\n mutationBreadcrumbLimit,\n mutationLimit,\n slowClickTimeout,\n slowClickIgnoreSelectors,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders: _getMergedNetworkHeaders(networkRequestHeaders),\n networkResponseHeaders: _getMergedNetworkHeaders(networkResponseHeaders),\n beforeAddRecordingEvent,\n beforeErrorSampling,\n\n _experiments,\n };\n\n if (typeof sessionSampleRate === 'number') {\n // eslint-disable-next-line\n console.warn(\n `[Replay] You are passing \\`sessionSampleRate\\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \\`replaysSessionSampleRate\\` directly in the SDK init options, e.g.:\nSentry.init({ replaysSessionSampleRate: ${sessionSampleRate} })`,\n );\n\n this._initialOptions.sessionSampleRate = sessionSampleRate;\n }\n\n if (typeof errorSampleRate === 'number') {\n // eslint-disable-next-line\n console.warn(\n `[Replay] You are passing \\`errorSampleRate\\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \\`replaysOnErrorSampleRate\\` directly in the SDK init options, e.g.:\nSentry.init({ replaysOnErrorSampleRate: ${errorSampleRate} })`,\n );\n\n this._initialOptions.errorSampleRate = errorSampleRate;\n }\n\n if (this._initialOptions.blockAllMedia) {\n // `blockAllMedia` is a more user friendly option to configure blocking\n // embedded media elements\n this._recordingOptions.blockSelector = !this._recordingOptions.blockSelector\n ? MEDIA_SELECTORS\n : `${this._recordingOptions.blockSelector},${MEDIA_SELECTORS}`;\n }\n\n if (this._isInitialized && isBrowser()) {\n throw new Error('Multiple Sentry Session Replay instances are not supported');\n }\n\n this._isInitialized = true;\n }\n\n /** If replay has already been initialized */\n protected get _isInitialized(): boolean {\n return _initialized;\n }\n\n /** Update _isInitialized */\n protected set _isInitialized(value: boolean) {\n _initialized = value;\n }\n\n /**\n * Setup and initialize replay container\n */\n public setupOnce(): void {\n if (!isBrowser()) {\n return;\n }\n\n this._setup();\n\n // Once upon a time, we tried to create a transaction in `setupOnce` and it would\n // potentially create a transaction before some native SDK integrations have run\n // and applied their own global event processor. An example is:\n // https://github.com/getsentry/sentry-javascript/blob/b47ceafbdac7f8b99093ce6023726ad4687edc48/packages/browser/src/integrations/useragent.ts\n //\n // So we call `this._initialize()` in next event loop as a workaround to wait for other\n // global event processors to finish. This is no longer needed, but keeping it\n // here to avoid any future issues.\n setTimeout(() => this._initialize());\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will throw an error if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * PerformanceObserver, Recording, Sentry SDK, etc)\n */\n public start(): void {\n if (!this._replay) {\n return;\n }\n\n this._replay.start();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, until an error occurs.\n */\n public startBuffering(): void {\n if (!this._replay) {\n return;\n }\n\n this._replay.startBuffering();\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n public stop(): Promise {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n return this._replay.stop({ forceFlush: this._replay.recordingMode === 'session' });\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n public flush(options?: SendBufferedReplayOptions): Promise {\n if (!this._replay || !this._replay.isEnabled()) {\n return Promise.resolve();\n }\n\n return this._replay.sendBufferedReplayOrFlush(options);\n }\n\n /**\n * Get the current session ID.\n */\n public getReplayId(): string | undefined {\n if (!this._replay || !this._replay.isEnabled()) {\n return;\n }\n\n return this._replay.getSessionId();\n }\n\n /**\n * Initializes replay.\n */\n protected _initialize(): void {\n if (!this._replay) {\n return;\n }\n\n // We have to run this in _initialize, because this runs in setTimeout\n // So when this runs all integrations have been added\n // Before this, we cannot access integrations on the client,\n // so we need to mutate the options here\n this._maybeLoadFromReplayCanvasIntegration();\n\n this._replay.initializeSampling();\n }\n\n /** Setup the integration. */\n private _setup(): void {\n // Client is not available in constructor, so we need to wait until setupOnce\n const finalOptions = loadReplayOptionsFromClient(this._initialOptions);\n\n this._replay = new ReplayContainer({\n options: finalOptions,\n recordingOptions: this._recordingOptions,\n });\n }\n\n /** Get canvas options from ReplayCanvas integration, if it is also added. */\n private _maybeLoadFromReplayCanvasIntegration(): void {\n // To save bundle size, we skip checking for stuff here\n // and instead just try-catch everything - as generally this should all be defined\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n try {\n const client = getClient()!;\n const canvasIntegration = client.getIntegrationByName!('ReplayCanvas') as Integration & {\n getOptions(): ReplayCanvasIntegrationOptions;\n };\n if (!canvasIntegration) {\n return;\n }\n\n this._replay!['_canvas'] = canvasIntegration.getOptions();\n } catch {\n // ignore errors here\n }\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n }\n}\n\n/** Parse Replay-related options from SDK options */\nfunction loadReplayOptionsFromClient(initialOptions: InitialReplayPluginOptions): ReplayPluginOptions {\n const client = getClient();\n const opt = client && (client.getOptions() as BrowserClientReplayOptions);\n\n const finalOptions = { sessionSampleRate: 0, errorSampleRate: 0, ...dropUndefinedKeys(initialOptions) };\n\n if (!opt) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('SDK client is not available.');\n });\n return finalOptions;\n }\n\n if (\n initialOptions.sessionSampleRate == null && // TODO remove once deprecated rates are removed\n initialOptions.errorSampleRate == null && // TODO remove once deprecated rates are removed\n opt.replaysSessionSampleRate == null &&\n opt.replaysOnErrorSampleRate == null\n ) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n 'Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.',\n );\n });\n }\n\n if (typeof opt.replaysSessionSampleRate === 'number') {\n finalOptions.sessionSampleRate = opt.replaysSessionSampleRate;\n }\n\n if (typeof opt.replaysOnErrorSampleRate === 'number') {\n finalOptions.errorSampleRate = opt.replaysOnErrorSampleRate;\n }\n\n return finalOptions;\n}\n\nfunction _getMergedNetworkHeaders(headers: string[]): string[] {\n return [...DEFAULT_NETWORK_HEADERS, ...headers.map(header => header.toLowerCase())];\n}\n","import { getClient } from '@sentry/core';\nimport type { replayIntegration } from '../integration';\n\n/**\n * This is a small utility to get a type-safe instance of the Replay integration.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getReplay(): ReturnType | undefined {\n const client = getClient();\n return (\n client && client.getIntegrationByName && client.getIntegrationByName>('Replay')\n );\n}\n","import type { Event, EventHint, Exception, ExtendedError, StackParser } from '@sentry/types';\n\nimport { isInstanceOf } from './is';\nimport { truncate } from './string';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nexport function applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n maxValueLimit: number = 250,\n key: string,\n limit: number,\n event: Event,\n hint?: EventHint,\n): void {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException: Exception | undefined =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = truncateAggregateExceptions(\n aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException as ExtendedError,\n key,\n event.exception.values,\n originalException,\n 0,\n ),\n maxValueLimit,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n limit: number,\n error: ExtendedError,\n key: string,\n prevExceptions: Exception[],\n exception: Exception,\n exceptionId: number,\n): Exception[] {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n // Recursively call this function in order to walk down a chain of errors\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, error[key]);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key],\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (Array.isArray(error.errors)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, childError);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction applyExceptionGroupFieldsForParentException(exception: Exception, exceptionId: number): void {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n ...(exception.type === 'AggregateError' && { is_exception_group: true }),\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception: Exception,\n source: string,\n exceptionId: number,\n parentId: number | undefined,\n): void {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n\n/**\n * Truncate the message (exception.value) of all exceptions in the event.\n * Because this event processor is ran after `applyClientOptions`,\n * we need to truncate the message of the added exceptions here.\n */\nfunction truncateAggregateExceptions(exceptions: Exception[], maxValueLength: number): Exception[] {\n return exceptions.map(exception => {\n if (exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n return exception;\n });\n}\n","import type { DynamicSamplingContext } from '@sentry/types';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { isString } from './is';\nimport { logger } from './logger';\n\nexport const BAGGAGE_HEADER_NAME = 'baggage';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nexport const MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nexport function baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader: string | string[] | number | null | undefined | boolean,\n): Partial | undefined {\n if (!isString(baggageHeader) && !Array.isArray(baggageHeader)) {\n return undefined;\n }\n\n // Intermediary object to store baggage key value pairs of incoming baggage headers on.\n // It is later used to read Sentry-DSC-values from.\n let baggageObject: Readonly> = {};\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n baggageObject = baggageHeader.reduce>((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n for (const key of Object.keys(currBaggageObject)) {\n acc[key] = currBaggageObject[key];\n }\n return acc;\n }, {});\n } else {\n // Return undefined if baggage header is an empty string (technically an empty baggage header is not spec conform but\n // this is how we choose to handle it)\n if (!baggageHeader) {\n return undefined;\n }\n\n baggageObject = baggageHeaderToObject(baggageHeader);\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce>((acc, [key, value]) => {\n if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext as Partial;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nexport function dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext?: Partial,\n): string | undefined {\n if (!dynamicSamplingContext) {\n return undefined;\n }\n\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce>(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader: string): Record {\n return baggageHeader\n .split(',')\n .map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim())))\n .reduce>((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object: Record): string | undefined {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n","import { isString } from './is';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\ntype SimpleNode = {\n parentNode: SimpleNode;\n} | null;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(\n elem: unknown,\n options: string[] | { keyAttrs?: string[]; maxStringLength?: number } = {},\n): string {\n if (!elem) {\n return '';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n // @ts-expect-error WINDOW has HTMLElement\n if (WINDOW.HTMLElement) {\n // If using the component name annotation plugin, this value may be available on the DOM node\n if (elem instanceof HTMLElement && elem.dataset && elem.dataset['sentryComponent']) {\n return elem.dataset['sentryComponent'];\n }\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getDomElement(selector: string): E | null {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) as unknown as E;\n }\n return null;\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` attribute. This attribute is added at build-time\n * by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nexport function getComponentName(elem: unknown): string | null {\n // @ts-expect-error WINDOW has HTMLElement\n if (!WINDOW.HTMLElement) {\n return null;\n }\n\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n if (!currentElem) {\n return null;\n }\n\n if (currentElem instanceof HTMLElement && currentElem.dataset['sentryComponent']) {\n return currentElem.dataset['sentryComponent'];\n }\n\n currentElem = currentElem.parentNode;\n }\n\n return null;\n}\n","// https://github.com/alangpierce/sucrase/tree/265887868966917f3b924ce38dfad01fbab1329f\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2012-2018 various contributors (see AUTHORS)\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\nimport type { GenericFunction } from './types';\n\n/**\n * Polyfill for the optional chain operator, `?.`, given previous conversion of the expression into an array of values,\n * descriptors, and functions.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n * See https://github.com/alangpierce/sucrase/blob/265887868966917f3b924ce38dfad01fbab1329f/src/transformers/OptionalChainingNullishTransformer.ts#L15\n *\n * @param ops Array result of expression conversion\n * @returns The value of the expression\n */\nexport function _optionalChain(ops: unknown[]): unknown {\n let lastAccessLHS: unknown = undefined;\n let value = ops[0];\n let i = 1;\n while (i < ops.length) {\n const op = ops[i] as string;\n const fn = ops[i + 1] as (intermediateValue: unknown) => unknown;\n i += 2;\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n // really we're meaning to return `undefined` as an actual value here, but it saves bytes not to write it\n return;\n }\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn((...args: unknown[]) => (value as GenericFunction).call(lastAccessLHS, ...args));\n lastAccessLHS = undefined;\n }\n }\n return value;\n}\n\n// Sucrase version\n// function _optionalChain(ops) {\n// let lastAccessLHS = undefined;\n// let value = ops[0];\n// let i = 1;\n// while (i < ops.length) {\n// const op = ops[i];\n// const fn = ops[i + 1];\n// i += 2;\n// if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n// return undefined;\n// }\n// if (op === 'access' || op === 'optionalAccess') {\n// lastAccessLHS = value;\n// value = fn(value);\n// } else if (op === 'call' || op === 'optionalCall') {\n// value = fn((...args) => value.call(lastAccessLHS, ...args));\n// lastAccessLHS = undefined;\n// }\n// }\n// return value;\n// }\n","import type { DsnComponents, DsnLike, DsnProtocol } from '@sentry/types';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { consoleSandbox, logger } from './logger';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nexport function dsnFromString(str: string): DsnComponents | undefined {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n // This should be logged to the console\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(`Invalid Sentry Dsn: ${str}`);\n });\n return undefined;\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean {\n if (!DEBUG_BUILD) {\n return true;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents: ReadonlyArray = ['protocol', 'publicKey', 'host', 'projectId'];\n const hasMissingRequiredComponent = requiredComponents.find(component => {\n if (!dsn[component]) {\n logger.error(`Invalid Sentry Dsn: ${component} missing`);\n return true;\n }\n return false;\n });\n\n if (hasMissingRequiredComponent) {\n return false;\n }\n\n if (!projectId.match(/^\\d+$/)) {\n logger.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n return false;\n }\n\n if (!isValidProtocol(protocol)) {\n logger.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n return false;\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n logger.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n return false;\n }\n\n return true;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nexport function makeDsn(from: DsnLike): DsnComponents | undefined {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n if (!components || !validateDsn(components)) {\n return undefined;\n }\n return components;\n}\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\nexport type SdkSource = 'npm' | 'cdn' | 'loader';\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nexport function getSDKSource(): SdkSource {\n // @ts-expect-error __SENTRY_SDK_SOURCE__ is injected by rollup during build process\n return __SENTRY_SDK_SOURCE__;\n}\n","import type {\n Attachment,\n AttachmentItem,\n BaseEnvelopeHeaders,\n BaseEnvelopeItemHeaders,\n DataCategory,\n DsnComponents,\n Envelope,\n EnvelopeItemType,\n Event,\n EventEnvelopeHeaders,\n SdkInfo,\n SdkMetadata,\n TextEncoderInternal,\n} from '@sentry/types';\n\nimport { dsnToString } from './dsn';\nimport { normalize } from './normalize';\nimport { dropUndefinedKeys } from './object';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope(headers: E[0], items: E[1] = []): E {\n return [headers, items] as E;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope(envelope: E, newItem: E[1][number]): E {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] as unknown as E;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nexport function forEachEnvelopeItem(\n envelope: Envelope,\n callback: (envelopeItem: E[1][number], envelopeItemType: E[1][number][0]['type']) => boolean | void,\n): boolean {\n const envelopeItems = envelope[1];\n\n for (const envelopeItem of envelopeItems) {\n const envelopeItemType = envelopeItem[0].type;\n const result = callback(envelopeItem, envelopeItemType);\n\n if (result) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nexport function envelopeContainsItemType(envelope: Envelope, types: EnvelopeItemType[]): boolean {\n return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8.\n */\nfunction encodeUTF8(input: string, textEncoder?: TextEncoderInternal): Uint8Array {\n const utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nexport function serializeEnvelope(envelope: Envelope, textEncoder?: TextEncoderInternal): string | Uint8Array {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts: string | Uint8Array[] = JSON.stringify(envHeaders);\n\n function append(next: string | Uint8Array): void {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload: string;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers: Uint8Array[]): Uint8Array {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\nexport interface TextDecoderInternal {\n decode(input?: Uint8Array): string;\n}\n\n/**\n * Parses an envelope\n */\nexport function parseEnvelope(\n env: string | Uint8Array,\n textEncoder: TextEncoderInternal,\n textDecoder: TextDecoderInternal,\n): Envelope {\n let buffer = typeof env === 'string' ? textEncoder.encode(env) : env;\n\n function readBinary(length: number): Uint8Array {\n const bin = buffer.subarray(0, length);\n // Replace the buffer with the remaining data excluding trailing newline\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n\n function readJson(): T {\n let i = buffer.indexOf(0xa);\n // If we couldn't find a newline, we must have found the end of the buffer\n if (i < 0) {\n i = buffer.length;\n }\n\n return JSON.parse(textDecoder.decode(readBinary(i))) as T;\n }\n\n const envelopeHeader = readJson();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items: [any, any][] = [];\n\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n\n return [envelopeHeader, items];\n}\n\n/**\n * Creates attachment envelope items\n */\nexport function createAttachmentEnvelopeItem(\n attachment: Attachment,\n textEncoder?: TextEncoderInternal,\n): AttachmentItem {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP: Record = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n profile: 'profile',\n replay_event: 'replay',\n replay_recording: 'replay',\n check_in: 'monitor',\n feedback: 'feedback',\n span: 'span',\n statsd: 'metric_bucket',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nexport function envelopeItemTypeToDataCategory(type: EnvelopeItemType): DataCategory {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\n/** Extracts the minimal SDK info from the metadata or an events */\nexport function getSdkMetadataForEnvelopeHeader(metadataOrEvent?: SdkMetadata | Event): SdkInfo | undefined {\n if (!metadataOrEvent || !metadataOrEvent.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nexport function createEventEnvelopeHeaders(\n event: Event,\n sdkInfo: SdkInfo | undefined,\n tunnel: string | undefined,\n dsn?: DsnComponents,\n): EventEnvelopeHeaders {\n const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n return {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n ...(dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n","import type { ConsoleLevel } from '@sentry/types';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public logLevel: ConsoleLevel;\n\n public constructor(public message: string, logLevel: ConsoleLevel = 'warn') {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { logger } from '../logger';\nimport { getFunctionName } from '../stacktrace';\n\nexport type InstrumentHandlerType = 'console' | 'dom' | 'fetch' | 'history' | 'xhr' | 'error' | 'unhandledrejection';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type InstrumentHandlerCallback = (data: any) => void;\n\n// We keep the handlers globally\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Add a handler function. */\nexport function addHandler(type: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nexport function resetInstrumentationHandlers(): void {\n Object.keys(handlers).forEach(key => {\n handlers[key as InstrumentHandlerType] = undefined;\n });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nexport function maybeInstrument(type: InstrumentHandlerType, instrumentFn: () => void): void {\n if (!instrumented[type]) {\n instrumentFn();\n instrumented[type] = true;\n }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nexport function triggerHandlers(type: InstrumentHandlerType, data: unknown): void {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\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","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { ConsoleLevel, HandlerDataConsole } from '@sentry/types';\n\nimport { CONSOLE_LEVELS, originalConsoleMethods } from '../logger';\nimport { fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addConsoleInstrumentationHandler(handler: (data: HandlerDataConsole) => void): void {\n const type = 'console';\n addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole(): void {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: ConsoleLevel): void {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod: () => any): Function {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args: any[]): void {\n const handlerData: HandlerDataConsole = { args, level };\n triggerHandlers('console', handlerData);\n\n const log = originalConsoleMethods[level];\n log && log.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataDom } from '@sentry/types';\n\nimport { uuid4 } from '../misc';\nimport { addNonEnumerableProperty, fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\ntype SentryWrappedTarget = HTMLElement & { _sentryId?: string };\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\nconst DEBOUNCE_DURATION = 1000;\n\nlet debounceTimerID: number | undefined;\nlet lastCapturedEventType: string | undefined;\nlet lastCapturedEventTargetId: string | undefined;\n\n/**\n * Add an instrumentation handler for when a click or a keypress happens.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addClickKeypressInstrumentationHandler(handler: (data: HandlerDataDom) => void): void {\n const type = 'dom';\n addHandler(type, handler);\n maybeInstrument(type, instrumentDOM);\n}\n\n/** Exported for tests only. */\nexport function instrumentDOM(): void {\n if (!WINDOW.document) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (WINDOW as any)[target] && (WINDOW as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\n/**\n * Check whether the event is similar to the last captured one. For example, two click events on the same button.\n */\nfunction isSimilarToLastCapturedEvent(event: Event): boolean {\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (event.type !== lastCapturedEventType) {\n return false;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (!event.target || (event.target as SentryWrappedTarget)._sentryId !== lastCapturedEventTargetId) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return true;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(eventType: string, target: SentryWrappedTarget | null): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (eventType !== 'keypress') {\n return false;\n }\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n */\nfunction makeDOMEventHandler(\n handler: (data: HandlerDataDom) => void,\n globalListener: boolean = false,\n): (event: Event) => void {\n return (event: Event & { _sentryCaptured?: true }): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || event['_sentryCaptured']) {\n return;\n }\n\n const target = getEventTarget(event);\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event.type, target)) {\n return;\n }\n\n // Mark event as \"seen\"\n addNonEnumerableProperty(event, '_sentryCaptured', true);\n\n if (target && !target._sentryId) {\n // Add UUID to event target so we can identify if\n addNonEnumerableProperty(target, '_sentryId', uuid4());\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no last captured event, it means that we can safely capture the new event and store it for future comparisons.\n // If there is a last captured event, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n if (!isSimilarToLastCapturedEvent(event)) {\n const handlerData: HandlerDataDom = { event, name, global: globalListener };\n handler(handlerData);\n lastCapturedEventType = event.type;\n lastCapturedEventTargetId = target ? target._sentryId : undefined;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n lastCapturedEventTargetId = undefined;\n lastCapturedEventType = undefined;\n }, DEBOUNCE_DURATION);\n };\n}\n\nfunction getEventTarget(event: Event): SentryWrappedTarget | null {\n try {\n return event.target as SentryWrappedTarget | null;\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n return null;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataFetch } from '@sentry/types';\n\nimport { fill } from '../object';\nimport { supportsNativeFetch } from '../supports';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\ntype FetchResource = string | { toString(): string } | { url: string };\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addFetchInstrumentationHandler(handler: (data: HandlerDataFetch) => void): void {\n const type = 'fetch';\n addHandler(type, handler);\n maybeInstrument(type, instrumentFetch);\n}\n\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(GLOBAL_OBJ, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const { method, url } = parseFetchArgs(args);\n\n const handlerData: HandlerDataFetch = {\n args,\n fetchData: {\n method,\n url,\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(GLOBAL_OBJ, args).then(\n (response: Response) => {\n const finishedHandlerData: HandlerDataFetch = {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n };\n\n triggerHandlers('fetch', finishedHandlerData);\n return response;\n },\n (error: Error) => {\n const erroredHandlerData: HandlerDataFetch = {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n };\n\n triggerHandlers('fetch', erroredHandlerData);\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\nfunction hasProp(obj: unknown, prop: T): obj is Record {\n return !!obj && typeof obj === 'object' && !!(obj as Record)[prop];\n}\n\nfunction getUrlFromResource(resource: FetchResource): string {\n if (typeof resource === 'string') {\n return resource;\n }\n\n if (!resource) {\n return '';\n }\n\n if (hasProp(resource, 'url')) {\n return resource.url;\n }\n\n if (resource.toString) {\n return resource.toString();\n }\n\n return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request.\n * Exported for tests only.\n */\nexport function parseFetchArgs(fetchArgs: unknown[]): { method: string; url: string } {\n if (fetchArgs.length === 0) {\n return { method: 'GET', url: '' };\n }\n\n if (fetchArgs.length === 2) {\n const [url, options] = fetchArgs as [FetchResource, object];\n\n return {\n url: getUrlFromResource(url),\n method: hasProp(options, 'method') ? String(options.method).toUpperCase() : 'GET',\n };\n }\n\n const arg = fetchArgs[0];\n return {\n url: getUrlFromResource(arg as FetchResource),\n method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n };\n}\n","import type { HandlerDataError } from '@sentry/types';\n\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nlet _oldOnErrorHandler: (typeof GLOBAL_OBJ)['onerror'] | null = null;\n\n/**\n * Add an instrumentation handler for when an error is captured by the global error handler.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addGlobalErrorInstrumentationHandler(handler: (data: HandlerDataError) => void): void {\n const type = 'error';\n addHandler(type, handler);\n maybeInstrument(type, instrumentError);\n}\n\nfunction instrumentError(): void {\n _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n\n GLOBAL_OBJ.onerror = function (\n msg: string | object,\n url?: string,\n line?: number,\n column?: number,\n error?: Error,\n ): boolean {\n const handlerData: HandlerDataError = {\n column,\n error,\n line,\n msg,\n url,\n };\n triggerHandlers('error', handlerData);\n\n if (_oldOnErrorHandler && !_oldOnErrorHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { HandlerDataUnhandledRejection } from '@sentry/types';\n\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nlet _oldOnUnhandledRejectionHandler: (typeof GLOBAL_OBJ)['onunhandledrejection'] | null = null;\n\n/**\n * Add an instrumentation handler for when an unhandled promise rejection is captured.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addGlobalUnhandledRejectionInstrumentationHandler(\n handler: (data: HandlerDataUnhandledRejection) => void,\n): void {\n const type = 'unhandledrejection';\n addHandler(type, handler);\n maybeInstrument(type, instrumentUnhandledRejection);\n}\n\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n\n GLOBAL_OBJ.onunhandledrejection = function (e: any): boolean {\n const handlerData: HandlerDataUnhandledRejection = e;\n triggerHandlers('unhandledrejection', handlerData);\n\n if (_oldOnUnhandledRejectionHandler && !_oldOnUnhandledRejectionHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n","// Based on https://github.com/angular/angular.js/pull/13945/files\n// The MIT License\n\n// Copyright (c) 2010-2016 Google, Inc. http://angularjs.org\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport { getGlobalObject } from '../worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chromeVar = (WINDOW as any).chrome;\n const isChromePackagedApp = chromeVar && chromeVar.app && chromeVar.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataHistory } from '@sentry/types';\n\nimport { fill } from '../object';\nimport { supportsHistory } from '../supports';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\nlet lastHref: string | undefined;\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addHistoryInstrumentationHandler(handler: (data: HandlerDataHistory) => void): void {\n const type = 'history';\n addHandler(type, handler);\n maybeInstrument(type, instrumentHistory);\n}\n\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n const handlerData: HandlerDataHistory = { from, to };\n triggerHandlers('history', handlerData);\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n const handlerData: HandlerDataHistory = { from, to };\n triggerHandlers('history', handlerData);\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n","// TODO(v8): Move everything in this file into the browser package. Nothing here is generic and we run risk of leaking browser types into non-browser packages.\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { HandlerDataXhr, SentryWrappedXMLHttpRequest, WrappedFunction } from '@sentry/types';\n\nimport { isString } from '../is';\nimport { fill } from '../object';\nimport { GLOBAL_OBJ } from '../worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './_handlers';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\nexport const SENTRY_XHR_DATA_KEY = '__sentry_xhr_v3__';\n\n/**\n * Add an instrumentation handler for when an XHR request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addXhrInstrumentationHandler(handler: (data: HandlerDataXhr) => void): void {\n const type = 'xhr';\n addHandler(type, handler);\n maybeInstrument(type, instrumentXHR);\n}\n\n/** Exported only for tests. */\nexport function instrumentXHR(): void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!(WINDOW as any).XMLHttpRequest) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: XMLHttpRequest & SentryWrappedXMLHttpRequest, ...args: any[]): void {\n const startTimestamp = Date.now();\n\n // open() should always be called with two or more arguments\n // But to be on the safe side, we actually validate this and bail out if we don't have a method & url\n const method = isString(args[0]) ? args[0].toUpperCase() : undefined;\n const url = parseUrl(args[1]);\n\n if (!method || !url) {\n return originalOpen.apply(this, args);\n }\n\n this[SENTRY_XHR_DATA_KEY] = {\n method,\n url,\n request_headers: {},\n };\n\n // if Sentry key appears in URL, don't capture it as a request\n if (method === 'POST' && url.match(/sentry_key/)) {\n this.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler: () => void = () => {\n // For whatever reason, this is not the same instance here as from the outer method\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (!xhrInfo) {\n return;\n }\n\n if (this.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = this.status;\n } catch (e) {\n /* do nothing */\n }\n\n const handlerData: HandlerDataXhr = {\n args: [method, url],\n endTimestamp: Date.now(),\n startTimestamp,\n xhr: this,\n };\n triggerHandlers('xhr', handlerData);\n }\n };\n\n if ('onreadystatechange' in this && typeof this.onreadystatechange === 'function') {\n fill(this, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (this: SentryWrappedXMLHttpRequest, ...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(this, readyStateArgs);\n };\n });\n } else {\n this.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n fill(this, 'setRequestHeader', function (original: WrappedFunction): Function {\n return function (this: SentryWrappedXMLHttpRequest, ...setRequestHeaderArgs: unknown[]): void {\n const [header, value] = setRequestHeaderArgs;\n\n const xhrInfo = this[SENTRY_XHR_DATA_KEY];\n\n if (xhrInfo && isString(header) && isString(value)) {\n xhrInfo.request_headers[header.toLowerCase()] = value;\n }\n\n return original.apply(this, setRequestHeaderArgs);\n };\n });\n\n return originalOpen.apply(this, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: XMLHttpRequest & SentryWrappedXMLHttpRequest, ...args: any[]): void {\n const sentryXhrData = this[SENTRY_XHR_DATA_KEY];\n\n if (!sentryXhrData) {\n return originalSend.apply(this, args);\n }\n\n if (args[0] !== undefined) {\n sentryXhrData.body = args[0];\n }\n\n const handlerData: HandlerDataXhr = {\n args: [sentryXhrData.method, sentryXhrData.url],\n startTimestamp: Date.now(),\n xhr: this,\n };\n triggerHandlers('xhr', handlerData);\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nfunction parseUrl(url: string | unknown): string | undefined {\n if (isString(url)) {\n return url;\n }\n\n try {\n // url can be a string or URL\n // but since URL is not available in IE11, we do not check for it,\n // but simply assume it is an URL and return `toString()` from it (which returns the full URL)\n // If that fails, we just return undefined\n return (url as URL).toString();\n } catch {} // eslint-disable-line no-empty\n\n return undefined;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport type { ParameterizedString, PolymorphicEvent, Primitive } from '@sentry/types';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat: unknown, className: string): boolean {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isParameterizedString(wat: unknown): wat is ParameterizedString {\n return (\n typeof wat === 'object' &&\n wat !== null &&\n '__sentry_template_string__' in wat &&\n '__sentry_template_values__' in wat\n );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): wat is PolymorphicEvent {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat: unknown): boolean {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\ninterface VueViewModel {\n // Vue3\n __isVue?: boolean;\n // Vue2\n _isVue?: boolean;\n}\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isVueViewModel(wat: unknown): boolean {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n return !!(typeof wat === 'object' && wat !== null && ((wat as VueViewModel).__isVue || (wat as VueViewModel)._isVue));\n}\n","import { isNodeEnv } from './node';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/**\n * Returns true if we are in the browser.\n */\nexport function isBrowser(): boolean {\n // eslint-disable-next-line no-restricted-globals\n return typeof window !== 'undefined' && (!isNodeEnv() || isElectronNodeRenderer());\n}\n\ntype ElectronProcess = { type?: string };\n\n// Electron renderers with nodeIntegration enabled are detected as Node.js so we specifically test for them\nfunction isElectronNodeRenderer(): boolean {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (GLOBAL_OBJ as any).process !== undefined && ((GLOBAL_OBJ as any).process as ElectronProcess).type === 'renderer'\n );\n}\n","import type { ConsoleLevel } from '@sentry/types';\n\nimport { DEBUG_BUILD } from './debug-build';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nexport const CONSOLE_LEVELS: readonly ConsoleLevel[] = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'log',\n 'assert',\n 'trace',\n] as const;\n\ntype LoggerMethod = (...args: unknown[]) => void;\ntype LoggerConsoleMethods = Record;\n\n/** This may be mutated by the console instrumentation. */\nexport const originalConsoleMethods: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key in ConsoleLevel]?: (...args: any[]) => void;\n} = {};\n\n/** JSDoc */\ninterface Logger extends LoggerConsoleMethods {\n disable(): void;\n enable(): void;\n isEnabled(): boolean;\n}\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback: () => T): T {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console as Console;\n const wrappedFuncs: Partial = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) as ConsoleLevel[];\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level] as LoggerMethod;\n wrappedFuncs[level] = console[level] as LoggerMethod | undefined;\n console[level] = originalConsoleMethod;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] as LoggerMethod;\n });\n }\n}\n\nfunction makeLogger(): Logger {\n let enabled = false;\n const logger: Partial = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n isEnabled: () => enabled,\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args: any[]) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger as Logger;\n}\n\nexport const logger = makeLogger();\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Event, Exception, Mechanism, StackFrame } from '@sentry/types';\n\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\nimport { GLOBAL_OBJ } from './worldwide';\n\ninterface CryptoInternal {\n getRandomValues(array: Uint8Array): Uint8Array;\n randomUUID?(): string;\n}\n\n/** An interface for common properties on global */\ninterface CryptoGlobal {\n msCrypto?: CryptoInternal;\n crypto?: CryptoInternal;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const gbl = GLOBAL_OBJ as typeof GLOBAL_OBJ & CryptoGlobal;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n let getRandomByte = (): number => Math.random() * 16;\n try {\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n if (crypto && crypto.getRandomValues) {\n getRandomByte = () => {\n // crypto.getRandomValues might return undefined instead of the typed array\n // in old Chromium versions (e.g. 23.0.1235.0 (151422))\n // However, `typedArray` is still filled in-place.\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues#typedarray\n const typedArray = new Uint8Array(1);\n crypto.getRandomValues(typedArray);\n return typedArray[0];\n };\n }\n } catch (_) {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] as unknown as string) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c as unknown as number) ^ ((getRandomByte() & 15) >> ((c as unknown as number) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nexport function arrayify(maybeArray: T | T[]): T[] {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\nimport { isBrowserBundle } from './env';\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName: string): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type MemoFunc = [\n // memoize\n (obj: any) => boolean,\n // unmemoize\n (obj: any) => void,\n];\n\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder(): MemoFunc {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner: any = hasWeakSet ? new WeakSet() : [];\n function memoize(obj: any): boolean {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj: any): void {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n","import type { Primitive } from '@sentry/types';\n\nimport { isNaN, isSyntheticEvent, isVueViewModel } from './is';\nimport type { MemoFunc } from './memo';\nimport { memoBuilder } from './memo';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray = { [key: string]: T };\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function normalize(input: unknown, depth: number = 100, maxProperties: number = +Infinity): any {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key: string,\n value: unknown,\n depth: number = +Infinity,\n maxProperties: number = +Infinity,\n memo: MemoFunc = memoBuilder(),\n): Primitive | ObjOrArray {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))\n ) {\n return value as Primitive;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value as ObjOrArray)['__sentry_skip_normalization__']) {\n return value as ObjOrArray;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value as ObjOrArray)['__sentry_override_normalization_depth__'] === 'number'\n ? ((value as ObjOrArray)['__sentry_override_normalization_depth__'] as number)\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value as unknown & { toJSON?: () => unknown };\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value as ObjOrArray);\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * @deprecated This export will be removed in v8.\n */\nexport { visit as walk };\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key: unknown,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value: Exclude,\n): string {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return '[VueViewModel]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value: unknown): string {\n const prototype: Prototype | null = Object.getPrototypeOf(value);\n\n return prototype ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nexport function normalizeUrlToBase(url: string, basePath: string): string {\n const escapedBase = basePath\n // Backslash to forward\n .replace(/\\\\/g, '/')\n // Escape RegExp special characters\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch (_Oo) {\n // Sometime this breaks\n }\n return (\n newUrl\n .replace(/\\\\/g, '/')\n .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n );\n}\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { DEBUG_BUILD } from './debug-build';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { logger } from './logger';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: object, name: string, value: unknown): void {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n } catch (o_O) {\n DEBUG_BUILD && logger.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch (o_O) {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func: WrappedFunction): WrappedFunction | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nexport function convertToPlainObject(\n value: V,\n):\n | {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n }\n | {\n [ownProps: string]: unknown;\n message: string;\n name: string;\n stack?: string;\n }\n | V {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj: {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n } = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: unknown): { [key: string]: unknown } {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps: { [key: string]: unknown } = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj as Record)[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nexport function extractExceptionKeysForMessage(exception: Record, maxLength: number = 40): string {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nexport function dropUndefinedKeys(inputValue: T): T {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue: T, memoizationMap: Map): T {\n if (isPojo(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: { [key: string]: any } = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue as T;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n const returnValue: unknown[] = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item: unknown) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue as unknown as T;\n }\n\n return inputValue;\n}\n\nfunction isPojo(input: unknown): input is Record {\n if (!isPlainObject(input)) {\n return false;\n }\n\n try {\n const name = (Object.getPrototypeOf(input) as { constructor: { name: string } }).constructor.name;\n return !name || name === 'Object';\n } catch {\n return true;\n }\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n","import type { DataCategory, TransportMakeRequestResponse } from '@sentry/types';\n\n// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\nexport type RateLimits = Record;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nexport function disabledUntil(limits: RateLimits, dataCategory: DataCategory): number {\n return limits[dataCategory] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, dataCategory: DataCategory, now: number = Date.now()): boolean {\n return disabledUntil(limits, dataCategory) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n { statusCode, headers }: TransportMakeRequestResponse,\n now: number = Date.now(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n * Semicolon-separated list of metric namespace identifiers. Defines which namespace(s) will be affected.\n * Only present if rate limit applies to the metric_bucket data category.\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories, , , namespaces] = limit.split(':', 5);\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n if (category === 'metric_bucket') {\n // namespaces will be present when category === 'metric_bucket'\n if (!namespaces || namespaces.split(';').includes('custom')) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n","/* eslint-disable deprecation/deprecation */\nimport type { Severity, SeverityLevel } from '@sentry/types';\n\n// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nexport const validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nexport function severityFromString(level: Severity | SeverityLevel | string): Severity {\n return severityLevelFromString(level) as Severity;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nexport function severityLevelFromString(level: SeverityLevel | string): SeverityLevel {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') as SeverityLevel;\n}\n","import type { StackFrame, StackLineParser, StackParser } from '@sentry/types';\n\nimport type { GetModuleFn } from './node-stack-trace';\nimport { filenameIsInApp, node } from './node-stack-trace';\n\nexport { filenameIsInApp };\n\nconst STACKTRACE_FRAME_LIMIT = 50;\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirst: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirst; i < lines.length; i++) {\n const line = lines[i];\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nexport function stackParserFromStackParserOptions(stackParser: StackParser | StackLineParser[]): StackParser {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: ReadonlyArray): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n const localStack = Array.from(stack);\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (/sentryWrapped/.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (STRIP_FRAME_REGEXP.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n\n // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n // is produced within the hub itself, making it:\n //\n // Sentry.captureException()\n // getCurrentHub().captureException()\n //\n // instead of just the top `Sentry` call itself.\n // This forces us to possibly strip an additional frame in the exact same was as above.\n if (STRIP_FRAME_REGEXP.test(localStack[localStack.length - 1].function || '')) {\n localStack.pop();\n }\n }\n\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n ...frame,\n filename: frame.filename || localStack[localStack.length - 1].filename,\n function: frame.function || '?',\n }));\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nexport function nodeStackLineParser(getModule?: GetModuleFn): StackLineParser {\n return [90, node(getModule)];\n}\n","import { isRegExp, isString, isVueViewModel } from './is';\n\nexport { escapeStringForRegex } from './vendor/escapeStringForRegex';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push('[VueViewModel]');\n } else {\n output.push(String(value));\n }\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nexport function isMatchingPattern(\n value: string,\n pattern: RegExp | string,\n requireExactStringMatch: boolean = false,\n): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nexport function stringMatchesSomePattern(\n testString: string,\n patterns: Array = [],\n requireExactStringMatch: boolean = false,\n): boolean {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n","import { DEBUG_BUILD } from './debug-build';\nimport { logger } from './logger';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject();\n\ndeclare const EdgeRuntime: string | undefined;\n\nexport { supportsHistory } from './vendor/supportsHistory';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-expect-error It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (typeof EdgeRuntime === 'string') {\n return true;\n }\n\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\nexport function resolvedSyncPromise(): PromiseLike;\nexport function resolvedSyncPromise(value: T | PromiseLike): PromiseLike;\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value?: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise implements PromiseLike {\n private _state: States;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]>;\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void,\n ) {\n this._state = States.PENDING;\n this._handlers = [];\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n","import { GLOBAL_OBJ } from './worldwide';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n *\n * TODO(v8): Return type should be rounded.\n */\nexport function dateTimestampInSeconds(): number {\n return Date.now() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc(): () => number {\n const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & { performance?: Performance };\n if (!performance || !performance.now) {\n return dateTimestampInSeconds;\n }\n\n // Some browser and environments don't have a timeOrigin, so we fallback to\n // using Date.now() to compute the starting time.\n const approxStartingTimeOrigin = Date.now() - performance.now();\n const timeOrigin = performance.timeOrigin == undefined ? approxStartingTimeOrigin : performance.timeOrigin;\n\n // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n //\n // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n // correct for this.\n // See: https://github.com/getsentry/sentry-javascript/issues/2590\n // See: https://github.com/mdn/content/issues/4713\n // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n return () => {\n return (timeOrigin + performance.now()) / ONE_SECOND_IN_MS;\n };\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport const timestampInSeconds = createUnixTimestampInSecondsFunc();\n\n/**\n * Re-exported with an old name for backwards-compatibility.\n * TODO (v8): Remove this\n *\n * @deprecated Use `timestampInSeconds` instead.\n */\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","import type { PropagationContext, TraceparentData } from '@sentry/types';\n\nimport { baggageHeaderToDynamicSamplingContext } from './baggage';\nimport { uuid4 } from './misc';\n\n// eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor -- RegExp is used for readability here\nexport const TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent?: string): TraceparentData | undefined {\n if (!traceparent) {\n return undefined;\n }\n\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (!matches) {\n return undefined;\n }\n\n let parentSampled: boolean | undefined;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n}\n\n/**\n * Create tracing context from incoming headers.\n *\n * @deprecated Use `propagationContextFromHeaders` instead.\n */\n// TODO(v8): Remove this function\nexport function tracingContextFromHeaders(\n sentryTrace: Parameters[0],\n baggage: Parameters[0],\n): {\n traceparentData: ReturnType;\n dynamicSamplingContext: ReturnType;\n propagationContext: PropagationContext;\n} {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n const { traceId, parentSpanId, parentSampled } = traceparentData || {};\n\n if (!traceparentData) {\n return {\n traceparentData,\n dynamicSamplingContext: undefined,\n propagationContext: {\n traceId: traceId || uuid4(),\n spanId: uuid4().substring(16),\n },\n };\n } else {\n return {\n traceparentData,\n dynamicSamplingContext: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n propagationContext: {\n traceId: traceId || uuid4(),\n parentSpanId: parentSpanId || uuid4().substring(16),\n spanId: uuid4().substring(16),\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n },\n };\n }\n}\n\n/**\n * Create a propagation context from incoming headers.\n */\nexport function propagationContextFromHeaders(\n sentryTrace: string | undefined,\n baggage: string | number | boolean | string[] | null | undefined,\n): PropagationContext {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n const { traceId, parentSpanId, parentSampled } = traceparentData || {};\n\n if (!traceparentData) {\n return {\n traceId: traceId || uuid4(),\n spanId: uuid4().substring(16),\n };\n } else {\n return {\n traceId: traceId || uuid4(),\n parentSpanId: parentSpanId || uuid4().substring(16),\n spanId: uuid4().substring(16),\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n };\n }\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nexport function generateSentryTraceHeader(\n traceId: string = uuid4(),\n spanId: string = uuid4().substring(16),\n sampled?: boolean,\n): string {\n let sampledString = '';\n if (sampled !== undefined) {\n sampledString = sampled ? '-1' : '-0';\n }\n return `${traceId}-${spanId}${sampledString}`;\n}\n","type PartialURL = {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n search?: string;\n hash?: string;\n};\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url: string): PartialURL {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nexport function getNumberOfUrlSegments(url: string): number {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span description\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nexport function getSanitizedUrlString(url: PartialURL): string {\n const { protocol, host, path } = url;\n\n const filteredHost =\n (host &&\n host\n // Always filter out authority\n .replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n // TODO: Use new URL global if it exists\n .replace(/(:80)$/, '')\n .replace(/(:443)$/, '')) ||\n '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n *\n * Note: This file was originally called `global.ts`, but was changed to unblock users which might be doing\n * string replaces with bundlers like Vite for `global` (would break imports that rely on importing from utils/src/global).\n *\n * Why worldwide?\n *\n * Why not?\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Integration } from '@sentry/types';\n\nimport type { SdkSource } from './env';\n\n/** Internal global with common properties and Sentry extensions */\nexport interface InternalGlobal {\n navigator?: { userAgent?: string };\n console: Console;\n Sentry?: {\n Integrations?: Integration[];\n };\n onerror?: {\n (event: object | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\n __SENTRY_INSTRUMENTED__?: true;\n __SENTRY_LOADER__?: true;\n };\n onunhandledrejection?: {\n (event: unknown): boolean;\n __SENTRY_INSTRUMENTED__?: true;\n __SENTRY_LOADER__?: true;\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n SENTRY_SDK_SOURCE?: SdkSource;\n /**\n * Debug IDs are indirectly injected by Sentry CLI or bundler plugins to directly reference a particular source map\n * for resolving of a source file. The injected code will place an entry into the record for each loaded bundle/JS\n * file.\n */\n _sentryDebugIds?: Record;\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n extensions?: {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n /**\n * Raw module metadata that is injected by bundler plugins.\n *\n * Keys are `error.stack` strings, values are the metadata.\n */\n _sentryModuleMetadata?: Record;\n}\n\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj: { Math?: Math }): any | undefined {\n return obj && obj.Math == Math ? obj : undefined;\n}\n\n/** Get's the global object for the current JavaScript runtime */\nexport const GLOBAL_OBJ: InternalGlobal =\n (typeof globalThis == 'object' && isGlobalObj(globalThis)) ||\n // eslint-disable-next-line no-restricted-globals\n (typeof window == 'object' && isGlobalObj(window)) ||\n (typeof self == 'object' && isGlobalObj(self)) ||\n (typeof global == 'object' && isGlobalObj(global)) ||\n (function (this: any) {\n return this;\n })() ||\n {};\n\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\nexport function getGlobalObject(): T & InternalGlobal {\n return GLOBAL_OBJ as T & InternalGlobal;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(name: keyof InternalGlobal['__SENTRY__'], creator: () => T, obj?: unknown): T {\n const gbl = (obj || GLOBAL_OBJ) as InternalGlobal;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n","import { captureException } from '@sentry/core';\nimport { consoleSandbox } from '@sentry/utils';\n\nimport type { ViewModel, Vue, VueOptions } from './types';\nimport { formatComponentName, generateComponentTrace } from './vendor/components';\n\ntype UnknownFunc = (...args: unknown[]) => void;\n\nexport const attachErrorHandler = (app: Vue, options: VueOptions): void => {\n const { errorHandler, warnHandler, silent } = app.config;\n\n app.config.errorHandler = (error: Error, vm: ViewModel, lifecycleHook: string): void => {\n const componentName = formatComponentName(vm, false);\n const trace = vm ? generateComponentTrace(vm) : '';\n const metadata: Record = {\n componentName,\n lifecycleHook,\n trace,\n };\n\n if (options.attachProps && vm) {\n // Vue2 - $options.propsData\n // Vue3 - $props\n if (vm.$options && vm.$options.propsData) {\n metadata.propsData = vm.$options.propsData;\n } else if (vm.$props) {\n metadata.propsData = vm.$props;\n }\n }\n\n // Capture exception in the next event loop, to make sure that all breadcrumbs are recorded in time.\n setTimeout(() => {\n captureException(error, {\n captureContext: { contexts: { vue: metadata } },\n mechanism: { handled: false },\n });\n });\n\n if (typeof errorHandler === 'function') {\n (errorHandler as UnknownFunc).call(app, error, vm, lifecycleHook);\n }\n\n if (options.logErrors) {\n const hasConsole = typeof console !== 'undefined';\n const message = `Error in ${lifecycleHook}: \"${error && error.toString()}\"`;\n\n if (warnHandler) {\n (warnHandler as UnknownFunc).call(null, message, vm, trace);\n } else if (hasConsole && !silent) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(`[Vue warn]: ${message}${trace}`);\n });\n }\n }\n };\n};\n","import type {\n Client,\n Event,\n EventHint,\n Exception,\n Extras,\n Hub,\n Mechanism,\n ParameterizedString,\n Severity,\n SeverityLevel,\n StackFrame,\n StackParser,\n} from '@sentry/types';\n\nimport { isError, isParameterizedString, isPlainObject } from './is';\nimport { addExceptionMechanism, addExceptionTypeValue } from './misc';\nimport { normalizeToSize } from './normalize';\nimport { extractExceptionKeysForMessage } from './object';\n\n/**\n * Extracts stack frames from the error.stack string\n */\nexport function parseStackFrames(stackParser: StackParser, error: Error): StackFrame[] {\n return stackParser(error.stack || '', 1);\n}\n\n/**\n * Extracts stack frames from the error and builds a Sentry Exception\n */\nexport function exceptionFromError(stackParser: StackParser, error: Error): Exception {\n const exception: Exception = {\n type: error.name || error.constructor.name,\n value: error.message,\n };\n\n const frames = parseStackFrames(stackParser, error);\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n return exception;\n}\n\nfunction getMessageForObject(exception: object): string {\n if ('name' in exception && typeof exception.name === 'string') {\n let message = `'${exception.name}' captured as exception`;\n\n if ('message' in exception && typeof exception.message === 'string') {\n message += ` with message '${exception.message}'`;\n }\n\n return message;\n } else if ('message' in exception && typeof exception.message === 'string') {\n return exception.message;\n } else {\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n return `Object captured as exception with keys: ${extractExceptionKeysForMessage(\n exception as Record,\n )}`;\n }\n}\n\n/**\n * Builds and Event from a Exception\n *\n * TODO(v8): Remove getHub fallback\n * @hidden\n */\nexport function eventFromUnknownInput(\n // eslint-disable-next-line deprecation/deprecation\n getHubOrClient: (() => Hub) | Client | undefined,\n stackParser: StackParser,\n exception: unknown,\n hint?: EventHint,\n): Event {\n const client =\n typeof getHubOrClient === 'function'\n ? // eslint-disable-next-line deprecation/deprecation\n getHubOrClient().getClient()\n : getHubOrClient;\n\n let ex: unknown = exception;\n const providedMechanism: Mechanism | undefined =\n hint && hint.data && (hint.data as { mechanism: Mechanism }).mechanism;\n const mechanism: Mechanism = providedMechanism || {\n handled: true,\n type: 'generic',\n };\n\n let extras: Extras | undefined;\n\n if (!isError(exception)) {\n if (isPlainObject(exception)) {\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n extras = { ['__serialized__']: normalizeToSize(exception as Record, normalizeDepth) };\n\n const message = getMessageForObject(exception);\n ex = (hint && hint.syntheticException) || new Error(message);\n (ex as Error).message = message;\n } else {\n // This handles when someone does: `throw \"something awesome\";`\n // We use synthesized Error here so we can extract a (rough) stack trace.\n ex = (hint && hint.syntheticException) || new Error(exception as string);\n (ex as Error).message = exception as string;\n }\n mechanism.synthetic = true;\n }\n\n const event: Event = {\n exception: {\n values: [exceptionFromError(stackParser, ex as Error)],\n },\n };\n\n if (extras) {\n event.extra = extras;\n }\n\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, mechanism);\n\n return {\n ...event,\n event_id: hint && hint.event_id,\n };\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n stackParser: StackParser,\n message: ParameterizedString,\n // eslint-disable-next-line deprecation/deprecation\n level: Severity | SeverityLevel = 'info',\n hint?: EventHint,\n attachStacktrace?: boolean,\n): Event {\n const event: Event = {\n event_id: hint && hint.event_id,\n level,\n };\n\n if (attachStacktrace && hint && hint.syntheticException) {\n const frames = parseStackFrames(stackParser, hint.syntheticException);\n if (frames.length) {\n event.exception = {\n values: [\n {\n value: message,\n stacktrace: { frames },\n },\n ],\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","import type { Client, Event, EventHint, Integration, IntegrationClass, IntegrationFn } from '@sentry/types';\nimport { applyAggregateErrorsToEvent, exceptionFromError } from '@sentry/utils';\nimport { convertIntegrationFnToClass, defineIntegration } from '../integration';\n\ninterface LinkedErrorsOptions {\n key?: string;\n limit?: number;\n}\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options: LinkedErrorsOptions = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(\n exceptionFromError,\n options.stackParser,\n options.maxValueLength,\n key,\n limit,\n event,\n hint,\n );\n },\n };\n}) satisfies IntegrationFn;\n\nexport const linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\n/**\n * Adds SDK info to an event.\n * @deprecated Use `linkedErrorsIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const LinkedErrors = convertIntegrationFnToClass(INTEGRATION_NAME, linkedErrorsIntegration) as IntegrationClass<\n Integration & { preprocessEvent: (event: Event, hint: EventHint, client: Client) => void }\n> & { new (options?: { key?: string; limit?: number }): Integration };\n","export type { ClientClass } from './sdk';\nexport type { AsyncContextStrategy, Carrier, Layer, RunWithAsyncContextOptions } from './hub';\nexport type { OfflineStore, OfflineTransportOptions } from './transports/offline';\nexport type { ServerRuntimeClientOptions } from './server-runtime-client';\nexport type { RequestDataIntegrationOptions } from './integrations/requestdata';\nexport type { IntegrationIndex } from './integration';\n\nexport * from './tracing';\nexport * from './semanticAttributes';\nexport { createEventEnvelope, createSessionEnvelope } from './envelope';\nexport {\n addBreadcrumb,\n captureCheckIn,\n withMonitor,\n captureException,\n captureEvent,\n captureMessage,\n close,\n // eslint-disable-next-line deprecation/deprecation\n configureScope,\n flush,\n lastEventId,\n // eslint-disable-next-line deprecation/deprecation\n startTransaction,\n setContext,\n setExtra,\n setExtras,\n setTag,\n setTags,\n setUser,\n withScope,\n withIsolationScope,\n getClient,\n isInitialized,\n getCurrentScope,\n startSession,\n endSession,\n captureSession,\n withActiveSpan,\n} from './exports';\nexport {\n // eslint-disable-next-line deprecation/deprecation\n getCurrentHub,\n getIsolationScope,\n getHubFromCarrier,\n // eslint-disable-next-line deprecation/deprecation\n Hub,\n // eslint-disable-next-line deprecation/deprecation\n makeMain,\n getMainCarrier,\n runWithAsyncContext,\n setHubOnCarrier,\n ensureHubOnCarrier,\n setAsyncContextStrategy,\n} from './hub';\nexport { makeSession, closeSession, updateSession } from './session';\nexport { SessionFlusher } from './sessionflusher';\nexport { Scope, getGlobalScope, setGlobalScope } from './scope';\nexport {\n notifyEventProcessors,\n // eslint-disable-next-line deprecation/deprecation\n addGlobalEventProcessor,\n} from './eventProcessors';\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint } from './api';\nexport { BaseClient, addEventProcessor } from './baseclient';\nexport { ServerRuntimeClient } from './server-runtime-client';\nexport { initAndBind, setCurrentClient } from './sdk';\nexport { createTransport } from './transports/base';\nexport { makeOfflineTransport } from './transports/offline';\nexport { makeMultiplexedTransport } from './transports/multiplexed';\nexport { SDK_VERSION } from './version';\nexport {\n getIntegrationsToSetup,\n addIntegration,\n defineIntegration,\n // eslint-disable-next-line deprecation/deprecation\n convertIntegrationFnToClass,\n} from './integration';\nexport { applyScopeDataToEvent, mergeScopeData } from './utils/applyScopeDataToEvent';\nexport { prepareEvent } from './utils/prepareEvent';\nexport { createCheckInEnvelope } from './checkin';\nexport { createSpanEnvelope } from './span';\nexport { hasTracingEnabled } from './utils/hasTracingEnabled';\nexport { isSentryRequestUrl } from './utils/isSentryRequestUrl';\nexport { handleCallbackErrors } from './utils/handleCallbackErrors';\nexport { parameterize } from './utils/parameterize';\nexport { spanToTraceHeader, spanToJSON, spanIsSampled, spanToTraceContext } from './utils/spanUtils';\nexport { getRootSpan } from './utils/getRootSpan';\nexport { applySdkMetadata } from './utils/sdkMetadata';\nexport { DEFAULT_ENVIRONMENT } from './constants';\n/* eslint-disable deprecation/deprecation */\nexport { ModuleMetadata } from './integrations/metadata';\nexport { RequestData } from './integrations/requestdata';\nexport { InboundFilters } from './integrations/inboundfilters';\nexport { FunctionToString } from './integrations/functiontostring';\nexport { LinkedErrors } from './integrations/linkederrors';\n/* eslint-enable deprecation/deprecation */\nimport * as INTEGRATIONS from './integrations';\nexport { functionToStringIntegration } from './integrations/functiontostring';\nexport { inboundFiltersIntegration } from './integrations/inboundfilters';\nexport { linkedErrorsIntegration } from './integrations/linkederrors';\nexport { moduleMetadataIntegration } from './integrations/metadata';\nexport { requestDataIntegration } from './integrations/requestdata';\nexport { metrics } from './metrics/exports';\n\n/** @deprecated Import the integration function directly, e.g. `inboundFiltersIntegration()` instead of `new Integrations.InboundFilter(). */\nconst Integrations = INTEGRATIONS;\n\n// eslint-disable-next-line deprecation/deprecation\nexport { Integrations };\n","import type { Event, StackParser } from '@sentry/types';\nimport { GLOBAL_OBJ } from '@sentry/utils';\n\n/** Keys are source filename/url, values are metadata objects. */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst filenameMetadataMap = new Map();\n/** Set of stack strings that have already been parsed. */\nconst parsedStacks = new Set();\n\nfunction ensureMetadataStacksAreParsed(parser: StackParser): void {\n if (!GLOBAL_OBJ._sentryModuleMetadata) {\n return;\n }\n\n for (const stack of Object.keys(GLOBAL_OBJ._sentryModuleMetadata)) {\n const metadata = GLOBAL_OBJ._sentryModuleMetadata[stack];\n\n if (parsedStacks.has(stack)) {\n continue;\n }\n\n // Ensure this stack doesn't get parsed again\n parsedStacks.add(stack);\n\n const frames = parser(stack);\n\n // Go through the frames starting from the top of the stack and find the first one with a filename\n for (const frame of frames.reverse()) {\n if (frame.filename) {\n // Save the metadata for this filename\n filenameMetadataMap.set(frame.filename, metadata);\n break;\n }\n }\n }\n}\n\n/**\n * Retrieve metadata for a specific JavaScript file URL.\n *\n * Metadata is injected by the Sentry bundler plugins using the `_experiments.moduleMetadata` config option.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getMetadataForUrl(parser: StackParser, filename: string): any | undefined {\n ensureMetadataStacksAreParsed(parser);\n return filenameMetadataMap.get(filename);\n}\n\n/**\n * Adds metadata to stack frames.\n *\n * Metadata is injected by the Sentry bundler plugins using the `_experiments.moduleMetadata` config option.\n */\nexport function addMetadataToStackFrames(parser: StackParser, event: Event): void {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values!.forEach(exception => {\n if (!exception.stacktrace) {\n return;\n }\n\n for (const frame of exception.stacktrace.frames || []) {\n if (!frame.filename) {\n continue;\n }\n\n const metadata = getMetadataForUrl(parser, frame.filename);\n\n if (metadata) {\n frame.module_metadata = metadata;\n }\n }\n });\n } catch (_) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Strips metadata from stack frames.\n */\nexport function stripMetadataFromStackFrames(event: Event): void {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values!.forEach(exception => {\n if (!exception.stacktrace) {\n return;\n }\n\n for (const frame of exception.stacktrace.frames || []) {\n delete frame.module_metadata;\n }\n });\n } catch (_) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n","import type { Client, Event, EventHint, EventItem, Integration, IntegrationClass, IntegrationFn } from '@sentry/types';\nimport { forEachEnvelopeItem } from '@sentry/utils';\nimport { convertIntegrationFnToClass, defineIntegration } from '../integration';\n\nimport { addMetadataToStackFrames, stripMetadataFromStackFrames } from '../metadata';\n\nconst INTEGRATION_NAME = 'ModuleMetadata';\n\nconst _moduleMetadataIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n setup(client) {\n if (typeof client.on !== 'function') {\n return;\n }\n\n // We need to strip metadata from stack frames before sending them to Sentry since these are client side only.\n client.on('beforeEnvelope', envelope => {\n forEachEnvelopeItem(envelope, (item, type) => {\n if (type === 'event') {\n const event = Array.isArray(item) ? (item as EventItem)[1] : undefined;\n\n if (event) {\n stripMetadataFromStackFrames(event);\n item[1] = event;\n }\n }\n });\n });\n },\n\n processEvent(event, _hint, client) {\n const stackParser = client.getOptions().stackParser;\n addMetadataToStackFrames(stackParser, event);\n return event;\n },\n };\n}) satisfies IntegrationFn;\n\nexport const moduleMetadataIntegration = defineIntegration(_moduleMetadataIntegration);\n\n/**\n * Adds module metadata to stack frames.\n *\n * Metadata can be injected by the Sentry bundler plugins using the `_experiments.moduleMetadata` config option.\n *\n * When this integration is added, the metadata passed to the bundler plugin is added to the stack frames of all events\n * under the `module_metadata` property. This can be used to help in tagging or routing of events from different teams\n * our sources\n *\n * @deprecated Use `moduleMetadataIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const ModuleMetadata = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n moduleMetadataIntegration,\n) as IntegrationClass<\n Integration & {\n setup: (client: Client) => void;\n processEvent: (event: Event, hint: EventHint, client: Client) => Event;\n }\n>;\n","import type {\n BaseTransportOptions,\n Envelope,\n EnvelopeItemType,\n Event,\n EventItem,\n Transport,\n TransportMakeRequestResponse,\n} from '@sentry/types';\nimport { createEnvelope, dsnFromString, forEachEnvelopeItem } from '@sentry/utils';\n\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from '../api';\n\ninterface MatchParam {\n /** The envelope to be sent */\n envelope: Envelope;\n /**\n * A function that returns an event from the envelope if one exists. You can optionally pass an array of envelope item\n * types to filter by - only envelopes matching the given types will be multiplexed.\n * Allowed values are: 'event', 'transaction', 'profile', 'replay_event'\n *\n * @param types Defaults to ['event']\n */\n getEvent(types?: EnvelopeItemType[]): Event | undefined;\n}\n\ntype RouteTo = { dsn: string; release: string };\ntype Matcher = (param: MatchParam) => (string | RouteTo)[];\n\n/**\n * Gets an event from an envelope.\n *\n * This is only exported for use in the tests\n */\nexport function eventFromEnvelope(env: Envelope, types: EnvelopeItemType[]): Event | undefined {\n let event: Event | undefined;\n\n forEachEnvelopeItem(env, (item, type) => {\n if (types.includes(type)) {\n event = Array.isArray(item) ? (item as EventItem)[1] : undefined;\n }\n // bail out if we found an event\n return !!event;\n });\n\n return event;\n}\n\n/**\n * Creates a transport that overrides the release on all events.\n */\nfunction makeOverrideReleaseTransport(\n createTransport: (options: TO) => Transport,\n release: string,\n): (options: TO) => Transport {\n return options => {\n const transport = createTransport(options);\n\n return {\n ...transport,\n send: async (envelope: Envelope): Promise => {\n const event = eventFromEnvelope(envelope, ['event', 'transaction', 'profile', 'replay_event']);\n\n if (event) {\n event.release = release;\n }\n return transport.send(envelope);\n },\n };\n };\n}\n\n/** Overrides the DSN in the envelope header */\nfunction overrideDsn(envelope: Envelope, dsn: string): Envelope {\n return createEnvelope(\n dsn\n ? {\n ...envelope[0],\n dsn,\n }\n : envelope[0],\n envelope[1],\n );\n}\n\n/**\n * Creates a transport that can send events to different DSNs depending on the envelope contents.\n */\nexport function makeMultiplexedTransport(\n createTransport: (options: TO) => Transport,\n matcher: Matcher,\n): (options: TO) => Transport {\n return options => {\n const fallbackTransport = createTransport(options);\n const otherTransports = new Map();\n\n function getTransport(dsn: string, release: string | undefined): [string, Transport] | undefined {\n // We create a transport for every unique dsn/release combination as there may be code from multiple releases in\n // use at the same time\n const key = release ? `${dsn}:${release}` : dsn;\n\n let transport = otherTransports.get(key);\n\n if (!transport) {\n const validatedDsn = dsnFromString(dsn);\n if (!validatedDsn) {\n return undefined;\n }\n\n const url = getEnvelopeEndpointWithUrlEncodedAuth(validatedDsn, options.tunnel);\n\n transport = release\n ? makeOverrideReleaseTransport(createTransport, release)({ ...options, url })\n : createTransport({ ...options, url });\n\n otherTransports.set(key, transport);\n }\n\n return [dsn, transport];\n }\n\n async function send(envelope: Envelope): Promise {\n function getEvent(types?: EnvelopeItemType[]): Event | undefined {\n const eventTypes: EnvelopeItemType[] = types && types.length ? types : ['event'];\n return eventFromEnvelope(envelope, eventTypes);\n }\n\n const transports = matcher({ envelope, getEvent })\n .map(result => {\n if (typeof result === 'string') {\n return getTransport(result, undefined);\n } else {\n return getTransport(result.dsn, result.release);\n }\n })\n .filter((t): t is [string, Transport] => !!t);\n\n // If we have no transports to send to, use the fallback transport\n if (transports.length === 0) {\n // Don't override the DSN in the header for the fallback transport. '' is falsy\n transports.push(['', fallbackTransport]);\n }\n\n const results = await Promise.all(\n transports.map(([dsn, transport]) => transport.send(overrideDsn(envelope, dsn))),\n );\n\n return results[0];\n }\n\n async function flush(timeout: number | undefined): Promise {\n const promises = [await fallbackTransport.flush(timeout)];\n for (const [, transport] of otherTransports) {\n promises.push(await transport.flush(timeout));\n }\n\n return promises.every(r => r);\n }\n\n return {\n send,\n flush,\n };\n };\n}\n","export const COUNTER_METRIC_TYPE = 'c' as const;\nexport const GAUGE_METRIC_TYPE = 'g' as const;\nexport const SET_METRIC_TYPE = 's' as const;\nexport const DISTRIBUTION_METRIC_TYPE = 'd' as const;\n\n/**\n * This does not match spec in https://develop.sentry.dev/sdk/metrics\n * but was chosen to optimize for the most common case in browser environments.\n */\nexport const DEFAULT_BROWSER_FLUSH_INTERVAL = 5000;\n\n/**\n * SDKs are required to bucket into 10 second intervals (rollup in seconds)\n * which is the current lower bound of metric accuracy.\n */\nexport const DEFAULT_FLUSH_INTERVAL = 10000;\n\n/**\n * The maximum number of metrics that should be stored in memory.\n */\nexport const MAX_WEIGHT = 10000;\n","import type { MetricInstance } from '@sentry/types';\nimport { COUNTER_METRIC_TYPE, DISTRIBUTION_METRIC_TYPE, GAUGE_METRIC_TYPE, SET_METRIC_TYPE } from './constants';\nimport { simpleHash } from './utils';\n\n/**\n * A metric instance representing a counter.\n */\nexport class CounterMetric implements MetricInstance {\n public constructor(private _value: number) {}\n\n /** @inheritDoc */\n public get weight(): number {\n return 1;\n }\n\n /** @inheritdoc */\n public add(value: number): void {\n this._value += value;\n }\n\n /** @inheritdoc */\n public toString(): string {\n return `${this._value}`;\n }\n}\n\n/**\n * A metric instance representing a gauge.\n */\nexport class GaugeMetric implements MetricInstance {\n private _last: number;\n private _min: number;\n private _max: number;\n private _sum: number;\n private _count: number;\n\n public constructor(value: number) {\n this._last = value;\n this._min = value;\n this._max = value;\n this._sum = value;\n this._count = 1;\n }\n\n /** @inheritDoc */\n public get weight(): number {\n return 5;\n }\n\n /** @inheritdoc */\n public add(value: number): void {\n this._last = value;\n if (value < this._min) {\n this._min = value;\n }\n if (value > this._max) {\n this._max = value;\n }\n this._sum += value;\n this._count++;\n }\n\n /** @inheritdoc */\n public toString(): string {\n return `${this._last}:${this._min}:${this._max}:${this._sum}:${this._count}`;\n }\n}\n\n/**\n * A metric instance representing a distribution.\n */\nexport class DistributionMetric implements MetricInstance {\n private _value: number[];\n\n public constructor(first: number) {\n this._value = [first];\n }\n\n /** @inheritDoc */\n public get weight(): number {\n return this._value.length;\n }\n\n /** @inheritdoc */\n public add(value: number): void {\n this._value.push(value);\n }\n\n /** @inheritdoc */\n public toString(): string {\n return this._value.join(':');\n }\n}\n\n/**\n * A metric instance representing a set.\n */\nexport class SetMetric implements MetricInstance {\n private _value: Set;\n\n public constructor(public first: number | string) {\n this._value = new Set([first]);\n }\n\n /** @inheritDoc */\n public get weight(): number {\n return this._value.size;\n }\n\n /** @inheritdoc */\n public add(value: number | string): void {\n this._value.add(value);\n }\n\n /** @inheritdoc */\n public toString(): string {\n return Array.from(this._value)\n .map(val => (typeof val === 'string' ? simpleHash(val) : val))\n .join(':');\n }\n}\n\nexport const METRIC_MAP = {\n [COUNTER_METRIC_TYPE]: CounterMetric,\n [GAUGE_METRIC_TYPE]: GaugeMetric,\n [DISTRIBUTION_METRIC_TYPE]: DistributionMetric,\n [SET_METRIC_TYPE]: SetMetric,\n};\n","import type { Client, ClientOptions, MeasurementUnit, MetricsAggregator, Primitive } from '@sentry/types';\nimport { timestampInSeconds } from '@sentry/utils';\nimport { DEFAULT_BROWSER_FLUSH_INTERVAL, SET_METRIC_TYPE } from './constants';\nimport { METRIC_MAP } from './instance';\nimport { updateMetricSummaryOnActiveSpan } from './metric-summary';\nimport type { MetricBucket, MetricType } from './types';\nimport { getBucketKey, sanitizeMetricKey, sanitizeTags, sanitizeUnit } from './utils';\n\n/**\n * A simple metrics aggregator that aggregates metrics in memory and flushes them periodically.\n * Default flush interval is 5 seconds.\n *\n * @experimental This API is experimental and might change in the future.\n */\nexport class BrowserMetricsAggregator implements MetricsAggregator {\n // TODO(@anonrig): Use FinalizationRegistry to have a proper way of flushing the buckets\n // when the aggregator is garbage collected.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry\n private _buckets: MetricBucket;\n private readonly _interval: ReturnType;\n\n public constructor(private readonly _client: Client) {\n this._buckets = new Map();\n this._interval = setInterval(() => this.flush(), DEFAULT_BROWSER_FLUSH_INTERVAL);\n }\n\n /**\n * @inheritDoc\n */\n public add(\n metricType: MetricType,\n unsanitizedName: string,\n value: number | string,\n unsanitizedUnit: MeasurementUnit | undefined = 'none',\n unsanitizedTags: Record | undefined = {},\n maybeFloatTimestamp: number | undefined = timestampInSeconds(),\n ): void {\n const timestamp = Math.floor(maybeFloatTimestamp);\n const name = sanitizeMetricKey(unsanitizedName);\n const tags = sanitizeTags(unsanitizedTags);\n const unit = sanitizeUnit(unsanitizedUnit as string);\n\n const bucketKey = getBucketKey(metricType, name, unit, tags);\n\n let bucketItem = this._buckets.get(bucketKey);\n // If this is a set metric, we need to calculate the delta from the previous weight.\n const previousWeight = bucketItem && metricType === SET_METRIC_TYPE ? bucketItem.metric.weight : 0;\n\n if (bucketItem) {\n bucketItem.metric.add(value);\n // TODO(abhi): Do we need this check?\n if (bucketItem.timestamp < timestamp) {\n bucketItem.timestamp = timestamp;\n }\n } else {\n bucketItem = {\n // @ts-expect-error we don't need to narrow down the type of value here, saves bundle size.\n metric: new METRIC_MAP[metricType](value),\n timestamp,\n metricType,\n name,\n unit,\n tags,\n };\n this._buckets.set(bucketKey, bucketItem);\n }\n\n // If value is a string, it's a set metric so calculate the delta from the previous weight.\n const val = typeof value === 'string' ? bucketItem.metric.weight - previousWeight : value;\n updateMetricSummaryOnActiveSpan(metricType, name, val, unit, unsanitizedTags, bucketKey);\n }\n\n /**\n * @inheritDoc\n */\n public flush(): void {\n // short circuit if buckets are empty.\n if (this._buckets.size === 0) {\n return;\n }\n\n if (this._client.captureAggregateMetrics) {\n // TODO(@anonrig): Use Object.values() when we support ES6+\n const metricBuckets = Array.from(this._buckets).map(([, bucketItem]) => bucketItem);\n this._client.captureAggregateMetrics(metricBuckets);\n }\n\n this._buckets.clear();\n }\n\n /**\n * @inheritDoc\n */\n public close(): void {\n clearInterval(this._interval);\n this.flush();\n }\n}\n","import type { Client, ClientOptions, Integration, IntegrationClass, IntegrationFn } from '@sentry/types';\nimport type { BaseClient } from '../baseclient';\nimport { convertIntegrationFnToClass, defineIntegration } from '../integration';\nimport { BrowserMetricsAggregator } from './browser-aggregator';\n\nconst INTEGRATION_NAME = 'MetricsAggregator';\n\nconst _metricsAggregatorIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n // TODO v8: Remove this\n setupOnce() {}, // eslint-disable-line @typescript-eslint/no-empty-function\n setup(client: BaseClient) {\n client.metricsAggregator = new BrowserMetricsAggregator(client);\n },\n };\n}) satisfies IntegrationFn;\n\nexport const metricsAggregatorIntegration = defineIntegration(_metricsAggregatorIntegration);\n\n/**\n * Enables Sentry metrics monitoring.\n *\n * @experimental This API is experimental and might having breaking changes in the future.\n * @deprecated Use `metricsAggegratorIntegration()` instead.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const MetricsAggregator = convertIntegrationFnToClass(\n INTEGRATION_NAME,\n metricsAggregatorIntegration,\n) as IntegrationClass void }>;\n","import type { ClientOptions, MeasurementUnit, Primitive } from '@sentry/types';\nimport { logger } from '@sentry/utils';\nimport type { BaseClient } from '../baseclient';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { getClient, getCurrentScope } from '../exports';\nimport { spanToJSON } from '../utils/spanUtils';\nimport { COUNTER_METRIC_TYPE, DISTRIBUTION_METRIC_TYPE, GAUGE_METRIC_TYPE, SET_METRIC_TYPE } from './constants';\nimport { MetricsAggregator, metricsAggregatorIntegration } from './integration';\nimport type { MetricType } from './types';\n\ninterface MetricData {\n unit?: MeasurementUnit;\n tags?: Record;\n timestamp?: number;\n}\n\nfunction addToMetricsAggregator(\n metricType: MetricType,\n name: string,\n value: number | string,\n data: MetricData | undefined = {},\n): void {\n const client = getClient>();\n const scope = getCurrentScope();\n if (client) {\n if (!client.metricsAggregator) {\n DEBUG_BUILD &&\n logger.warn('No metrics aggregator enabled. Please add the MetricsAggregator integration to use metrics APIs');\n return;\n }\n const { unit, tags, timestamp } = data;\n const { release, environment } = client.getOptions();\n // eslint-disable-next-line deprecation/deprecation\n const transaction = scope.getTransaction();\n const metricTags: Record = {};\n if (release) {\n metricTags.release = release;\n }\n if (environment) {\n metricTags.environment = environment;\n }\n if (transaction) {\n metricTags.transaction = spanToJSON(transaction).description || '';\n }\n\n DEBUG_BUILD && logger.log(`Adding value of ${value} to ${metricType} metric ${name}`);\n client.metricsAggregator.add(metricType, name, value, unit, { ...metricTags, ...tags }, timestamp);\n }\n}\n\n/**\n * Adds a value to a counter metric\n *\n * @experimental This API is experimental and might have breaking changes in the future.\n */\nexport function increment(name: string, value: number = 1, data?: MetricData): void {\n addToMetricsAggregator(COUNTER_METRIC_TYPE, name, value, data);\n}\n\n/**\n * Adds a value to a distribution metric\n *\n * @experimental This API is experimental and might have breaking changes in the future.\n */\nexport function distribution(name: string, value: number, data?: MetricData): void {\n addToMetricsAggregator(DISTRIBUTION_METRIC_TYPE, name, value, data);\n}\n\n/**\n * Adds a value to a set metric. Value must be a string or integer.\n *\n * @experimental This API is experimental and might have breaking changes in the future.\n */\nexport function set(name: string, value: number | string, data?: MetricData): void {\n addToMetricsAggregator(SET_METRIC_TYPE, name, value, data);\n}\n\n/**\n * Adds a value to a gauge metric\n *\n * @experimental This API is experimental and might have breaking changes in the future.\n */\nexport function gauge(name: string, value: number, data?: MetricData): void {\n addToMetricsAggregator(GAUGE_METRIC_TYPE, name, value, data);\n}\n\nexport const metrics = {\n increment,\n distribution,\n set,\n gauge,\n /** @deprecated Use `metrics.metricsAggregratorIntegration()` instead. */\n // eslint-disable-next-line deprecation/deprecation\n MetricsAggregator,\n metricsAggregatorIntegration,\n};\n","import type { ParameterizedString } from '@sentry/types';\n\n/**\n * Tagged template function which returns paramaterized representation of the message\n * For example: parameterize`This is a log statement with ${x} and ${y} params`, would return:\n * \"__sentry_template_string__\": 'This is a log statement with %s and %s params',\n * \"__sentry_template_values__\": ['first', 'second']\n * @param strings An array of string values splitted between expressions\n * @param values Expressions extracted from template string\n * @returns String with template information in __sentry_template_string__ and __sentry_template_values__ properties\n */\nexport function parameterize(strings: TemplateStringsArray, ...values: string[]): ParameterizedString {\n const formatted = new String(String.raw(strings, ...values)) as ParameterizedString;\n formatted.__sentry_template_string__ = strings.join('\\x00').replace(/%/g, '%%').replace(/\\0/g, '%s');\n formatted.__sentry_template_values__ = values;\n return formatted;\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};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n","import { encode } from './../../../../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nconst canvasVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = canvasVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n canvasVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nconst saveWebGLVar = (value, win, ctx) => {\r\n if (!value ||\r\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\r\n return;\r\n const name = value.constructor.name;\r\n const list = variableListFor(ctx, name);\r\n let index = list.indexOf(value);\r\n if (index === -1) {\r\n index = list.length;\r\n list.push(value);\r\n }\r\n return index;\r\n};\r\nfunction serializeArg(value, win, ctx) {\r\n if (value instanceof Array) {\r\n return value.map((arg) => serializeArg(arg, win, ctx));\r\n }\r\n else if (value === null) {\r\n return value;\r\n }\r\n else if (value instanceof Float32Array ||\r\n value instanceof Float64Array ||\r\n value instanceof Int32Array ||\r\n value instanceof Uint32Array ||\r\n value instanceof Uint8Array ||\r\n value instanceof Uint16Array ||\r\n value instanceof Int16Array ||\r\n value instanceof Int8Array ||\r\n value instanceof Uint8ClampedArray) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [Object.values(value)],\r\n };\r\n }\r\n else if (value instanceof ArrayBuffer) {\r\n const name = value.constructor.name;\r\n const base64 = encode(value);\r\n return {\r\n rr_type: name,\r\n base64,\r\n };\r\n }\r\n else if (value instanceof DataView) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [\r\n serializeArg(value.buffer, win, ctx),\r\n value.byteOffset,\r\n value.byteLength,\r\n ],\r\n };\r\n }\r\n else if (value instanceof HTMLImageElement) {\r\n const name = value.constructor.name;\r\n const { src } = value;\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof HTMLCanvasElement) {\r\n const name = 'HTMLImageElement';\r\n const src = value.toDataURL();\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof ImageData) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\r\n };\r\n }\r\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\r\n const name = value.constructor.name;\r\n const index = saveWebGLVar(value, win, ctx);\r\n return {\r\n rr_type: name,\r\n index: index,\r\n };\r\n }\r\n return value;\r\n}\r\nconst serializeArgs = (args, win, ctx) => {\r\n return args.map((arg) => serializeArg(arg, win, ctx));\r\n};\r\nconst isInstanceOfWebGLObject = (value, win) => {\r\n const webGLConstructorNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n 'WebGLVertexArrayObjectOES',\r\n ];\r\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\r\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\r\n};\n\nexport { isInstanceOfWebGLObject, saveWebGLVar, serializeArg, serializeArgs, variableListFor };\n","import { CanvasContext } from '../../../../../types/dist/rrweb-types.js';\nimport { patch, isBlocked, setTimeout, hookSetter } from '../../../utils.js';\nimport { serializeArgs } from './serialize-args.js';\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector, unblockSelector) {\r\n const handlers = [];\r\n const props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\r\n for (const prop of props2D) {\r\n try {\r\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\r\n return function (...args) {\r\n if (!isBlocked(this.canvas, blockClass, blockSelector, unblockSelector, true)) {\r\n setTimeout(() => {\r\n const recordArgs = serializeArgs(args, win, this);\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: recordArgs,\r\n });\r\n }, 0);\r\n }\r\n return original.apply(this, args);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch {\r\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvas2DMutationObserver as default };\n","import { patch, isBlocked } from '../../../utils.js';\n\nfunction getNormalizedContextName(contextType) {\r\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\r\n}\r\nfunction initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, setPreserveDrawingBufferToTrue) {\r\n const handlers = [];\r\n try {\r\n const restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\r\n return function (contextType, ...args) {\r\n if (!isBlocked(this, blockClass, blockSelector, unblockSelector, true)) {\r\n const ctxName = getNormalizedContextName(contextType);\r\n if (!('__context' in this))\r\n this.__context = ctxName;\r\n if (setPreserveDrawingBufferToTrue &&\r\n ['webgl', 'webgl2'].includes(ctxName)) {\r\n if (args[0] && typeof args[0] === 'object') {\r\n const contextAttributes = args[0];\r\n if (!contextAttributes.preserveDrawingBuffer) {\r\n contextAttributes.preserveDrawingBuffer = true;\r\n }\r\n }\r\n else {\r\n args.splice(0, 1, {\r\n preserveDrawingBuffer: true,\r\n });\r\n }\r\n }\r\n }\r\n return original.apply(this, [contextType, ...args]);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch {\r\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvasContextObserver as default };\n","import { CanvasContext } from '../../../../../types/dist/rrweb-types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { saveWebGLVar, serializeArgs } from './serialize-args.js';\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, unblockSelector, mirror, win) {\r\n const handlers = [];\r\n const props = Object.getOwnPropertyNames(prototype);\r\n for (const prop of props) {\r\n if ([\r\n 'isContextLost',\r\n 'canvas',\r\n 'drawingBufferWidth',\r\n 'drawingBufferHeight',\r\n ].includes(prop)) {\r\n continue;\r\n }\r\n try {\r\n if (typeof prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(prototype, prop, function (original) {\r\n return function (...args) {\r\n const result = original.apply(this, args);\r\n saveWebGLVar(result, win, this);\r\n if ('tagName' in this.canvas &&\r\n !isBlocked(this.canvas, blockClass, blockSelector, unblockSelector, true)) {\r\n const recordArgs = serializeArgs(args, win, this);\r\n const mutation = {\r\n type,\r\n property: prop,\r\n args: recordArgs,\r\n };\r\n cb(this.canvas, mutation);\r\n }\r\n return result;\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch {\r\n const hookHandler = hookSetter(prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type,\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return handlers;\r\n}\r\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, unblockSelector, mirror) {\r\n const handlers = [];\r\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, unblockSelector, mirror, win));\r\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\r\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, unblockSelector, mirror, win));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvasWebGLMutationObserver as default };\n","var 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\nexport { r as default };\n","import r from './image-bitmap-data-url-worker.js';\n\nfunction t(){const t=new Blob([r]);return URL.createObjectURL(t)}\n\nexport { t as getImageBitmapDataUrlWorkerURL };\n","import { CanvasManager } from '@sentry-internal/rrweb';\nimport { convertIntegrationFnToClass, defineIntegration } from '@sentry/core';\nimport type { InternalCanvasManagerInterface, InternalCanvasManagerOptions } from '@sentry/replay';\nimport type { Integration, IntegrationClass, IntegrationFn } from '@sentry/types';\n\ninterface ReplayCanvasOptions {\n enableManualSnapshot?: boolean;\n maxCanvasSize?: [width: number, height: number];\n quality: 'low' | 'medium' | 'high';\n}\n\ntype GetCanvasManager = (options: InternalCanvasManagerOptions) => InternalCanvasManagerInterface;\nexport interface ReplayCanvasIntegrationOptions {\n enableManualSnapshot?: boolean;\n maxCanvasSize?: number;\n recordCanvas: true;\n getCanvasManager: GetCanvasManager;\n sampling: {\n canvas: number;\n };\n dataURLOptions: {\n type: string;\n quality: number;\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. */\nexport const _replayCanvasIntegration = ((options: Partial = {}) => {\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 ] as [number, number],\n };\n\n let canvasManagerResolve: (value: CanvasManager) => void;\n const _canvasManager: Promise = 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(): ReplayCanvasIntegrationOptions {\n const { quality, enableManualSnapshot, maxCanvasSize } = _canvasOptions;\n\n return {\n enableManualSnapshot,\n recordCanvas: true,\n getCanvasManager: (getCanvasManagerOptions: InternalCanvasManagerOptions) => {\n const manager = new CanvasManager({\n ...getCanvasManagerOptions,\n enableManualSnapshot,\n maxCanvasSize,\n errorHandler: (err: unknown) => {\n try {\n if (typeof err === 'object') {\n (err as Error & { __rrweb__?: boolean }).__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?: HTMLCanvasElement) {\n const canvasManager = await _canvasManager;\n canvasManager.snapshot(canvasElement);\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Add this in addition to `replayIntegration()` to enable canvas recording.\n */\nexport const replayCanvasIntegration = defineIntegration(_replayCanvasIntegration);\n\n/**\n * @deprecated Use `replayCanvasIntegration()` instead\n */\n// eslint-disable-next-line deprecation/deprecation\nexport const ReplayCanvas = convertIntegrationFnToClass(INTEGRATION_NAME, replayCanvasIntegration) as IntegrationClass<\n Integration & {\n getOptions: () => ReplayCanvasIntegrationOptions;\n }\n>;\n","import type { Scope } from '@sentry/core';\nimport { getIsolationScope } from '@sentry/core';\nimport { prepareEvent } from '@sentry/core';\nimport type { Client, FeedbackEvent } from '@sentry/types';\n\ninterface PrepareFeedbackEventParams {\n client: Client;\n event: FeedbackEvent;\n scope: Scope;\n}\n/**\n * Prepare a feedback event & enrich it with the SDK metadata.\n */\nexport async function prepareFeedbackEvent({\n client,\n scope,\n event,\n}: PrepareFeedbackEventParams): Promise {\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 )) as FeedbackEvent | null;\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","import { createEventEnvelope, getClient, withScope } from '@sentry/core';\nimport type { FeedbackEvent, TransportMakeRequestResponse } from '@sentry/types';\n\nimport { FEEDBACK_API_SOURCE, FEEDBACK_WIDGET_SOURCE } from '../constants';\nimport type { SendFeedbackData, SendFeedbackOptions } from '../types';\nimport { prepareFeedbackEvent } from './prepareFeedbackEvent';\n\n/**\n * Send feedback using transport\n */\nexport async function sendFeedbackRequest(\n { feedback: { message, email, name, source, url } }: SendFeedbackData,\n { includeReplay = true }: SendFeedbackOptions = {},\n): Promise {\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: FeedbackEvent = {\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 as any,\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: void | TransportMakeRequestResponse;\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 {\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","import { getLocationHref } from '@sentry/utils';\n\nimport { FEEDBACK_API_SOURCE } from './constants';\nimport type { SendFeedbackOptions } from './types';\nimport { sendFeedbackRequest } from './util/sendFeedbackRequest';\n\ninterface SendFeedbackParams {\n message: string;\n name?: string;\n email?: string;\n url?: string;\n source?: string;\n}\n\n/**\n * Public API to send a Feedback item to Sentry\n */\nexport function sendFeedback(\n { name, email, message, source = FEEDBACK_API_SOURCE, url = getLocationHref() }: SendFeedbackParams,\n options: SendFeedbackOptions = {},\n): ReturnType {\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","import type { FeedbackInternalOptions, OptionalFeedbackConfiguration } from '../types';\n\n/**\n * Quick and dirty deep merge for the Feedback integration options\n */\nexport function mergeOptions(\n defaultOptions: FeedbackInternalOptions,\n optionOverrides: OptionalFeedbackConfiguration,\n): FeedbackInternalOptions {\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 * Creates