{"version":3,"file":"js/804-0ea47b0519c458400e93.js","mappings":"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","sources":["webpack:///../../src/eventbuilder.ts","webpack:///../../integrations/linkederrors.ts","webpack:///../../src/index.ts","webpack:///../../src/metadata.ts","webpack:///../../integrations/metadata.ts","webpack:///../../transports/multiplexed.ts","webpack:///../../metrics/instance.ts","webpack:///../../metrics/constants.ts","webpack:///../../metrics/browser-aggregator.ts","webpack:///../../metrics/integration.ts","webpack:///../../metrics/exports.ts","webpack:///../../utils/parameterize.ts","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/utils.js","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/types/dist/rrweb-types.js","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/error-handler.js","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/serialize-args.js","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb-worker/es/rrweb-worker/index.js","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js","webpack:///../../../../../node_modules/@sentry-internal/rrweb/es/rrweb/packages/rrweb-worker/es/rrweb-worker/image-bitmap-data-url-worker.js","webpack:///../../canvas.ts","webpack:///../../constants.ts","webpack:///../../util/prepareFeedbackEvent.ts","webpack:///../../util/sendFeedbackRequest.ts","webpack:///../../sendFeedback.ts","webpack:///../../debug-build.ts","webpack:///../../util/mergeOptions.ts","webpack:///../../widget/Main.css.ts","webpack:///../../widget/createShadowHost.ts","webpack:///../../widget/Dialog.css.ts","webpack:///../../util/handleFeedbackSubmit.ts","webpack:///../../util/setAttributesNS.ts","webpack:///../../widget/Icon.ts","webpack:///../../widget/util/createElement.ts","webpack:///../../widget/Actor.ts","webpack:///../../widget/Form.ts","webpack:///../../widget/SubmitButton.ts","webpack:///../../widget/Dialog.ts","webpack:///../../widget/Logo.ts","webpack:///../../widget/SuccessMessage.ts","webpack:///../../widget/SuccessIcon.ts","webpack:///../../widget/createWidget.ts","webpack:///../../integration.ts","webpack:///../../widget/Actor.css.ts","webpack:///../../captureconsole.ts","webpack:///../../contextlines.ts","webpack:///../../debug.ts","webpack:///../../dedupe.ts","webpack:///../../extraerrordata.ts","webpack:///../../httpclient.ts","webpack:///../../reportingobserver.ts","webpack:///../../src/path.ts","webpack:///../../rewriteframes.ts","webpack:///../../sessiontiming.ts","webpack:///../../browser/browsertracing.ts","webpack:///../../browser/router.ts","webpack:///../../transports/offline.ts","webpack:///../../../../src/transports/offline.ts","webpack:///../../../../src/profiling/utils.ts","webpack:///../../../../src/profiling/hubextensions.ts","webpack:///../../../../src/profiling/integration.ts","webpack:///../../index.ts"],"sourcesContent":["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","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","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 { 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","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","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","/*\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 { 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","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 { 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 { 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","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 { 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 { 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 feedback packages\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nconst LIGHT_BACKGROUND = '#ffffff';\nconst INHERIT = 'inherit';\nconst SUBMIT_COLOR = 'rgba(108, 95, 199, 1)';\nconst LIGHT_THEME = {\n fontFamily: \"system-ui, 'Helvetica Neue', Arial, sans-serif\",\n fontSize: '14px',\n\n background: LIGHT_BACKGROUND,\n backgroundHover: '#f6f6f7',\n foreground: '#2b2233',\n border: '1.5px solid rgba(41, 35, 47, 0.13)',\n borderRadius: '25px',\n boxShadow: '0px 4px 24px 0px rgba(43, 34, 51, 0.12)',\n\n success: '#268d75',\n error: '#df3338',\n\n submitBackground: 'rgba(88, 74, 192, 1)',\n submitBackgroundHover: SUBMIT_COLOR,\n submitBorder: SUBMIT_COLOR,\n submitOutlineFocus: '#29232f',\n submitForeground: LIGHT_BACKGROUND,\n submitForegroundHover: LIGHT_BACKGROUND,\n\n cancelBackground: 'transparent',\n cancelBackgroundHover: 'var(--background-hover)',\n cancelBorder: 'var(--border)',\n cancelOutlineFocus: 'var(--input-outline-focus)',\n cancelForeground: 'var(--foreground)',\n cancelForegroundHover: 'var(--foreground)',\n\n inputBackground: INHERIT,\n inputForeground: INHERIT,\n inputBorder: 'var(--border)',\n inputOutlineFocus: SUBMIT_COLOR,\n\n formBorderRadius: '20px',\n formContentBorderRadius: '6px',\n};\n\nexport const DEFAULT_THEME = {\n light: LIGHT_THEME,\n dark: {\n ...LIGHT_THEME,\n\n background: '#29232f',\n backgroundHover: '#352f3b',\n foreground: '#ebe6ef',\n border: '1.5px solid rgba(235, 230, 239, 0.15)',\n\n success: '#2da98c',\n error: '#f55459',\n },\n};\n\nexport const ACTOR_LABEL = 'Report a Bug';\nexport const CANCEL_BUTTON_LABEL = 'Cancel';\nexport const SUBMIT_BUTTON_LABEL = 'Send Bug Report';\nexport const FORM_TITLE = 'Report a Bug';\nexport const EMAIL_PLACEHOLDER = 'your.email@example.org';\nexport const EMAIL_LABEL = 'Email';\nexport const MESSAGE_PLACEHOLDER = \"What's the bug? What did you expect?\";\nexport const MESSAGE_LABEL = 'Description';\nexport const NAME_PLACEHOLDER = 'Your Name';\nexport const NAME_LABEL = 'Name';\nexport const IS_REQUIRED_LABEL = '(required)';\nexport const SUCCESS_MESSAGE_TEXT = 'Thank you for your report!';\n\nexport const FEEDBACK_WIDGET_SOURCE = 'widget';\nexport const FEEDBACK_API_SOURCE = 'api';\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","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 { 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","import type { FeedbackTheme, FeedbackThemes } from '../types';\n\nfunction getThemedCssVariables(theme: FeedbackTheme): string {\n return `\n --background: ${theme.background};\n --background-hover: ${theme.backgroundHover};\n --foreground: ${theme.foreground};\n --error: ${theme.error};\n --success: ${theme.success};\n --border: ${theme.border};\n --border-radius: ${theme.borderRadius};\n --box-shadow: ${theme.boxShadow};\n\n --submit-background: ${theme.submitBackground};\n --submit-background-hover: ${theme.submitBackgroundHover};\n --submit-border: ${theme.submitBorder};\n --submit-outline-focus: ${theme.submitOutlineFocus};\n --submit-foreground: ${theme.submitForeground};\n --submit-foreground-hover: ${theme.submitForegroundHover};\n\n --cancel-background: ${theme.cancelBackground};\n --cancel-background-hover: ${theme.cancelBackgroundHover};\n --cancel-border: ${theme.cancelBorder};\n --cancel-outline-focus: ${theme.cancelOutlineFocus};\n --cancel-foreground: ${theme.cancelForeground};\n --cancel-foreground-hover: ${theme.cancelForegroundHover};\n\n --input-background: ${theme.inputBackground};\n --input-foreground: ${theme.inputForeground};\n --input-border: ${theme.inputBorder};\n --input-outline-focus: ${theme.inputOutlineFocus};\n\n --form-border-radius: ${theme.formBorderRadius};\n --form-content-border-radius: ${theme.formContentBorderRadius};\n `;\n}\n\n/**\n * Creates