ghostplay-sdk 0.1.9 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.global.js +60 -6
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +12 -4
package/dist/index.global.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts","../src/config.ts","../src/session.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/utils.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/types/dist/types.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/mutation.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observer.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/cross-origin-iframe-mirror.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/iframe-manager.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/ext/tslib/tslib.es6.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/serialize-args.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/image-bitmap-data-url-worker.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/stylesheet-manager.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/index.js","../src/recorder.ts","../src/modules/error-tracker.ts","../src/modules/network-interceptor.ts","../src/modules/console-interceptor.ts","../src/modules/performance-tracker.ts","../src/modules/rage-click-detector.ts","../src/modules/breadcrumbs.ts","../src/modules/navigation-tracker.ts","../src/privacy.ts","../src/transport.ts","../src/index.ts"],"names":["DEFAULT_CONFIG","resolveConfig","config","generateId","timestamp","random","SessionManager","projectId","userId","traits","session","tag","data","NodeType","isElement","n","isShadowRoot","host","isNativeShadowDom","shadowRoot","fixBrowserCompatibilityIssuesInCSS","cssText","getCssRulesString","s","rules","getCssRuleString","rule","cssStringified","isCSSImportRule","Mirror","_a","id","_this","childNode","node","meta","oldNode","createMirror","maskInputValue","maskInputOptions","tagName","type","value","maskInputFn","text","ORIGINAL_ATTRIBUTE_NAME","is2DCanvasBlank","canvas","ctx","chunkSize","x","y","getImageData","originalGetImageData","pixelBuffer","pixel","_id","tagNameRegex","IGNORED_NODE","genId","getValidTagName","element","processedTagName","stringifyStyleSheet","sheet","extractOrigin","url","origin","canvasService","canvasCtx","URL_IN_CSS_REF","RELATIVE_PATH","DATA_URI","absoluteToStylesheet","href","quote1","path1","quote2","path2","path3","filePath","maybeQuote","stack","parts","_i","parts_1","part","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","getAbsoluteSrcsetString","doc","attributeValue","pos","collectCharacters","regEx","chars","match","output","absoluteToDoc","descriptorsStr","inParens","a","isSVGElement","el","getHref","transformAttribute","name","_isBlockedElement","blockClass","blockSelector","eIndex","className","classMatchesRegex","regex","checkAncestors","needMaskingText","maskTextClass","maskTextSelector","onceIframeLoaded","iframeEl","listener","iframeLoadTimeout","win","fired","readyState","timer_1","blankUrl","onceStylesheetLoaded","link","styleSheetLoadTimeout","styleSheetLoaded","timer","serializeNode","options","mirror","inlineStylesheet","maskTextFn","_b","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","_c","newlyAddedElement","rootId","getRootId","serializeElementNode","serializeTextNode","docId","parentTagName","textContent","isStyle","isScript","err","needBlock","attributes","len","i","attr","stylesheet","checked","canvasDataURL","blankCanvas","blankCanvasDataURL","image_1","oldValue_1","recordInlineImage","_d","width","height","lowerIfExists","maybeAttr","slimDOMExcluded","sn","slimDOMOptions","serializeNodeWithId","skipChild","_e","_f","onSerialize","onIframeLoad","_g","onStylesheetLoad","_h","stylesheetLoadTimeout","_j","_k","_l","preserveWhiteSpace","_serializedNode","serializedNode","recordChild","bypassOptions","_m","childN","serializedChildNode","_o","_p","iframeDoc","serializedIframeNode","serializedLinkNode","snapshot","maskAllInputs","slimDOM","on","fn","target","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","prop","receiver","throttle","func","wait","timeout","previous","args","now","remaining","context","hookSetter","key","d","isRevoked","original","patch","source","replacement","wrapped","getWindowHeight","getWindowWidth","isBlocked","isSerialized","isIgnored","isAncestorRemoved","isTouchEvent","event","polyfill","isSerializedIframe","isSerializedStylesheet","hasShadowRoot","StyleSheetMirror","newId","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","CanvasContext","CanvasContext2","isNodeInLinkedList","DoubleLinkedList","position","current","index","moveKey","parentId","MutationBuffer","mutations","adds","addList","getNextId","ns","nextId","pushAdd","shadowHost","rootShadowHost","notInDoc","currentN","iframe","childSn","isParentRemoved","isAncestorInSet","candidate","_node","unhandledNode","payload","attribute","m","item","old","styleObj","pname","newValue","newPriority","nodeId","deepDelete","targetId","addsSet","removes","_isParentRemoved","parentNode","r","set","_isAncestorInSet","mutationBuffers","isCSSGroupingRuleSupported","isCSSMediaRuleSupported","isCSSSupportsRuleSupported","isCSSConditionRuleSupported","getEventTarget","path","initMutationObserver","rootEl","mutationBuffer","mutationObserverCtor","angularZoneSymbol","observer","initMoveObserver","mousemoveCb","sampling","threshold","callbackThreshold","positions","timeBaseline","wrappedCb","totalOffset","p","updatePosition","evt","clientX","clientY","handlers","h","initMouseInteractionObserver","mouseInteractionCb","disableMap","getHandler","eventKey","e","eventName","handler","initScrollObserver","scrollCb","scrollEl","initViewportResizeObserver","viewportResizeCb","lastH","lastW","updateDimension","wrapEventWithUserTriggeredFlag","v","enable","INPUT_TAGS","lastInputValueMap","initInputObserver","inputCb","ignoreClass","userTriggeredOnInput","eventHandler","userTriggered","isChecked","cbWithDedup","lastInputValue","currentWindow","propertyDescriptor","hookProperties","getNestedCSSRulePositions","recurse","childRule","getIdAndStyleId","styleMirror","styleId","initStyleSheetObserver","styleSheetRuleCb","stylesheetManager","insertRule","deleteRule","replace","replaceSync","supportedNestedCSSRuleTypes","unmodifiedFunctions","typeKey","initAdoptedStyleSheetObserver","hostId","patchTarget","originalPropertyDescriptor","sheets","result","initStyleDeclarationObserver","styleDeclarationCb","ignoreCSSAttributes","setProperty","property","priority","removeProperty","initMediaInteractionObserver","mediaInteractionCb","currentTime","volume","muted","playbackRate","initFontObserver","fontCb","fontMap","originalFontFace","family","descriptors","fontFace","restoreHandler","initSelectionObserver","param","selectionCb","collapsed","updateSelection","selection","ranges","count","range","startContainer","startOffset","endContainer","endOffset","mergeHooks","o","hooks","mutationCb","canvasMutationCb","initObservers","mutationObserver","mousemoveHandler","mouseInteractionHandler","scrollHandler","viewportResizeHandler","inputHandler","mediaInteractionHandler","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","selectionObserver","pluginHandlers","plugin","b","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","remoteIdToIdMap","map","ids","IframeManager","cb","message","transformedEvent","style","iframeMirror","obj","keys","child","ShadowDomManager","manager","option","iframeElement","restorePatch","__rest","t","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","step","rejected","lookup","encode","arraybuffer","bytes","base64","canvasVarMap","variableListFor","ctor","contextMap","saveWebGLVar","isInstanceOfWebGLObject","list","serializeArg","arg","src","serializeArgs","initCanvas2DMutationObserver","props2D","recordArgs","hookHandler","initCanvasContextObserver","contextType","patchGLPrototype","prototype","props","mutation","initCanvasWebGLMutationObserver","WorkerClass","WorkerThreads","__require","decodeBase64","enableUnicode","createBase64WorkerFactory","sourcemapArg","enableUnicodeArg","start","body","binaryString","createURL","blob","kIsNodeJS","isNodeJS","WorkerFactory","CanvasManager","fps","canvasContextReset","snapshotInProgressMap","worker","timeBetweenSnapshots","lastSnapshotTime","rafId","getCanvas","matchedCanvas","takeCanvasSnapshots","bitmap","canvas2DReset","canvasWebGL1and2Reset","setLatestRAFTimestamp","values","valuesWithType","StylesheetManager","linkEl","adoptedStyleSheetData","styles","wrapEvent","wrappedEmit","takeFullSnapshot","canvasManager","recording","record","emit","checkoutEveryNms","checkoutEveryNth","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordCrossOriginIframes","collectFonts","plugins","inEmittingFrame","passEmitsToParent","lastFullSnapshotEvent","incrementalSnapshotCount","eventProcessor","isCheckout","buf","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","wrappedAdoptedStyleSheetEmit","iframeManager","shadowDomManager","observe","init","error","getUnpatchedMutationObserver","Recorder","sessionId","rrwebConfig","patchedMO","nativeMO","ErrorTracker","lineno","colno","reason","GHOSTPLAY_URL_PATTERN","NetworkInterceptor","self","input","method","startTime","requestHeaders","extractHeaders","requestBody","extractBody","response","responseHeaders","responseBody","contentType","headers","LEVELS","ConsoleInterceptor","level","THRESHOLDS","PerformanceTracker","metric","good","poor","rating","entries","last","first","clsValue","entry","RageClickDetector","testId","Breadcrumbs","maxSize","category","crumb","NavigationTracker","trigger","newUrl","from","to","ALWAYS_DENY_RESPONSE_HEADERS","PrivacyFilter","denyList","denyLower","filtered","patterns","pattern","Transport","eventSize","events","batch","useKeepalive","res","VERSION","sessionManager","recorder","errorTracker","networkInterceptor","consoleInterceptor","performanceTracker","rageClickDetector","breadcrumbs","navigationTracker","privacyFilter","transport","ensureInitialized","handleEvent","userConfig","stop","startRecording","sanitized","identify","setMetadata","Ghostplay","index_default"],"mappings":"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","file":"index.global.js","sourcesContent":["// rrweb type aliases — rrweb 2.0.0-alpha.4 does not re-export these from its\n// package root, so we define compatible local aliases to keep the same shape.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype eventWithTime = any;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype recordOptions<T = eventWithTime> = Record<string, any>;\n\n// --- SDK Config ---\n\nexport interface NetworkSanitizeConfig {\n denyHeaders: string[];\n denyBodyUrls: string[];\n}\n\nexport interface GhostplayConfig {\n projectId: string;\n apiUrl?: string;\n\n // Privacy\n maskAllInputs?: boolean;\n maskInputSelector?: string;\n blockSelector?: string;\n ignoreSelector?: string;\n networkSanitize?: NetworkSanitizeConfig;\n\n // Feature toggles\n recordNetwork?: boolean;\n recordConsole?: boolean;\n trackPerformance?: boolean;\n trackRageClicks?: boolean;\n trackNavigation?: boolean;\n\n // Transport\n flushIntervalMs?: number;\n flushMaxBytes?: number;\n\n // rrweb passthrough\n rrwebConfig?: Partial<recordOptions<eventWithTime>>;\n}\n\nexport const DEFAULT_CONFIG: Required<\n Pick<\n GhostplayConfig,\n | 'apiUrl'\n | 'maskAllInputs'\n | 'recordNetwork'\n | 'recordConsole'\n | 'trackPerformance'\n | 'trackRageClicks'\n | 'trackNavigation'\n | 'flushIntervalMs'\n | 'flushMaxBytes'\n >\n> = {\n apiUrl: 'https://api.ghostplay.dev/v1',\n maskAllInputs: true,\n recordNetwork: true,\n recordConsole: true,\n trackPerformance: true,\n trackRageClicks: true,\n trackNavigation: true,\n flushIntervalMs: 5000,\n flushMaxBytes: 50_000,\n};\n\n// --- Session ---\n\nexport interface Session {\n id: string;\n projectId: string;\n startedAt: number;\n userId?: string;\n userTraits?: Record<string, unknown>;\n tags: string[];\n metadata: Record<string, unknown>;\n}\n\n// --- Events ---\n\nexport type GhostplayEventType =\n | 'rrweb'\n | 'error'\n | 'network'\n | 'console'\n | 'performance'\n | 'rage-click'\n | 'breadcrumb'\n | 'identify'\n | 'tag'\n | 'metadata'\n | 'navigation';\n\nexport interface GhostplayEvent {\n type: GhostplayEventType;\n timestamp: number;\n sessionId: string;\n data: unknown;\n}\n\nexport interface ErrorEventData {\n message: string;\n stack?: string;\n source?: string;\n lineno?: number;\n colno?: number;\n type: 'onerror' | 'unhandledrejection';\n}\n\nexport interface NetworkEventData {\n method: string;\n url: string;\n status?: number;\n statusText?: string;\n requestHeaders?: Record<string, string>;\n responseHeaders?: Record<string, string>;\n requestBody?: string;\n responseBody?: string;\n startTime: number;\n endTime?: number;\n duration?: number;\n}\n\nexport interface ConsoleEventData {\n level: 'log' | 'warn' | 'error' | 'info' | 'debug';\n args: unknown[];\n}\n\nexport interface PerformanceEventData {\n metric: 'LCP' | 'FID' | 'CLS' | 'TTFB' | 'INP';\n value: number;\n rating: 'good' | 'needs-improvement' | 'poor';\n}\n\nexport interface RageClickEventData {\n selector: string;\n clickCount: number;\n x: number;\n y: number;\n}\n\nexport interface BreadcrumbEventData {\n category: 'navigation' | 'click' | 'input' | 'error' | 'network' | 'custom';\n message: string;\n data?: Record<string, unknown>;\n}\n\nexport interface NavigationEventData {\n from: string | null;\n to: string;\n trigger: 'pushState' | 'replaceState' | 'popstate' | 'hashchange' | 'initial';\n}\n\n// --- Transport ---\n\nexport interface EventBatch {\n projectId: string;\n sessionId: string;\n events: GhostplayEvent[];\n sentAt: number;\n}\n","import { type GhostplayConfig, DEFAULT_CONFIG } from './types';\n\nexport type ResolvedConfig = GhostplayConfig & typeof DEFAULT_CONFIG;\n\nexport function resolveConfig(config: GhostplayConfig): ResolvedConfig {\n if (!config.projectId) {\n throw new Error('[Ghostplay] projectId is required');\n }\n if (!config.projectId.startsWith('gp_')) {\n throw new Error('[Ghostplay] projectId must start with \"gp_\"');\n }\n\n return { ...DEFAULT_CONFIG, ...config };\n}\n","import type { Session } from './types';\n\nfunction generateId(): string {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).substring(2, 10);\n return `gs_${timestamp}_${random}`;\n}\n\nexport class SessionManager {\n private session: Session | null = null;\n\n constructor(private projectId: string) {}\n\n start(): Session {\n this.session = {\n id: generateId(),\n projectId: this.projectId,\n startedAt: Date.now(),\n tags: [],\n metadata: {},\n };\n return this.session;\n }\n\n current(): Session {\n if (!this.session) {\n throw new Error('[Ghostplay] No active session');\n }\n return this.session;\n }\n\n identify(userId: string, traits?: Record<string, unknown>): void {\n const session = this.current();\n session.userId = userId;\n session.userTraits = traits;\n }\n\n addTag(tag: string): void {\n const session = this.current();\n if (!session.tags.includes(tag)) {\n session.tags.push(tag);\n }\n }\n\n setMetadata(data: Record<string, unknown>): void {\n const session = this.current();\n session.metadata = { ...session.metadata, ...data };\n }\n\n end(): void {\n this.session = null;\n }\n}\n","var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n var host = n === null || n === void 0 ? void 0 : n.host;\r\n return Boolean((host === null || host === void 0 ? void 0 : 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 getCssRulesString(s) {\r\n try {\r\n var rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules).map(getCssRuleString).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction getCssRuleString(rule) {\r\n var cssStringified = rule.cssText;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n cssStringified = getCssRulesString(rule.styleSheet) || cssStringified;\r\n }\r\n catch (_a) {\r\n }\r\n }\r\n return cssStringified;\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nvar Mirror = (function () {\r\n function Mirror() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n Mirror.prototype.getId = function (n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n var id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n };\r\n Mirror.prototype.getNode = function (id) {\r\n return this.idNodeMap.get(id) || null;\r\n };\r\n Mirror.prototype.getIds = function () {\r\n return Array.from(this.idNodeMap.keys());\r\n };\r\n Mirror.prototype.getMeta = function (n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n };\r\n Mirror.prototype.removeNodeFromMap = function (n) {\r\n var _this = this;\r\n var id = this.getId(n);\r\n this.idNodeMap[\"delete\"](id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach(function (childNode) {\r\n return _this.removeNodeFromMap(childNode);\r\n });\r\n }\r\n };\r\n Mirror.prototype.has = function (id) {\r\n return this.idNodeMap.has(id);\r\n };\r\n Mirror.prototype.hasNode = function (node) {\r\n return this.nodeMetaMap.has(node);\r\n };\r\n Mirror.prototype.add = function (n, meta) {\r\n var id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n };\r\n Mirror.prototype.replace = function (id, n) {\r\n var oldNode = this.getNode(id);\r\n if (oldNode) {\r\n var 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 Mirror.prototype.reset = function () {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n };\r\n return Mirror;\r\n}());\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction maskInputValue(_a) {\r\n var maskInputOptions = _a.maskInputOptions, tagName = _a.tagName, type = _a.type, value = _a.value, maskInputFn = _a.maskInputFn;\r\n var text = value || '';\r\n if (maskInputOptions[tagName.toLowerCase()] ||\r\n maskInputOptions[type]) {\r\n if (maskInputFn) {\r\n text = maskInputFn(text);\r\n }\r\n else {\r\n text = '*'.repeat(text.length);\r\n }\r\n }\r\n return text;\r\n}\r\nvar ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n var chunkSize = 50;\r\n for (var x = 0; x < canvas.width; x += chunkSize) {\r\n for (var y = 0; y < canvas.height; y += chunkSize) {\r\n var getImageData = ctx.getImageData;\r\n var originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n var 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(function (pixel) { return pixel !== 0; }))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\n\nvar _id = 1;\r\nvar tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nvar 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 var processedTagName = element.tagName.toLowerCase().trim();\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction stringifyStyleSheet(sheet) {\r\n return sheet.cssRules\r\n ? Array.from(sheet.cssRules)\r\n .map(function (rule) { return rule.cssText || ''; })\r\n .join('')\r\n : '';\r\n}\r\nfunction extractOrigin(url) {\r\n var 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\nvar canvasService;\r\nvar canvasCtx;\r\nvar URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nvar RELATIVE_PATH = /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/|#).*/;\r\nvar DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, function (origin, quote1, path1, quote2, path2, path3) {\r\n var filePath = path1 || path2 || path3;\r\n var maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (!RELATIVE_PATH.test(filePath)) {\r\n return \"url(\".concat(maybeQuote).concat(filePath).concat(maybeQuote, \")\");\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return \"url(\".concat(maybeQuote).concat(filePath).concat(maybeQuote, \")\");\r\n }\r\n if (filePath[0] === '/') {\r\n return \"url(\".concat(maybeQuote).concat(extractOrigin(href) + filePath).concat(maybeQuote, \")\");\r\n }\r\n var stack = href.split('/');\r\n var parts = filePath.split('/');\r\n stack.pop();\r\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\r\n var part = parts_1[_i];\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(\".concat(maybeQuote).concat(stack.join('/')).concat(maybeQuote, \")\");\r\n });\r\n}\r\nvar SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nvar 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 var pos = 0;\r\n function collectCharacters(regEx) {\r\n var chars;\r\n var 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 var 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 var 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 var descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n var inParens = false;\r\n while (true) {\r\n var 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 var 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 var a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value) {\r\n if (name === 'src' ||\r\n (name === 'href' && value && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n value &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset' && value) {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style' && value) {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data' && value) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else {\r\n return value;\r\n }\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector) {\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 (var eIndex = element.classList.length; eIndex--;) {\r\n var 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 return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (node.nodeType !== node.ELEMENT_NODE) {\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n }\r\n for (var eIndex = node.classList.length; eIndex--;) {\r\n var className = node.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector) {\r\n var 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 (typeof maskTextClass === 'string') {\r\n if (el.classList.contains(maskTextClass))\r\n return true;\r\n if (el.closest(\".\".concat(maskTextClass)))\r\n return true;\r\n }\r\n else {\r\n if (classMatchesRegex(el, maskTextClass, true))\r\n return true;\r\n }\r\n if (maskTextSelector) {\r\n if (el.matches(maskTextSelector))\r\n return true;\r\n if (el.closest(maskTextSelector))\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n var win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n var fired = false;\r\n var 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 var timer_1 = setTimeout(function () {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', function () {\r\n clearTimeout(timer_1);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n var 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 var fired = false;\r\n var 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 var timer = setTimeout(function () {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', function () {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n var doc = options.doc, mirror = options.mirror, blockClass = options.blockClass, blockSelector = options.blockSelector, maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, inlineStylesheet = options.inlineStylesheet, _a = options.maskInputOptions, maskInputOptions = _a === void 0 ? {} : _a, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, _b = options.dataURLOptions, dataURLOptions = _b === void 0 ? {} : _b, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn, _c = options.newlyAddedElement, newlyAddedElement = _c === void 0 ? false : _c;\r\n var 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: rootId\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc: doc,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskInputFn: maskInputFn,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n keepIframeSrcFn: keepIframeSrcFn,\r\n newlyAddedElement: newlyAddedElement,\r\n rootId: rootId\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n maskTextFn: maskTextFn,\r\n rootId: rootId\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId: 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: 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 var docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n var _a;\r\n var maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, maskTextFn = options.maskTextFn, rootId = options.rootId;\r\n var parentTagName = n.parentNode && n.parentNode.tagName;\r\n var textContent = n.textContent;\r\n var isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n var isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.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: \".concat(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 if (!isStyle &&\r\n !isScript &&\r\n textContent &&\r\n needMaskingText(n, maskTextClass, maskTextSelector)) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle: isStyle,\r\n rootId: rootId\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n var doc = options.doc, blockClass = options.blockClass, blockSelector = options.blockSelector, inlineStylesheet = options.inlineStylesheet, _a = options.maskInputOptions, maskInputOptions = _a === void 0 ? {} : _a, maskInputFn = options.maskInputFn, _b = options.dataURLOptions, dataURLOptions = _b === void 0 ? {} : _b, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn, _c = options.newlyAddedElement, newlyAddedElement = _c === void 0 ? false : _c, rootId = options.rootId;\r\n var needBlock = _isBlockedElement(n, blockClass, blockSelector);\r\n var tagName = getValidTagName(n);\r\n var attributes = {};\r\n var len = n.attributes.length;\r\n for (var i = 0; i < len; i++) {\r\n var attr = n.attributes[i];\r\n attributes[attr.name] = transformAttribute(doc, tagName, attr.name, attr.value);\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n var stylesheet = Array.from(doc.styleSheets).find(function (s) {\r\n return s.href === n.href;\r\n });\r\n var cssText = null;\r\n if (stylesheet) {\r\n cssText = getCssRulesString(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 var cssText = getCssRulesString(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {\r\n var value = n.value;\r\n var checked = n.checked;\r\n if (attributes.type !== 'radio' &&\r\n attributes.type !== 'checkbox' &&\r\n attributes.type !== 'submit' &&\r\n attributes.type !== 'button' &&\r\n value) {\r\n attributes.value = maskInputValue({\r\n type: attributes.type,\r\n tagName: tagName,\r\n value: value,\r\n maskInputOptions: maskInputOptions,\r\n maskInputFn: maskInputFn\r\n });\r\n }\r\n else 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 var canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n var blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n var 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 var image_1 = n;\r\n var oldValue_1 = image_1.crossOrigin;\r\n image_1.crossOrigin = 'anonymous';\r\n var recordInlineImage = function () {\r\n try {\r\n canvasService.width = image_1.naturalWidth;\r\n canvasService.height = image_1.naturalHeight;\r\n canvasCtx.drawImage(image_1, 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=\".concat(image_1.currentSrc, \"! Error: \").concat(err));\r\n }\r\n oldValue_1\r\n ? (attributes.crossOrigin = oldValue_1)\r\n : image_1.removeAttribute('crossorigin');\r\n };\r\n if (image_1.complete && image_1.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image_1.onload = 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 var _d = n.getBoundingClientRect(), width = _d.width, height = _d.height;\r\n attributes = {\r\n \"class\": attributes[\"class\"],\r\n rr_width: \"\".concat(width, \"px\"),\r\n rr_height: \"\".concat(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 return {\r\n type: NodeType.Element,\r\n tagName: tagName,\r\n attributes: attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock: needBlock,\r\n rootId: rootId\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined) {\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.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 var doc = options.doc, mirror = options.mirror, blockClass = options.blockClass, blockSelector = options.blockSelector, maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, _a = options.skipChild, skipChild = _a === void 0 ? false : _a, _b = options.inlineStylesheet, inlineStylesheet = _b === void 0 ? true : _b, _c = options.maskInputOptions, maskInputOptions = _c === void 0 ? {} : _c, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, slimDOMOptions = options.slimDOMOptions, _d = options.dataURLOptions, dataURLOptions = _d === void 0 ? {} : _d, _e = options.inlineImages, inlineImages = _e === void 0 ? false : _e, _f = options.recordCanvas, recordCanvas = _f === void 0 ? false : _f, onSerialize = options.onSerialize, onIframeLoad = options.onIframeLoad, _g = options.iframeLoadTimeout, iframeLoadTimeout = _g === void 0 ? 5000 : _g, onStylesheetLoad = options.onStylesheetLoad, _h = options.stylesheetLoadTimeout, stylesheetLoadTimeout = _h === void 0 ? 5000 : _h, _j = options.keepIframeSrcFn, keepIframeSrcFn = _j === void 0 ? function () { return false; } : _j, _k = options.newlyAddedElement, newlyAddedElement = _k === void 0 ? false : _k;\r\n var _l = options.preserveWhiteSpace, preserveWhiteSpace = _l === void 0 ? true : _l;\r\n var _serializedNode = serializeNode(n, {\r\n doc: doc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n keepIframeSrcFn: keepIframeSrcFn,\r\n newlyAddedElement: newlyAddedElement\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n var 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 var serializedNode = Object.assign(_serializedNode, { id: 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 var recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n var 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 var bypassOptions = {\r\n doc: doc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: skipChild,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: keepIframeSrcFn\r\n };\r\n for (var _i = 0, _m = Array.from(n.childNodes); _i < _m.length; _i++) {\r\n var childN = _m[_i];\r\n var 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 (var _o = 0, _p = Array.from(n.shadowRoot.childNodes); _o < _p.length; _o++) {\r\n var childN = _p[_o];\r\n var 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, function () {\r\n var iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n var serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: 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, function () {\r\n if (onStylesheetLoad) {\r\n var serializedLinkNode = serializeNodeWithId(n, {\r\n doc: doc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: 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 var _a = options || {}, _b = _a.mirror, mirror = _b === void 0 ? new Mirror() : _b, _c = _a.blockClass, blockClass = _c === void 0 ? 'rr-block' : _c, _d = _a.blockSelector, blockSelector = _d === void 0 ? null : _d, _e = _a.maskTextClass, maskTextClass = _e === void 0 ? 'rr-mask' : _e, _f = _a.maskTextSelector, maskTextSelector = _f === void 0 ? null : _f, _g = _a.inlineStylesheet, inlineStylesheet = _g === void 0 ? true : _g, _h = _a.inlineImages, inlineImages = _h === void 0 ? false : _h, _j = _a.recordCanvas, recordCanvas = _j === void 0 ? false : _j, _k = _a.maskAllInputs, maskAllInputs = _k === void 0 ? false : _k, maskTextFn = _a.maskTextFn, maskInputFn = _a.maskInputFn, _l = _a.slimDOM, slimDOM = _l === void 0 ? false : _l, dataURLOptions = _a.dataURLOptions, preserveWhiteSpace = _a.preserveWhiteSpace, onSerialize = _a.onSerialize, onIframeLoad = _a.onIframeLoad, iframeLoadTimeout = _a.iframeLoadTimeout, onStylesheetLoad = _a.onStylesheetLoad, stylesheetLoadTimeout = _a.stylesheetLoadTimeout, _m = _a.keepIframeSrcFn, keepIframeSrcFn = _m === void 0 ? function () { return false; } : _m;\r\n var 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 password: true\r\n }\r\n : maskAllInputs === false\r\n ? {\r\n password: true\r\n }\r\n : maskAllInputs;\r\n var 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: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: keepIframeSrcFn,\r\n newlyAddedElement: false\r\n });\r\n}\r\n\nvar commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options) {\r\n if (options === void 0) { options = {}; }\r\n var lineno = 1;\r\n var column = 1;\r\n function updatePosition(str) {\r\n var lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n var i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n var start = { line: lineno, column: column };\r\n return function (node) {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n var Position = (function () {\r\n function Position(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column: column };\r\n this.source = options.source;\r\n }\r\n return Position;\r\n }());\r\n Position.prototype.content = css;\r\n var errorsList = [];\r\n function error(msg) {\r\n var err = new Error(\"\".concat(options.source || '', \":\").concat(lineno, \":\").concat(column, \": \").concat(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 var 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 var node;\r\n var rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node !== false) {\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 var m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n var 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 if (rules === void 0) { rules = []; }\r\n var c;\r\n while ((c = comment())) {\r\n if (c !== false) {\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 var pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n var 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 var 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 var m = match(/^([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n return trim(m[0])\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function (m) {\r\n return m.replace(/,/g, '\\u200C');\r\n })\r\n .split(/\\s*(?![^(]*\\)),\\s*/)\r\n .map(function (s) {\r\n return s.replace(/\\u200C/g, ',');\r\n });\r\n }\r\n function declaration() {\r\n var pos = position();\r\n var propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n var prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(\"property missing ':'\");\r\n }\r\n var val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n var 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 var decls = [];\r\n if (!open()) {\r\n return error(\"missing '{'\");\r\n }\r\n comments(decls);\r\n var 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 var m;\r\n var vals = [];\r\n var 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 var pos = position();\r\n var m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n var vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n var name = m[1];\r\n if (!open()) {\r\n return error(\"@keyframes missing '{'\");\r\n }\r\n var frame;\r\n var 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: name,\r\n vendor: vendor,\r\n keyframes: frames\r\n });\r\n }\r\n function atsupports() {\r\n var pos = position();\r\n var m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n var supports = trim(m[1]);\r\n if (!open()) {\r\n return error(\"@supports missing '{'\");\r\n }\r\n var 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: supports,\r\n rules: style\r\n });\r\n }\r\n function athost() {\r\n var pos = position();\r\n var 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 var 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 var pos = position();\r\n var m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n var media = trim(m[1]);\r\n if (!open()) {\r\n return error(\"@media missing '{'\");\r\n }\r\n var 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: media,\r\n rules: style\r\n });\r\n }\r\n function atcustommedia() {\r\n var pos = position();\r\n var 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 var pos = position();\r\n var m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n var sel = selector() || [];\r\n if (!open()) {\r\n return error(\"@page missing '{'\");\r\n }\r\n var decls = comments();\r\n var 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 var pos = position();\r\n var m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n var vendor = trim(m[1]);\r\n var doc = trim(m[2]);\r\n if (!open()) {\r\n return error(\"@document missing '{'\");\r\n }\r\n var 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: vendor,\r\n rules: style\r\n });\r\n }\r\n function atfontface() {\r\n var pos = position();\r\n var 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 var decls = comments();\r\n var 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 var atimport = _compileAtrule('import');\r\n var atcharset = _compileAtrule('charset');\r\n var atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n var re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return function () {\r\n var pos = position();\r\n var m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n var 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 var pos = position();\r\n var 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 var isNode = obj && typeof obj.type === 'string';\r\n var childParent = isNode ? obj : parent;\r\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\r\n var k = _a[_i];\r\n var value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach(function (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\nvar 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 var 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\nvar HOVER_SELECTOR = /([^\\\\]):hover/;\r\nvar HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n var cachedStyle = cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n var ast = parse(cssText, {\r\n silent: true\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n var selectors = [];\r\n ast.stylesheet.rules.forEach(function (rule) {\r\n if ('selectors' in rule) {\r\n (rule.selectors || []).forEach(function (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 var selectorMatcher = new RegExp(selectors\r\n .filter(function (selector, index) { return selectors.indexOf(selector) === index; })\r\n .sort(function (a, b) { return b.length - a.length; })\r\n .map(function (selector) {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n var result = cssText.replace(selectorMatcher, function (selector) {\r\n var newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return \"\".concat(selector, \", \").concat(newSelector);\r\n });\r\n cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n var stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass: stylesWithHoverClass\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n var doc = options.doc, hackCss = options.hackCss, cache = options.cache;\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 var tagName = getTagName(n);\r\n var node_1;\r\n if (n.isSVG) {\r\n node_1 = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n node_1 = doc.createElement(tagName);\r\n }\r\n var specialAttributes = {};\r\n for (var name_1 in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name_1)) {\r\n continue;\r\n }\r\n var value = n.attributes[name_1];\r\n if (tagName === 'option' &&\r\n name_1 === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name_1.startsWith('rr_')) {\r\n specialAttributes[name_1] = value;\r\n continue;\r\n }\r\n var isTextarea = tagName === 'textarea' && name_1 === 'value';\r\n var isRemoteOrDynamicCss = tagName === 'style' && name_1 === '_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 var child = doc.createTextNode(value);\r\n for (var _i = 0, _a = Array.from(node_1.childNodes); _i < _a.length; _i++) {\r\n var c = _a[_i];\r\n if (c.nodeType === node_1.TEXT_NODE) {\r\n node_1.removeChild(c);\r\n }\r\n }\r\n node_1.appendChild(child);\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name_1 === 'xlink:href') {\r\n node_1.setAttributeNS('http://www.w3.org/1999/xlink', name_1, value.toString());\r\n }\r\n else if (name_1 === 'onload' ||\r\n name_1 === 'onclick' ||\r\n name_1.substring(0, 7) === 'onmouse') {\r\n node_1.setAttribute('_' + name_1, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name_1 === 'content') {\r\n node_1.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.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_1.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node_1.setAttribute(name_1, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n var _loop_1 = function (name_2) {\r\n var value = specialAttributes[name_2];\r\n if (tagName === 'canvas' && name_2 === 'rr_dataURL') {\r\n var image_1 = document.createElement('img');\r\n image_1.onload = function () {\r\n var ctx = node_1.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image_1, 0, 0, image_1.width, image_1.height);\r\n }\r\n };\r\n image_1.src = value.toString();\r\n if (node_1.RRNodeType)\r\n node_1.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name_2 === 'rr_dataURL') {\r\n var image = node_1;\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_2 === 'rr_width') {\r\n node_1.style.width = value.toString();\r\n }\r\n else if (name_2 === 'rr_height') {\r\n node_1.style.height = value.toString();\r\n }\r\n else if (name_2 === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node_1.currentTime = value;\r\n }\r\n else if (name_2 === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node_1\r\n .play()[\"catch\"](function (e) { return console.warn('media playback error', e); });\r\n break;\r\n case 'paused':\r\n node_1.pause();\r\n break;\r\n }\r\n }\r\n };\r\n for (var name_2 in specialAttributes) {\r\n _loop_1(name_2);\r\n }\r\n if (n.isShadowHost) {\r\n if (!node_1.shadowRoot) {\r\n node_1.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node_1.shadowRoot.firstChild) {\r\n node_1.shadowRoot.removeChild(node_1.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node_1;\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 var doc = options.doc, mirror = options.mirror, _a = options.skipChild, skipChild = _a === void 0 ? false : _a, _b = options.hackCss, hackCss = _b === void 0 ? true : _b, afterAppend = options.afterAppend, cache = options.cache;\r\n var node = buildNode(n, { doc: doc, hackCss: hackCss, cache: 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('<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">');\r\n }\r\n else {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">');\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 (var _i = 0, _c = n.childNodes; _i < _c.length; _i++) {\r\n var childN = _c[_i];\r\n var childNode = buildNodeWithSN(childN, {\r\n doc: doc,\r\n mirror: mirror,\r\n skipChild: false,\r\n hackCss: hackCss,\r\n afterAppend: afterAppend,\r\n cache: 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 {\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 (var _i = 0, _a = mirror.getIds(); _i < _a.length; _i++) {\r\n var id = _a[_i];\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 var n = mirror.getMeta(node);\r\n if ((n === null || n === void 0 ? void 0 : n.type) !== NodeType.Element) {\r\n return;\r\n }\r\n var el = node;\r\n for (var name_3 in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name_3) &&\r\n name_3.startsWith('rr_'))) {\r\n continue;\r\n }\r\n var value = n.attributes[name_3];\r\n if (name_3 === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name_3 === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n var doc = options.doc, onVisit = options.onVisit, _a = options.hackCss, hackCss = _a === void 0 ? true : _a, afterAppend = options.afterAppend, cache = options.cache, _b = options.mirror, mirror = _b === void 0 ? new Mirror() : _b;\r\n var node = buildNodeWithSN(n, {\r\n doc: doc,\r\n mirror: mirror,\r\n skipChild: false,\r\n hackCss: hackCss,\r\n afterAppend: afterAppend,\r\n cache: cache\r\n });\r\n visit(mirror, function (visitedNode) {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, addHoverClass, buildNodeWithSN, classMatchesRegex, createCache, createMirror, genId, getCssRuleString, getCssRulesString, is2DCanvasBlank, isCSSImportRule, isElement, isNativeShadowDom, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, snapshot, transformAttribute };\n","import { classMatchesRegex, IGNORED_NODE, isShadowRoot } 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 (_a) {\r\n return () => {\r\n };\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 isBlocked(node, blockClass, blockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (!el)\r\n return false;\r\n if (typeof blockClass === 'string') {\r\n if (el.classList.contains(blockClass))\r\n return true;\r\n if (checkAncestors && el.closest('.' + blockClass) !== null)\r\n return true;\r\n }\r\n else {\r\n if (classMatchesRegex(el, blockClass, checkAncestors))\r\n return true;\r\n }\r\n if (blockSelector) {\r\n if (node.matches(blockSelector))\r\n return true;\r\n if (checkAncestors && el.closest(blockSelector) !== null)\r\n return true;\r\n }\r\n return false;\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 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 var _a, _b;\r\n const frameElement = (_b = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) === null || _b === void 0 ? void 0 : _b.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 === null || n === void 0 ? void 0 : 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 var _a;\r\n return (_a = this.styleIDMap.get(stylesheet)) !== null && _a !== void 0 ? _a : -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}\n\nexport { StyleSheetMirror, _mirror, getBaseDimension, getNestedRule, getPositionsAndIndex, getWindowHeight, getWindowWidth, hasShadowRoot, hookSetter, isAncestorRemoved, isBlocked, isIgnored, isSerialized, isSerializedIframe, isSerializedStylesheet, isTouchEvent, iterateResolveTree, on, patch, polyfill, queueToResolveTrees, 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 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 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, ReplayerEvents };\n","import { isShadowRoot, isNativeShadowDom, maskInputValue, transformAttribute, needMaskingText, IGNORED_NODE, serializeNodeWithId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { isIgnored, isBlocked, isSerialized, isAncestorRemoved, isSerializedIframe, isSerializedStylesheet, hasShadowRoot } from '../utils.js';\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = (current === null || current === void 0 ? void 0 : current.next) || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n var _a, _b, _c, _d;\r\n let shadowHost = null;\r\n if (((_b = (_a = n.getRootNode) === null || _a === void 0 ? void 0 : _a.call(n)) === null || _b === void 0 ? void 0 : _b.nodeType) === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n let rootShadowHost = shadowHost;\r\n while (((_d = (_c = rootShadowHost === null || rootShadowHost === void 0 ? void 0 : rootShadowHost.getRootNode) === null || _c === void 0 ? void 0 : _c.call(rootShadowHost)) === null || _d === void 0 ? void 0 : _d.nodeType) ===\r\n Node.DOCUMENT_FRAGMENT_NODE &&\r\n rootShadowHost.getRootNode().host)\r\n rootShadowHost = rootShadowHost.getRootNode().host;\r\n const notInDoc = !this.doc.contains(n) &&\r\n (!rootShadowHost || !this.doc.contains(rootShadowHost));\r\n if (!n.parentNode || notInDoc) {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(shadowHost)\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskTextClass: this.maskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of Array.from(this.movedSet.values())) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of Array.from(this.addedSet.values())) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n for (let index = addList.length - 1; index >= 0; index--) {\r\n const _node = addList.get(index);\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => ({\r\n id: this.mirror.getId(text.node),\r\n value: text.value,\r\n }))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => ({\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attribute.attributes,\r\n }))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value)\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let value = m.target.getAttribute(m.attributeName);\r\n if (m.attributeName === 'value') {\r\n value = maskInputValue({\r\n maskInputOptions: this.maskInputOptions,\r\n tagName: m.target.tagName,\r\n type: m.target.getAttribute('type'),\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributes.find((a) => a.node === m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n m.attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n m.attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n };\r\n this.attributes.push(item);\r\n }\r\n if (m.attributeName === 'style') {\r\n const old = this.doc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n if (item.attributes.style === undefined ||\r\n item.attributes.style === null) {\r\n item.attributes.style = {};\r\n }\r\n const styleObj = item.attributes.style;\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n styleObj[pname] = newValue;\r\n }\r\n else {\r\n styleObj[pname] = [newValue, newPriority];\r\n }\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n styleObj[pname] = false;\r\n }\r\n }\r\n }\r\n else {\r\n item.attributes[m.attributeName] = transformAttribute(this.doc, target.tagName, m.attributeName, value);\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\r\n return;\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, false))\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'maskTextClass',\r\n 'maskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nexport { MutationBuffer as default };\n","import { maskInputValue } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { on, throttle, isBlocked, getWindowHeight, getWindowWidth, hookSetter, patch, isTouchEvent } from '../utils.js';\nimport { MouseInteractions, IncrementalSource } from '../../../types/dist/types.js';\nimport MutationBuffer from './mutation.js';\n\nconst mutationBuffers = [];\r\nconst isCSSGroupingRuleSupported = typeof CSSGroupingRule !== 'undefined';\r\nconst isCSSMediaRuleSupported = typeof CSSMediaRule !== 'undefined';\r\nconst isCSSSupportsRuleSupported = typeof CSSSupportsRule !== 'undefined';\r\nconst isCSSConditionRuleSupported = typeof CSSConditionRule !== 'undefined';\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n return event.target;\r\n }\r\n catch (_a) {\r\n return event.target;\r\n }\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n var _a, _b;\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = (_b = (_a = window === null || window === void 0 ? void 0 : window.Zone) === null || _a === void 0 ? void 0 : _a.__symbol__) === null || _b === void 0 ? void 0 : _b.call(_a, 'MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(mutationBuffer.processMutations.bind(mutationBuffer));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }, callbackThreshold);\r\n const updatePosition = throttle((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = Date.now();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: Date.now() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource.MouseMove\r\n : IncrementalSource.TouchMove);\r\n }, threshold, {\r\n trailing: false,\r\n });\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const e = isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n mouseInteractionCb({\r\n type: MouseInteractions[eventKey],\r\n id,\r\n x: clientX,\r\n y: clientY,\r\n });\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n const eventName = eventKey.toLowerCase();\r\n const handler = getHandler(eventKey);\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n const updatePosition = throttle((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc) {\r\n const scrollEl = (doc.scrollingElement || doc.documentElement);\r\n scrollCb({\r\n id,\r\n x: scrollEl.scrollLeft,\r\n y: scrollEl.scrollTop,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }, sampling.scroll || 100);\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb, }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = throttle(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }, 200);\r\n return on('resize', updateDimension, window);\r\n}\r\nfunction wrapEventWithUserTriggeredFlag(v, enable) {\r\n const value = Object.assign({}, v);\r\n if (!enable)\r\n delete value.userTriggered;\r\n return value;\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, ignoreClass, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n if (target && target.tagName === 'OPTION')\r\n target = target.parentElement;\r\n if (!target ||\r\n !target.tagName ||\r\n INPUT_TAGS.indexOf(target.tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const type = target.type;\r\n if (target.classList.contains(ignoreClass)) {\r\n return;\r\n }\r\n let text = target.value;\r\n let isChecked = false;\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n else if (maskInputOptions[target.tagName.toLowerCase()] ||\r\n maskInputOptions[type]) {\r\n text = maskInputValue({\r\n maskInputOptions,\r\n tagName: target.tagName,\r\n type,\r\n value: text,\r\n maskInputFn,\r\n });\r\n }\r\n cbWithDedup(target, wrapEventWithUserTriggeredFlag({ text, isChecked, userTriggered }, userTriggeredOnInput));\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n cbWithDedup(el, wrapEventWithUserTriggeredFlag({\r\n text: el.value,\r\n isChecked: !isChecked,\r\n userTriggered: false,\r\n }, userTriggeredOnInput));\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n inputCb(Object.assign(Object.assign({}, v), { id }));\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, eventHandler, doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n eventHandler({ target: this });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((isCSSGroupingRuleSupported &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (isCSSMediaRuleSupported &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (isCSSSupportsRuleSupported &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (isCSSConditionRuleSupported &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = function (rule, index) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return insertRule.apply(this, [rule, index]);\r\n };\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = function (index) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return deleteRule.apply(this, [index]);\r\n };\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = function (text) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return replace.apply(this, [text]);\r\n };\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = function (text) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return replaceSync.apply(this, [text]);\r\n };\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (isCSSGroupingRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (isCSSMediaRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (isCSSConditionRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (isCSSSupportsRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = function (rule, index) {\r\n const { id, styleId } = getIdAndStyleId(this.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(this),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return unmodifiedFunctions[typeKey].insertRule.apply(this, [rule, index]);\r\n };\r\n type.prototype.deleteRule = function (index) {\r\n const { id, styleId } = getIdAndStyleId(this.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(this), index] },\r\n ],\r\n });\r\n }\r\n return unmodifiedFunctions[typeKey].deleteRule.apply(this, [index]);\r\n };\r\n });\r\n return () => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n };\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n var _a, _b, _c;\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? (_a = host.defaultView) === null || _a === void 0 ? void 0 : _a.Document\r\n : (_c = (_b = host.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) === null || _c === void 0 ? void 0 : _c.ShadowRoot;\r\n const originalPropertyDescriptor = Object.getOwnPropertyDescriptor(patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype, 'adoptedStyleSheets');\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n var _a;\r\n return (_a = originalPropertyDescriptor.get) === null || _a === void 0 ? void 0 : _a.call(this);\r\n },\r\n set(sheets) {\r\n var _a;\r\n const result = (_a = originalPropertyDescriptor.set) === null || _a === void 0 ? void 0 : _a.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return () => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n };\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = function (property, value, priority) {\r\n var _a;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(this, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = this.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(this.parentRule),\r\n });\r\n }\r\n return setProperty.apply(this, [property, value, priority]);\r\n };\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = function (property) {\r\n var _a;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(this, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = this.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(this.parentRule),\r\n });\r\n }\r\n return removeProperty.apply(this, [property]);\r\n };\r\n return () => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n };\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, mirror, sampling, }) {\r\n const handler = (type) => throttle((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate, } = target;\r\n mediaInteractionCb({\r\n type,\r\n id: mirror.getId(target),\r\n currentTime,\r\n volume,\r\n muted,\r\n playbackRate,\r\n });\r\n }, sampling.media || 500);\r\n const handlers = [\r\n on('play', handler(0)),\r\n on('pause', handler(1)),\r\n on('seeked', handler(2)),\r\n on('volumechange', handler(3)),\r\n on('ratechange', handler(4)),\r\n ];\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }, 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, selectionCb } = param;\r\n let collapsed = true;\r\n const updateSelection = () => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && (selection === null || selection === void 0 ? void 0 : selection.isCollapsed)))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n };\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction mergeHooks(o, hooks) {\r\n const { mutationCb, mousemoveCb, mouseInteractionCb, scrollCb, viewportResizeCb, inputCb, mediaInteractionCb, styleSheetRuleCb, styleDeclarationCb, canvasMutationCb, fontCb, selectionCb, } = o;\r\n o.mutationCb = (...p) => {\r\n if (hooks.mutation) {\r\n hooks.mutation(...p);\r\n }\r\n mutationCb(...p);\r\n };\r\n o.mousemoveCb = (...p) => {\r\n if (hooks.mousemove) {\r\n hooks.mousemove(...p);\r\n }\r\n mousemoveCb(...p);\r\n };\r\n o.mouseInteractionCb = (...p) => {\r\n if (hooks.mouseInteraction) {\r\n hooks.mouseInteraction(...p);\r\n }\r\n mouseInteractionCb(...p);\r\n };\r\n o.scrollCb = (...p) => {\r\n if (hooks.scroll) {\r\n hooks.scroll(...p);\r\n }\r\n scrollCb(...p);\r\n };\r\n o.viewportResizeCb = (...p) => {\r\n if (hooks.viewportResize) {\r\n hooks.viewportResize(...p);\r\n }\r\n viewportResizeCb(...p);\r\n };\r\n o.inputCb = (...p) => {\r\n if (hooks.input) {\r\n hooks.input(...p);\r\n }\r\n inputCb(...p);\r\n };\r\n o.mediaInteractionCb = (...p) => {\r\n if (hooks.mediaInteaction) {\r\n hooks.mediaInteaction(...p);\r\n }\r\n mediaInteractionCb(...p);\r\n };\r\n o.styleSheetRuleCb = (...p) => {\r\n if (hooks.styleSheetRule) {\r\n hooks.styleSheetRule(...p);\r\n }\r\n styleSheetRuleCb(...p);\r\n };\r\n o.styleDeclarationCb = (...p) => {\r\n if (hooks.styleDeclaration) {\r\n hooks.styleDeclaration(...p);\r\n }\r\n styleDeclarationCb(...p);\r\n };\r\n o.canvasMutationCb = (...p) => {\r\n if (hooks.canvasMutation) {\r\n hooks.canvasMutation(...p);\r\n }\r\n canvasMutationCb(...p);\r\n };\r\n o.fontCb = (...p) => {\r\n if (hooks.font) {\r\n hooks.font(...p);\r\n }\r\n fontCb(...p);\r\n };\r\n o.selectionCb = (...p) => {\r\n if (hooks.selection) {\r\n hooks.selection(...p);\r\n }\r\n selectionCb(...p);\r\n };\r\n}\r\nfunction initObservers(o, hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n mergeHooks(o, hooks);\r\n const mutationObserver = initMutationObserver(o, o.doc);\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o);\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n const styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n const adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n const styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n const fontObserver = o.collectFonts\r\n ? initFontObserver(o)\r\n : () => {\r\n };\r\n const selectionObserver = initSelectionObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return () => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n pluginHandlers.forEach((h) => h());\r\n };\r\n}\n\nexport { INPUT_TAGS, initAdoptedStyleSheetObserver, initMutationObserver, initObservers, initScrollObserver, mutationBuffers };\n","class CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nexport { CrossOriginIframeMirror as default };\n","import { genId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport CrossOriginIframeMirror from './cross-origin-iframe-mirror.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/types.js';\n\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n var _a;\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n if (message.data.type === 'rrweb') {\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, message.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, message.data.isCheckout);\r\n }\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n var _a;\r\n switch (e.type) {\r\n case EventType.FullSnapshot: {\r\n this.crossOriginIframeMirror.reset(iframeEl);\r\n this.crossOriginIframeStyleMirror.reset(iframeEl);\r\n this.replaceIdOnNode(e.data.node, iframeEl);\r\n return {\r\n timestamp: e.timestamp,\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: e.data.node,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n },\r\n };\r\n }\r\n case EventType.Meta:\r\n case EventType.Load:\r\n case EventType.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType.Plugin: {\r\n return e;\r\n }\r\n case EventType.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource.Mutation: {\r\n e.data.adds.forEach((n) => {\r\n this.replaceIds(n, iframeEl, [\r\n 'parentId',\r\n 'nextId',\r\n 'previousId',\r\n ]);\r\n this.replaceIdOnNode(n.node, iframeEl);\r\n });\r\n e.data.removes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\r\n });\r\n e.data.attributes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n e.data.texts.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove: {\r\n e.data.positions.forEach((p) => {\r\n this.replaceIds(p, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource.MediaInteraction:\r\n case IncrementalSource.MouseInteraction:\r\n case IncrementalSource.Scroll:\r\n case IncrementalSource.CanvasMutation:\r\n case IncrementalSource.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\r\n return e;\r\n }\r\n case IncrementalSource.Font: {\r\n return e;\r\n }\r\n case IncrementalSource.Selection: {\r\n e.data.ranges.forEach((range) => {\r\n this.replaceIds(range, iframeEl, ['start', 'end']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n (_a = e.data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n}\n\nexport { IframeManager };\n","import { initMutationObserver, initScrollObserver, initAdoptedStyleSheetObserver } from './observer.js';\nimport { patch } from '../utils.js';\nimport { isNativeShadowDom } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restorePatches = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n const manager = this;\r\n this.restorePatches.push(patch(Element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot)\r\n manager.addShadowRoot(this.shadowRoot, this.ownerDocument);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n initMutationObserver(Object.assign(Object.assign({}, this.bypassOptions), { doc, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), shadowRoot);\r\n initScrollObserver(Object.assign(Object.assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: shadowRoot, mirror: this.mirror }));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot);\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (iframeElement.contentWindow) {\r\n const manager = this;\r\n this.restorePatches.push(patch(iframeElement.contentWindow.HTMLElement.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot)\r\n manager.addShadowRoot(this.shadowRoot, iframeElement.contentDocument);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n }\r\n reset() {\r\n this.restorePatches.forEach((restorePatch) => restorePatch());\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\nexport { ShadowDomManager };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\nexport { __awaiter, __rest };\n","/*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n","import { encode } from './../../../../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nconst canvasVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = canvasVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n canvasVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nconst saveWebGLVar = (value, win, ctx) => {\r\n if (!value ||\r\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\r\n return;\r\n const name = value.constructor.name;\r\n const list = variableListFor(ctx, name);\r\n let index = list.indexOf(value);\r\n if (index === -1) {\r\n index = list.length;\r\n list.push(value);\r\n }\r\n return index;\r\n};\r\nfunction serializeArg(value, win, ctx) {\r\n if (value instanceof Array) {\r\n return value.map((arg) => serializeArg(arg, win, ctx));\r\n }\r\n else if (value === null) {\r\n return value;\r\n }\r\n else if (value instanceof Float32Array ||\r\n value instanceof Float64Array ||\r\n value instanceof Int32Array ||\r\n value instanceof Uint32Array ||\r\n value instanceof Uint8Array ||\r\n value instanceof Uint16Array ||\r\n value instanceof Int16Array ||\r\n value instanceof Int8Array ||\r\n value instanceof Uint8ClampedArray) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [Object.values(value)],\r\n };\r\n }\r\n else if (value instanceof ArrayBuffer) {\r\n const name = value.constructor.name;\r\n const base64 = encode(value);\r\n return {\r\n rr_type: name,\r\n base64,\r\n };\r\n }\r\n else if (value instanceof DataView) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [\r\n serializeArg(value.buffer, win, ctx),\r\n value.byteOffset,\r\n value.byteLength,\r\n ],\r\n };\r\n }\r\n else if (value instanceof HTMLImageElement) {\r\n const name = value.constructor.name;\r\n const { src } = value;\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof HTMLCanvasElement) {\r\n const name = 'HTMLImageElement';\r\n const src = value.toDataURL();\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof ImageData) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\r\n };\r\n }\r\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\r\n const name = value.constructor.name;\r\n const index = saveWebGLVar(value, win, ctx);\r\n return {\r\n rr_type: name,\r\n index: index,\r\n };\r\n }\r\n return value;\r\n}\r\nconst serializeArgs = (args, win, ctx) => {\r\n return [...args].map((arg) => serializeArg(arg, win, ctx));\r\n};\r\nconst isInstanceOfWebGLObject = (value, win) => {\r\n const webGLConstructorNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n 'WebGLVertexArrayObjectOES',\r\n ];\r\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\r\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\r\n};\n\nexport { isInstanceOfWebGLObject, saveWebGLVar, serializeArg, serializeArgs, variableListFor };\n","import { CanvasContext } from '../../../../../types/dist/types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { serializeArgs } from './serialize-args.js';\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\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, 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 (_a) {\r\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvas2DMutationObserver as default };\n","import { patch, isBlocked } from '../../../utils.js';\n\nfunction initCanvasContextObserver(win, blockClass, blockSelector) {\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, true)) {\r\n if (!('__context' in this))\r\n this.__context = contextType;\r\n }\r\n return original.apply(this, [contextType, ...args]);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\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/types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { saveWebGLVar, serializeArgs } from './serialize-args.js';\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, 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 (!isBlocked(this.canvas, blockClass, blockSelector, 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 (_a) {\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, mirror) {\r\n const handlers = [];\r\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, mirror, win));\r\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\r\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, mirror, win));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvasWebGLMutationObserver as default };\n","var WorkerClass = null;\n\ntry {\n var WorkerThreads =\n typeof module !== 'undefined' && typeof module.require === 'function' && module.require('worker_threads') ||\n typeof __non_webpack_require__ === 'function' && __non_webpack_require__('worker_threads') ||\n typeof require === 'function' && require('worker_threads');\n WorkerClass = WorkerThreads.Worker;\n} catch(e) {} // eslint-disable-line\n\nexport { WorkerClass };\n","import { WorkerClass } from './_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js';\n\nfunction decodeBase64(base64, enableUnicode) {\n return Buffer.from(base64, 'base64').toString(enableUnicode ? 'utf16' : 'utf8');\n}\n\nfunction createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var enableUnicode = enableUnicodeArg === undefined ? false : enableUnicodeArg;\n var source = decodeBase64(base64, enableUnicode);\n var start = source.indexOf('\\n', 10) + 1;\n var body = source.substring(start) + (sourcemap ? '\\/\\/# sourceMappingURL=' + sourcemap : '');\n return function WorkerFactory(options) {\n return new WorkerClass(body, Object.assign({}, options, { eval: true }));\n };\n}\n\nexport { createBase64WorkerFactory };\n","function decodeBase64(base64, enableUnicode) {\n var binaryString = atob(base64);\n if (enableUnicode) {\n var binaryView = new Uint8Array(binaryString.length);\n for (var i = 0, n = binaryString.length; i < n; ++i) {\n binaryView[i] = binaryString.charCodeAt(i);\n }\n return String.fromCharCode.apply(null, new Uint16Array(binaryView.buffer));\n }\n return binaryString;\n}\n\nfunction createURL(base64, sourcemapArg, enableUnicodeArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var enableUnicode = enableUnicodeArg === undefined ? false : enableUnicodeArg;\n var source = decodeBase64(base64, enableUnicode);\n var start = source.indexOf('\\n', 10) + 1;\n var body = source.substring(start) + (sourcemap ? '\\/\\/# sourceMappingURL=' + sourcemap : '');\n var blob = new Blob([body], { type: 'application/javascript' });\n return URL.createObjectURL(blob);\n}\n\nfunction createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {\n var url;\n return function WorkerFactory(options) {\n url = url || createURL(base64, sourcemapArg, enableUnicodeArg);\n return new Worker(url, options);\n };\n}\n\nexport { createBase64WorkerFactory };\n","var kIsNodeJS = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n\nfunction isNodeJS() {\n return kIsNodeJS;\n}\n\nexport { isNodeJS };\n","import { createBase64WorkerFactory as createBase64WorkerFactory$1 } from './_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js';\nimport { createBase64WorkerFactory as createBase64WorkerFactory$2 } from './_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js';\nimport { isNodeJS } from './_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js';\n\nfunction createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {\n if (isNodeJS()) {\n return createBase64WorkerFactory$1(base64, sourcemapArg, enableUnicodeArg);\n }\n return createBase64WorkerFactory$2(base64, sourcemapArg, enableUnicodeArg);\n}\n\nexport { createBase64WorkerFactory };\n","import { createBase64WorkerFactory } from './_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js';\n\nvar WorkerFactory = createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewogICAgJ3VzZSBzdHJpY3QnOwoKICAgIC8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KDQogICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55DQogICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLg0KDQogICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEgNCiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkNCiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsDQogICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NDQogICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1INCiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SDQogICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4NCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLw0KDQogICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikgew0KICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0NCiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7DQogICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfQ0KICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpOw0KICAgICAgICB9KTsNCiAgICB9CgogICAgLyoKICAgICAqIGJhc2U2NC1hcnJheWJ1ZmZlciAxLjAuMSA8aHR0cHM6Ly9naXRodWIuY29tL25pa2xhc3ZoL2Jhc2U2NC1hcnJheWJ1ZmZlcj4KICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBOaWtsYXMgdm9uIEhlcnR6ZW4gPGh0dHBzOi8vaGVydHplbi5jb20+CiAgICAgKiBSZWxlYXNlZCB1bmRlciBNSVQgTGljZW5zZQogICAgICovCiAgICB2YXIgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7CiAgICAvLyBVc2UgYSBsb29rdXAgdGFibGUgdG8gZmluZCB0aGUgaW5kZXguCiAgICB2YXIgbG9va3VwID0gdHlwZW9mIFVpbnQ4QXJyYXkgPT09ICd1bmRlZmluZWQnID8gW10gOiBuZXcgVWludDhBcnJheSgyNTYpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgewogICAgICAgIGxvb2t1cFtjaGFycy5jaGFyQ29kZUF0KGkpXSA9IGk7CiAgICB9CiAgICB2YXIgZW5jb2RlID0gZnVuY3Rpb24gKGFycmF5YnVmZmVyKSB7CiAgICAgICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlidWZmZXIpLCBpLCBsZW4gPSBieXRlcy5sZW5ndGgsIGJhc2U2NCA9ICcnOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gMykgewogICAgICAgICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaV0gPj4gMl07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1soKGJ5dGVzW2ldICYgMykgPDwgNCkgfCAoYnl0ZXNbaSArIDFdID4+IDQpXTsKICAgICAgICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaSArIDFdICYgMTUpIDw8IDIpIHwgKGJ5dGVzW2kgKyAyXSA+PiA2KV07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1tieXRlc1tpICsgMl0gJiA2M107CiAgICAgICAgfQogICAgICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgJz0nOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgJz09JzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGJhc2U2NDsKICAgIH07CgogICAgY29uc3QgbGFzdEJsb2JNYXAgPSBuZXcgTWFwKCk7DQogICAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gbmV3IE1hcCgpOw0KICAgIGZ1bmN0aW9uIGdldFRyYW5zcGFyZW50QmxvYkZvcih3aWR0aCwgaGVpZ2h0LCBkYXRhVVJMT3B0aW9ucykgew0KICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgew0KICAgICAgICAgICAgY29uc3QgaWQgPSBgJHt3aWR0aH0tJHtoZWlnaHR9YDsNCiAgICAgICAgICAgIGlmICgnT2Zmc2NyZWVuQ2FudmFzJyBpbiBnbG9iYWxUaGlzKSB7DQogICAgICAgICAgICAgICAgaWYgKHRyYW5zcGFyZW50QmxvYk1hcC5oYXMoaWQpKQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNwYXJlbnRCbG9iTWFwLmdldChpZCk7DQogICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsNCiAgICAgICAgICAgICAgICBvZmZzY3JlZW4uZ2V0Q29udGV4dCgnMmQnKTsNCiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoZGF0YVVSTE9wdGlvbnMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0geWllbGQgYmxvYi5hcnJheUJ1ZmZlcigpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7DQogICAgICAgICAgICAgICAgdHJhbnNwYXJlbnRCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTY0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICcnOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9DQogICAgY29uc3Qgd29ya2VyID0gc2VsZjsNCiAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsNCiAgICAgICAgICAgIGlmICgnT2Zmc2NyZWVuQ2FudmFzJyBpbiBnbG9iYWxUaGlzKSB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBpZCwgYml0bWFwLCB3aWR0aCwgaGVpZ2h0LCBkYXRhVVJMT3B0aW9ucyB9ID0gZS5kYXRhOw0KICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zKTsNCiAgICAgICAgICAgICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGN0eCA9IG9mZnNjcmVlbi5nZXRDb250ZXh0KCcyZCcpOw0KICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoYml0bWFwLCAwLCAwKTsNCiAgICAgICAgICAgICAgICBiaXRtYXAuY2xvc2UoKTsNCiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoZGF0YVVSTE9wdGlvbnMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBibG9iLnR5cGU7DQogICAgICAgICAgICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSB5aWVsZCBibG9iLmFycmF5QnVmZmVyKCk7DQogICAgICAgICAgICAgICAgY29uc3QgYmFzZTY0ID0gZW5jb2RlKGFycmF5QnVmZmVyKTsNCiAgICAgICAgICAgICAgICBpZiAoIWxhc3RCbG9iTWFwLmhhcyhpZCkgJiYgKHlpZWxkIHRyYW5zcGFyZW50QmFzZTY0KSA9PT0gYmFzZTY0KSB7DQogICAgICAgICAgICAgICAgICAgIGxhc3RCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtlci5wb3N0TWVzc2FnZSh7IGlkIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7DQogICAgICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHsNCiAgICAgICAgICAgICAgICAgICAgaWQsDQogICAgICAgICAgICAgICAgICAgIHR5cGUsDQogICAgICAgICAgICAgICAgICAgIGJhc2U2NCwNCiAgICAgICAgICAgICAgICAgICAgd2lkdGgsDQogICAgICAgICAgICAgICAgICAgIGhlaWdodCwNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfTsKCn0pKCk7Cgo=', null, false);\n/* eslint-enable */\n\nexport { WorkerFactory as default };\n","import { __rest, __awaiter } from './../../../../../../ext/tslib/tslib.es6.js';\nimport { isBlocked } from '../../../utils.js';\nimport { CanvasContext } from '../../../../../types/dist/types.js';\nimport initCanvas2DMutationObserver from './2d.js';\nimport initCanvasContextObserver from './canvas.js';\nimport initCanvasWebGLMutationObserver from './webgl.js';\nimport WorkerFactory from '../../../../../../_virtual/image-bitmap-data-url-worker.js';\n\nclass CanvasManager {\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, recordCanvas, dataURLOptions, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\r\n dataURLOptions,\r\n });\r\n }\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 initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector);\r\n const snapshotInProgressMap = new Map();\r\n const worker = new WorkerFactory();\r\n worker.onmessage = (e) => {\r\n const { id } = e.data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in e.data))\r\n return;\r\n const { base64, type, width, height } = e.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 ],\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 = () => {\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, 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 = requestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas()\r\n .forEach((canvas) => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (((_a = context === null || context === void 0 ? void 0 : context.getContextAttributes()) === null || _a === void 0 ? void 0 : _a.preserveDrawingBuffer) === false) {\r\n context === null || context === void 0 ? void 0 : context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n const bitmap = yield createImageBitmap(canvas);\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions: options.dataURLOptions,\r\n }, [bitmap]);\r\n }));\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n requestAnimationFrame(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 requestAnimationFrame(() => 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 rest = __rest(value, [\"type\"]);\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 };\n","import { getCssRuleString } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { StyleSheetMirror } from '../utils.js';\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n const rules = Array.from(sheet.rules || CSSRule);\r\n styles.push({\r\n styleId,\r\n rules: rules.map((r, index) => {\r\n return {\r\n rule: getCssRuleString(r),\r\n index,\r\n };\r\n }),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nexport { StylesheetManager };\n","import { createMirror, snapshot } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { initObservers, mutationBuffers } from './observer.js';\nimport { polyfill, on, getWindowWidth, getWindowHeight, isSerializedIframe, isSerializedStylesheet, hasShadowRoot } from '../utils.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/types.js';\nimport { IframeManager } from './iframe-manager.js';\nimport { ShadowDomManager } from './shadow-dom-manager.js';\nimport { CanvasManager } from './observers/canvas/canvas-manager.js';\nimport { StylesheetManager } from './stylesheet-manager.js';\n\nfunction wrapEvent(e) {\r\n return Object.assign(Object.assign({}, e), { timestamp: Date.now() });\r\n}\r\nlet wrappedEmit;\r\nlet takeFullSnapshot;\r\nlet canvasManager;\r\nlet recording = false;\r\nconst mirror = createMirror();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, ignoreClass = 'rr-ignore', maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskInputFn, maskTextFn, hooks, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordCanvas = false, recordCrossOriginIframes = false, userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), } = options;\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n window.parent.document;\r\n passEmitsToParent = false;\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : { password: true };\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (e, isCheckout) => {\r\n var _a;\r\n if (((_a = mutationBuffers[0]) === null || _a === void 0 ? void 0 : _a.isFrozen()) &&\r\n e.type !== EventType.FullSnapshot &&\r\n !(e.type === EventType.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit === null || emit === void 0 ? void 0 : emit(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Mutation }, m),\r\n }));\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Scroll }, p),\r\n }));\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.CanvasMutation }, p),\r\n }));\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.AdoptedStyleSheet }, a),\r\n }));\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n canvasManager = new CanvasManager({\r\n recordCanvas,\r\n mutationCb: wrappedCanvasMutationEmit,\r\n win: window,\r\n blockClass,\r\n blockSelector,\r\n mirror,\r\n sampling: sampling.canvas,\r\n dataURLOptions,\r\n });\r\n const shadowDomManager = new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n },\r\n mirror,\r\n });\r\n takeFullSnapshot = (isCheckout = false) => {\r\n var _a, _b, _c, _d, _e, _f;\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }), isCheckout);\r\n stylesheetManager.reset();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: {\r\n left: window.pageXOffset !== undefined\r\n ? window.pageXOffset\r\n : (document === null || document === void 0 ? void 0 : document.documentElement.scrollLeft) ||\r\n ((_b = (_a = document === null || document === void 0 ? void 0 : document.body) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.scrollLeft) ||\r\n ((_c = document === null || document === void 0 ? void 0 : document.body) === null || _c === void 0 ? void 0 : _c.scrollLeft) ||\r\n 0,\r\n top: window.pageYOffset !== undefined\r\n ? window.pageYOffset\r\n : (document === null || document === void 0 ? void 0 : document.documentElement.scrollTop) ||\r\n ((_e = (_d = document === null || document === void 0 ? void 0 : document.body) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.scrollTop) ||\r\n ((_f = document === null || document === void 0 ? void 0 : document.body) === null || _f === void 0 ? void 0 : _f.scrollTop) ||\r\n 0,\r\n },\r\n },\r\n }));\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n try {\r\n const handlers = [];\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.DomContentLoaded,\r\n data: {},\r\n }));\r\n }));\r\n const observe = (doc) => {\r\n var _a;\r\n return initObservers({\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n })),\r\n mouseInteractionCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MouseInteraction }, d),\r\n })),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.ViewportResize }, d),\r\n })),\r\n inputCb: (v) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Input }, v),\r\n })),\r\n mediaInteractionCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MediaInteraction }, p),\r\n })),\r\n styleSheetRuleCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleSheetRule }, r),\r\n })),\r\n styleDeclarationCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleDeclaration }, r),\r\n })),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Font }, p),\r\n })),\r\n selectionCb: (p) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Selection }, p),\r\n }));\r\n },\r\n blockClass,\r\n ignoreClass,\r\n maskTextClass,\r\n maskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.filter((p) => p.observer)) === null || _a === void 0 ? void 0 : _a.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit(wrapEvent({\r\n type: EventType.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n })),\r\n }))) || [],\r\n }, hooks);\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n recording = true;\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('load', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Load,\r\n data: {},\r\n }));\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n recording = false;\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nrecord.addCustomEvent = (tag, payload) => {\r\n if (!recording) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n }));\r\n};\r\nrecord.freezePage = () => {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n};\r\nrecord.takeFullSnapshot = (isCheckout) => {\r\n if (!recording) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n takeFullSnapshot(isCheckout);\r\n};\r\nrecord.mirror = mirror;\n\nexport { record as default };\n","import { record } from 'rrweb';\nimport type { GhostplayEvent } from './types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\n\n/**\n * Get a truly unpatched MutationObserver by extracting it from a\n * hidden iframe. Third-party replay tools (LogRocket, FullStory,\n * Datadog RUM) load via script tags in <head> and monkey-patch\n * window.MutationObserver BEFORE our bundle executes. An iframe has\n * its own set of built-in constructors that are never patched.\n */\nfunction getUnpatchedMutationObserver(): typeof MutationObserver | undefined {\n if (typeof document === 'undefined') return undefined;\n try {\n const iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.setAttribute('aria-hidden', 'true');\n iframe.setAttribute('data-ghostplay', 'mo');\n document.documentElement.appendChild(iframe);\n return (iframe.contentWindow as any)?.MutationObserver;\n // iframe stays alive — its MO prototype must remain reachable\n } catch {\n return undefined;\n }\n}\n\nexport class Recorder {\n private stopFn: (() => void) | null = null;\n\n constructor(\n private sessionId: string,\n private emit: EventCallback,\n private rrwebConfig?: Record<string, any>\n ) {}\n\n start(): void {\n // Swap in the unpatched MutationObserver for the duration of\n // record() so rrweb creates its observer from the native\n // constructor. Restore the original afterwards so other tools\n // (LogRocket etc.) keep working.\n const patchedMO = window.MutationObserver;\n const nativeMO = getUnpatchedMutationObserver();\n if (nativeMO) {\n window.MutationObserver = nativeMO;\n }\n\n this.stopFn = record({\n ...this.rrwebConfig,\n emit: (event: any) => {\n this.emit({\n type: 'rrweb',\n timestamp: event.timestamp,\n sessionId: this.sessionId,\n data: event,\n });\n },\n }) ?? null;\n\n window.MutationObserver = patchedMO;\n }\n\n /** Force a new FullSnapshot (useful as a one-time safety net for\n * async content that wasn't in the initial snapshot). */\n takeFullSnapshot(): void {\n if (this.stopFn) {\n record.takeFullSnapshot();\n }\n }\n\n stop(): void {\n if (this.stopFn) {\n this.stopFn();\n this.stopFn = null;\n }\n }\n}\n","import type { GhostplayEvent, ErrorEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\n\nexport class ErrorTracker {\n private onErrorHandler: OnErrorEventHandler | null = null;\n private onRejectionHandler: ((e: PromiseRejectionEvent) => void) | null = null;\n private previousOnError: OnErrorEventHandler | null = null;\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n this.previousOnError = window.onerror;\n\n this.onErrorHandler = (message, source, lineno, colno, error) => {\n const data: ErrorEventData = {\n message: String(message),\n stack: error?.stack,\n source: source ?? undefined,\n lineno: lineno ?? undefined,\n colno: colno ?? undefined,\n type: 'onerror',\n };\n\n this.emit({\n type: 'error',\n timestamp: Date.now(),\n sessionId: this.sessionId,\n data,\n });\n\n if (this.previousOnError) {\n return this.previousOnError.call(window, message, source, lineno, colno, error);\n }\n return false;\n };\n\n this.onRejectionHandler = (e: PromiseRejectionEvent) => {\n const reason = e.reason;\n const data: ErrorEventData = {\n message:\n reason instanceof Error ? reason.message : String(reason),\n stack: reason instanceof Error ? reason.stack : undefined,\n type: 'unhandledrejection',\n };\n\n this.emit({\n type: 'error',\n timestamp: Date.now(),\n sessionId: this.sessionId,\n data,\n });\n };\n\n window.onerror = this.onErrorHandler;\n window.addEventListener('unhandledrejection', this.onRejectionHandler);\n }\n\n stop(): void {\n if (this.previousOnError) {\n window.onerror = this.previousOnError;\n } else {\n window.onerror = null;\n }\n\n if (this.onRejectionHandler) {\n window.removeEventListener('unhandledrejection', this.onRejectionHandler);\n }\n\n this.onErrorHandler = null;\n this.onRejectionHandler = null;\n }\n}\n","import type { GhostplayEvent, NetworkEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\n\nconst GHOSTPLAY_URL_PATTERN = /ghostplay\\.dev/;\nconst MAX_BODY_SIZE = 1024 * 1024; // 1MB limit per body\n\nexport class NetworkInterceptor {\n private originalFetch: typeof fetch | null = null;\n private active = false;\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n this.active = true;\n this.patchFetch();\n }\n\n stop(): void {\n this.active = false;\n this.restoreFetch();\n }\n\n private patchFetch(): void {\n this.originalFetch = globalThis.fetch;\n const self = this;\n\n globalThis.fetch = async function (\n input: RequestInfo | URL,\n init?: RequestInit\n ): Promise<Response> {\n const url =\n typeof input === 'string'\n ? input\n : input instanceof URL\n ? input.toString()\n : input.url;\n const method = init?.method ?? 'GET';\n\n if (GHOSTPLAY_URL_PATTERN.test(url)) {\n return self.originalFetch!.call(globalThis, input, init);\n }\n\n const startTime = Date.now();\n\n // Extract request headers\n const requestHeaders = extractHeaders(init?.headers);\n\n // Extract request body\n const requestBody = extractBody(init?.body);\n\n try {\n const response = await self.originalFetch!.call(\n globalThis,\n input,\n init\n );\n\n if (self.active) {\n // Extract response headers\n const responseHeaders: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n responseHeaders[key] = value;\n });\n\n // Clone response to read body without consuming the original\n let responseBody: string | undefined;\n try {\n const contentType = response.headers.get('content-type') ?? '';\n if (contentType.includes('json') || contentType.includes('text')) {\n const clone = response.clone();\n const text = await clone.text();\n responseBody = text.length > MAX_BODY_SIZE\n ? text.substring(0, MAX_BODY_SIZE) + '...[truncated]'\n : text;\n }\n } catch {\n // Body read failed — skip\n }\n\n const data: NetworkEventData = {\n method: method.toUpperCase(),\n url,\n status: response.status,\n statusText: response.statusText,\n requestHeaders,\n responseHeaders,\n requestBody,\n responseBody,\n startTime,\n endTime: Date.now(),\n duration: Date.now() - startTime,\n };\n\n self.emit({\n type: 'network',\n timestamp: startTime,\n sessionId: self.sessionId,\n data,\n });\n }\n\n return response;\n } catch (error) {\n if (self.active) {\n const data: NetworkEventData = {\n method: method.toUpperCase(),\n url,\n requestHeaders,\n requestBody,\n startTime,\n endTime: Date.now(),\n duration: Date.now() - startTime,\n };\n\n self.emit({\n type: 'network',\n timestamp: startTime,\n sessionId: self.sessionId,\n data,\n });\n }\n\n throw error;\n }\n };\n }\n\n private restoreFetch(): void {\n if (this.originalFetch) {\n globalThis.fetch = this.originalFetch;\n this.originalFetch = null;\n }\n }\n}\n\nfunction extractHeaders(headers: HeadersInit | undefined): Record<string, string> {\n const result: Record<string, string> = {};\n if (!headers) return result;\n\n if (headers instanceof Headers) {\n headers.forEach((value, key) => { result[key] = value; });\n } else if (Array.isArray(headers)) {\n for (const [key, value] of headers) { result[key] = value; }\n } else {\n for (const [key, value] of Object.entries(headers)) { result[key] = value; }\n }\n\n return result;\n}\n\nfunction extractBody(body: BodyInit | null | undefined): string | undefined {\n if (!body) return undefined;\n\n if (typeof body === 'string') {\n return body.length > MAX_BODY_SIZE\n ? body.substring(0, MAX_BODY_SIZE) + '...[truncated]'\n : body;\n }\n\n if (body instanceof URLSearchParams) {\n return body.toString();\n }\n\n // FormData, Blob, ArrayBuffer, ReadableStream — skip (too complex/binary)\n return undefined;\n}\n","import type { GhostplayEvent, ConsoleEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\ntype ConsoleLevel = 'log' | 'warn' | 'error' | 'info' | 'debug';\n\nconst LEVELS: ConsoleLevel[] = ['log', 'warn', 'error', 'info', 'debug'];\n\nexport class ConsoleInterceptor {\n private originals: Partial<Record<ConsoleLevel, (...args: unknown[]) => void>> = {};\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n for (const level of LEVELS) {\n this.originals[level] = console[level].bind(console);\n console[level] = (...args: unknown[]) => {\n const data: ConsoleEventData = {\n level,\n args: args.map((arg) => this.serialize(arg)),\n };\n this.emit({\n type: 'console',\n timestamp: Date.now(),\n sessionId: this.sessionId,\n data,\n });\n this.originals[level]?.(...args);\n };\n }\n }\n\n stop(): void {\n for (const level of LEVELS) {\n if (this.originals[level]) {\n console[level] = this.originals[level] as any;\n }\n }\n this.originals = {};\n }\n\n private serialize(arg: unknown): unknown {\n if (arg instanceof Error) {\n return { __type: 'Error', message: arg.message, stack: arg.stack };\n }\n if (typeof arg === 'object' && arg !== null) {\n try { JSON.stringify(arg); return arg; } catch { return String(arg); }\n }\n return arg;\n }\n}\n","import type { GhostplayEvent, PerformanceEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\ntype Metric = PerformanceEventData['metric'];\n\nconst THRESHOLDS: Record<Metric, [number, number]> = {\n LCP: [1000, 4000],\n FID: [100, 300],\n CLS: [0.1, 0.25],\n TTFB: [800, 1800],\n INP: [200, 500],\n};\n\nexport class PerformanceTracker {\n private observers: PerformanceObserver[] = [];\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n if (typeof PerformanceObserver === 'undefined') return;\n this.observeLCP();\n this.observeFID();\n this.observeCLS();\n this.observeTTFB();\n this.observeINP();\n }\n\n stop(): void {\n this.observers.forEach((o) => o.disconnect());\n this.observers = [];\n }\n\n handleMetric(metric: Metric, value: number): void {\n const [good, poor] = THRESHOLDS[metric];\n const rating: PerformanceEventData['rating'] =\n value <= good ? 'good' : value <= poor ? 'needs-improvement' : 'poor';\n this.emit({\n type: 'performance',\n timestamp: Date.now(),\n sessionId: this.sessionId,\n data: { metric, value, rating },\n });\n }\n\n private observeLCP(): void {\n try {\n const observer = new PerformanceObserver((list) => {\n const entries = list.getEntries();\n const last = entries[entries.length - 1];\n if (last) this.handleMetric('LCP', last.startTime);\n });\n observer.observe({ type: 'largest-contentful-paint', buffered: true });\n this.observers.push(observer);\n } catch {}\n }\n\n private observeFID(): void {\n try {\n const observer = new PerformanceObserver((list) => {\n const entries = list.getEntries();\n const first = entries[0] as any;\n if (first) this.handleMetric('FID', first.processingStart - first.startTime);\n });\n observer.observe({ type: 'first-input', buffered: true });\n this.observers.push(observer);\n } catch {}\n }\n\n private observeCLS(): void {\n let clsValue = 0;\n try {\n const observer = new PerformanceObserver((list) => {\n for (const entry of list.getEntries() as any[]) {\n if (!entry.hadRecentInput) clsValue += entry.value;\n }\n this.handleMetric('CLS', clsValue);\n });\n observer.observe({ type: 'layout-shift', buffered: true });\n this.observers.push(observer);\n } catch {}\n }\n\n private observeTTFB(): void {\n try {\n const observer = new PerformanceObserver((list) => {\n const entry = list.getEntries()[0] as any;\n if (entry) this.handleMetric('TTFB', entry.responseStart);\n });\n observer.observe({ type: 'navigation', buffered: true });\n this.observers.push(observer);\n } catch {}\n }\n\n private observeINP(): void {\n try {\n const observer = new PerformanceObserver((list) => {\n for (const entry of list.getEntries() as any[]) {\n this.handleMetric('INP', entry.duration);\n }\n });\n observer.observe({ type: 'event', buffered: true });\n this.observers.push(observer);\n } catch {}\n }\n}\n","import type { GhostplayEvent, RageClickEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\n\nconst RAGE_THRESHOLD = 3;\nconst RAGE_WINDOW_MS = 1000;\n\ninterface ClickRecord {\n element: Element;\n timestamps: number[];\n}\n\nexport class RageClickDetector {\n private clickHandler: ((e: MouseEvent) => void) | null = null;\n private recentClicks: ClickRecord[] = [];\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n this.clickHandler = (e: MouseEvent) => {\n const target = e.target as Element;\n if (!target) return;\n const now = Date.now();\n let record = this.recentClicks.find((r) => r.element === target);\n if (!record) {\n record = { element: target, timestamps: [] };\n this.recentClicks.push(record);\n }\n record.timestamps.push(now);\n record.timestamps = record.timestamps.filter((t) => now - t < RAGE_WINDOW_MS);\n if (record.timestamps.length >= RAGE_THRESHOLD) {\n const data: RageClickEventData = {\n selector: this.getSelector(target),\n clickCount: record.timestamps.length,\n x: e.clientX,\n y: e.clientY,\n };\n this.emit({\n type: 'rage-click',\n timestamp: now,\n sessionId: this.sessionId,\n data,\n });\n record.timestamps = [];\n }\n this.recentClicks = this.recentClicks.filter((r) => r.timestamps.length > 0);\n };\n document.addEventListener('click', this.clickHandler, true);\n }\n\n stop(): void {\n if (this.clickHandler) {\n document.removeEventListener('click', this.clickHandler, true);\n this.clickHandler = null;\n }\n this.recentClicks = [];\n }\n\n private getSelector(el: Element): string {\n if (el.id) return `#${el.id}`;\n const testId = el.getAttribute('data-testid');\n if (testId) return `[data-testid=\"${testId}\"]`;\n const tag = el.tagName.toLowerCase();\n const className = el.className\n ? `.${el.className.split(' ').filter(Boolean).join('.')}`\n : '';\n return `${tag}${className}`;\n }\n}\n","import type { BreadcrumbEventData } from '../types';\n\nexport class Breadcrumbs {\n private trail: BreadcrumbEventData[] = [];\n\n constructor(private maxSize: number = 50) {}\n\n add(\n category: BreadcrumbEventData['category'],\n message: string,\n data?: Record<string, unknown>\n ): void {\n const crumb: BreadcrumbEventData = { category, message };\n if (data) crumb.data = data;\n this.trail.push(crumb);\n if (this.trail.length > this.maxSize) {\n this.trail = this.trail.slice(-this.maxSize);\n }\n }\n\n getTrail(): BreadcrumbEventData[] {\n return [...this.trail];\n }\n\n clear(): void {\n this.trail = [];\n }\n}\n","import type { GhostplayEvent, NavigationEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\n\nexport class NavigationTracker {\n private currentUrl: string = '';\n private originalPushState: typeof history.pushState | null = null;\n private originalReplaceState: typeof history.replaceState | null = null;\n private popstateHandler: (() => void) | null = null;\n private hashchangeHandler: (() => void) | null = null;\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n this.currentUrl = window.location.href;\n\n // Emit initial navigation event\n this.emitNavigation(null, this.currentUrl, 'initial');\n\n // Patch history.pushState\n this.originalPushState = history.pushState.bind(history);\n history.pushState = (...args: Parameters<typeof history.pushState>) => {\n this.originalPushState!(...args);\n this.handleUrlChange('pushState');\n };\n\n // Patch history.replaceState\n this.originalReplaceState = history.replaceState.bind(history);\n history.replaceState = (...args: Parameters<typeof history.replaceState>) => {\n this.originalReplaceState!(...args);\n this.handleUrlChange('replaceState');\n };\n\n // Listen for popstate (back/forward)\n this.popstateHandler = () => this.handleUrlChange('popstate');\n window.addEventListener('popstate', this.popstateHandler);\n\n // Listen for hashchange\n this.hashchangeHandler = () => this.handleUrlChange('hashchange');\n window.addEventListener('hashchange', this.hashchangeHandler);\n }\n\n stop(): void {\n if (this.originalPushState) {\n history.pushState = this.originalPushState;\n this.originalPushState = null;\n }\n if (this.originalReplaceState) {\n history.replaceState = this.originalReplaceState;\n this.originalReplaceState = null;\n }\n if (this.popstateHandler) {\n window.removeEventListener('popstate', this.popstateHandler);\n this.popstateHandler = null;\n }\n if (this.hashchangeHandler) {\n window.removeEventListener('hashchange', this.hashchangeHandler);\n this.hashchangeHandler = null;\n }\n }\n\n private handleUrlChange(trigger: NavigationEventData['trigger']): void {\n const newUrl = window.location.href;\n if (newUrl !== this.currentUrl) {\n const from = this.currentUrl;\n this.currentUrl = newUrl;\n this.emitNavigation(from, newUrl, trigger);\n }\n }\n\n private emitNavigation(from: string | null, to: string, trigger: NavigationEventData['trigger']): void {\n const data: NavigationEventData = { from, to, trigger };\n this.emit({\n type: 'navigation',\n timestamp: Date.now(),\n sessionId: this.sessionId,\n data,\n });\n }\n}\n","import type { GhostplayConfig, NetworkEventData } from './types';\n\nconst ALWAYS_DENY_RESPONSE_HEADERS = ['set-cookie'];\n\ninterface PrivacyOptions {\n networkSanitize?: GhostplayConfig['networkSanitize'];\n}\n\nexport class PrivacyFilter {\n constructor(private options: PrivacyOptions) {}\n\n sanitizeNetworkEvent(event: NetworkEventData): NetworkEventData {\n const result = { ...event };\n const config = this.options.networkSanitize;\n\n // Always remove sensitive response headers\n if (result.responseHeaders) {\n result.responseHeaders = this.filterHeaders(\n result.responseHeaders,\n ALWAYS_DENY_RESPONSE_HEADERS\n );\n }\n\n if (!config) return result;\n\n // Remove denied request headers\n if (result.requestHeaders && config.denyHeaders.length > 0) {\n result.requestHeaders = this.filterHeaders(\n result.requestHeaders,\n config.denyHeaders\n );\n }\n\n // Remove denied response headers\n if (result.responseHeaders && config.denyHeaders.length > 0) {\n result.responseHeaders = this.filterHeaders(\n result.responseHeaders,\n config.denyHeaders\n );\n }\n\n // Redact body for denied URLs\n if (config.denyBodyUrls.length > 0 && this.urlMatchesDeny(event.url, config.denyBodyUrls)) {\n if (result.requestBody) result.requestBody = '[REDACTED]';\n if (result.responseBody) result.responseBody = '[REDACTED]';\n }\n\n return result;\n }\n\n private filterHeaders(\n headers: Record<string, string>,\n denyList: string[]\n ): Record<string, string> {\n const denyLower = denyList.map((h) => h.toLowerCase());\n const filtered: Record<string, string> = {};\n for (const [key, value] of Object.entries(headers)) {\n if (!denyLower.includes(key.toLowerCase())) {\n filtered[key] = value;\n }\n }\n return filtered;\n }\n\n private urlMatchesDeny(url: string, patterns: string[]): boolean {\n return patterns.some((pattern) => {\n const regex = new RegExp(\n '^' + pattern.replace(/\\*/g, '.*') + '$'\n );\n return regex.test(url);\n });\n }\n}\n","import type { GhostplayEvent, EventBatch } from './types';\n\ninterface TransportConfig {\n apiUrl: string;\n projectId: string;\n sessionId: string;\n flushIntervalMs: number;\n flushMaxBytes: number;\n}\n\nconst KEEPALIVE_LIMIT = 60_000; // Stay under 64KB browser limit\n\nexport class Transport {\n private buffer: GhostplayEvent[] = [];\n private bufferBytes = 0;\n private flushTimer: ReturnType<typeof setInterval> | null = null;\n\n constructor(private config: TransportConfig) {}\n\n start(): void {\n this.flushTimer = setInterval(() => {\n this.flush();\n }, this.config.flushIntervalMs);\n }\n\n stop(): void {\n if (this.flushTimer) {\n clearInterval(this.flushTimer);\n this.flushTimer = null;\n }\n this.flush();\n }\n\n send(event: GhostplayEvent): void {\n const eventSize = JSON.stringify(event).length;\n this.buffer.push(event);\n this.bufferBytes += eventSize;\n if (this.bufferBytes >= this.config.flushMaxBytes) {\n this.flush();\n }\n }\n\n private flush(): void {\n if (this.buffer.length === 0) return;\n const events = this.buffer;\n this.buffer = [];\n this.bufferBytes = 0;\n const batch: EventBatch = {\n projectId: this.config.projectId,\n sessionId: this.config.sessionId,\n events,\n sentAt: Date.now(),\n };\n const body = JSON.stringify(batch);\n const url = `${this.config.apiUrl}/events`;\n\n // Use keepalive only for small payloads (Safari enforces 64KB limit strictly)\n const useKeepalive = body.length < KEEPALIVE_LIMIT;\n\n try {\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-project-id': this.config.projectId,\n },\n body,\n keepalive: useKeepalive,\n })\n .then((res) => {\n if (!res.ok) {\n console.warn(`[Ghostplay] Event batch rejected (${res.status})`);\n }\n })\n .catch(() => {\n // Fallback to sendBeacon\n this.sendBeacon(url, body);\n });\n } catch {\n this.sendBeacon(url, body);\n }\n }\n\n private sendBeacon(url: string, body: string): void {\n if (typeof navigator !== 'undefined' && navigator.sendBeacon) {\n navigator.sendBeacon(url, new Blob([body], { type: 'application/json' }));\n }\n }\n}\n","import { resolveConfig, type ResolvedConfig } from './config';\nimport { SessionManager } from './session';\nimport { Recorder } from './recorder';\nimport { ErrorTracker } from './modules/error-tracker';\nimport { NetworkInterceptor } from './modules/network-interceptor';\nimport { ConsoleInterceptor } from './modules/console-interceptor';\nimport { PerformanceTracker } from './modules/performance-tracker';\nimport { RageClickDetector } from './modules/rage-click-detector';\nimport { Breadcrumbs } from './modules/breadcrumbs';\nimport { NavigationTracker } from './modules/navigation-tracker';\nimport { PrivacyFilter } from './privacy';\nimport { Transport } from './transport';\nimport type { GhostplayConfig, GhostplayEvent } from './types';\n\nexport const VERSION = '0.1.0';\n\nlet config: ResolvedConfig | null = null;\nlet sessionManager: SessionManager | null = null;\nlet recorder: Recorder | null = null;\nlet errorTracker: ErrorTracker | null = null;\nlet networkInterceptor: NetworkInterceptor | null = null;\nlet consoleInterceptor: ConsoleInterceptor | null = null;\nlet performanceTracker: PerformanceTracker | null = null;\nlet rageClickDetector: RageClickDetector | null = null;\nlet breadcrumbs: Breadcrumbs | null = null;\nlet navigationTracker: NavigationTracker | null = null;\nlet privacyFilter: PrivacyFilter | null = null;\nlet transport: Transport | null = null;\n\nfunction ensureInitialized(): void {\n if (!sessionManager) {\n throw new Error('[Ghostplay] SDK not initialized. Call Ghostplay.init() first.');\n }\n}\n\nfunction handleEvent(event: GhostplayEvent): void {\n if (breadcrumbs && event.type !== 'rrweb') {\n breadcrumbs.add(\n event.type === 'error'\n ? 'error'\n : event.type === 'network'\n ? 'network'\n : event.type === 'rage-click'\n ? 'click'\n : 'custom',\n `${event.type}: ${JSON.stringify(event.data).substring(0, 100)}`\n );\n }\n transport?.send(event);\n}\n\nfunction init(userConfig: GhostplayConfig): void {\n stop();\n config = resolveConfig(userConfig);\n sessionManager = new SessionManager(config.projectId);\n const session = sessionManager.start();\n\n privacyFilter = new PrivacyFilter({\n networkSanitize: config.networkSanitize,\n });\n\n transport = new Transport({\n apiUrl: config.apiUrl,\n projectId: config.projectId,\n sessionId: session.id,\n flushIntervalMs: config.flushIntervalMs,\n flushMaxBytes: config.flushMaxBytes,\n });\n transport.start();\n\n breadcrumbs = new Breadcrumbs();\n\n recorder = new Recorder(session.id, handleEvent, {\n maskAllInputs: config.maskAllInputs,\n ...(config.maskInputSelector ? { maskInputSelector: config.maskInputSelector } : {}),\n ...(config.blockSelector ? { blockSelector: config.blockSelector } : {}),\n ...(config.ignoreSelector ? { ignoreSelector: config.ignoreSelector } : {}),\n ...config.rrwebConfig,\n });\n\n // Defer recording start so the initial FullSnapshot captures the\n // rendered DOM shell rather than an empty SPA root element.\n const startRecording = () => {\n recorder?.start();\n // One-time follow-up snapshot to capture async-loaded content\n // (data fetched via API after initial render). Runs once, not\n // periodically — avoids the storage overhead of checkoutEveryNms.\n setTimeout(() => recorder?.takeFullSnapshot(), 3000);\n };\n if (document.readyState === 'complete') {\n requestAnimationFrame(() => requestAnimationFrame(startRecording));\n } else {\n window.addEventListener('load', () =>\n requestAnimationFrame(startRecording), { once: true });\n }\n\n errorTracker = new ErrorTracker(session.id, handleEvent);\n errorTracker.start();\n\n if (config.recordNetwork) {\n networkInterceptor = new NetworkInterceptor(session.id, (event) => {\n const sanitized = privacyFilter!.sanitizeNetworkEvent(event.data as any);\n handleEvent({ ...event, data: sanitized });\n });\n networkInterceptor.start();\n }\n\n if (config.recordConsole) {\n consoleInterceptor = new ConsoleInterceptor(session.id, handleEvent);\n consoleInterceptor.start();\n }\n\n if (config.trackPerformance) {\n performanceTracker = new PerformanceTracker(session.id, handleEvent);\n performanceTracker.start();\n }\n\n if (config.trackRageClicks) {\n rageClickDetector = new RageClickDetector(session.id, handleEvent);\n rageClickDetector.start();\n }\n\n if (config.trackNavigation) {\n navigationTracker = new NavigationTracker(session.id, handleEvent);\n navigationTracker.start();\n }\n}\n\nfunction identify(userId: string, traits?: Record<string, unknown>): void {\n ensureInitialized();\n sessionManager!.identify(userId, traits);\n handleEvent({\n type: 'identify',\n timestamp: Date.now(),\n sessionId: sessionManager!.current().id,\n data: { userId, traits },\n });\n}\n\nfunction tag(tagName: string): void {\n ensureInitialized();\n sessionManager!.addTag(tagName);\n handleEvent({\n type: 'tag',\n timestamp: Date.now(),\n sessionId: sessionManager!.current().id,\n data: { tag: tagName },\n });\n}\n\nfunction setMetadata(data: Record<string, unknown>): void {\n ensureInitialized();\n sessionManager!.setMetadata(data);\n handleEvent({\n type: 'metadata',\n timestamp: Date.now(),\n sessionId: sessionManager!.current().id,\n data,\n });\n}\n\nfunction stop(): void {\n recorder?.stop();\n errorTracker?.stop();\n networkInterceptor?.stop();\n consoleInterceptor?.stop();\n performanceTracker?.stop();\n rageClickDetector?.stop();\n navigationTracker?.stop();\n transport?.stop();\n sessionManager?.end();\n\n recorder = null;\n errorTracker = null;\n networkInterceptor = null;\n consoleInterceptor = null;\n performanceTracker = null;\n rageClickDetector = null;\n navigationTracker = null;\n transport = null;\n sessionManager = null;\n breadcrumbs = null;\n privacyFilter = null;\n config = null;\n}\n\nexport const Ghostplay = {\n VERSION,\n init,\n identify,\n tag,\n setMetadata,\n stop,\n};\n\nexport default Ghostplay;\nexport type { GhostplayConfig, GhostplayEvent, Session } from './types';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/types.ts","../src/config.ts","../src/session.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb-snapshot/dist/rrweb-snapshot.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrdom/dist/rrdom.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/utils/dist/utils.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/utils.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/types/dist/types.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/mutation.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/error-handler.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/observer.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/cross-origin-iframe-mirror.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/iframe-manager.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/shadow-dom-manager.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/observers/canvas/serialize-args.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/observers/canvas/2d.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/observers/canvas/canvas.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/observers/canvas/webgl.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/observers/canvas/canvas-manager.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/stylesheet-manager.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/processed-node-manager.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/record/index.ts","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/@xstate/fsm/es/index.js","../node_modules/.pnpm/rrweb@2.0.0-alpha.20/node_modules/rrweb/src/index.ts","../src/recorder.ts","../src/modules/error-tracker.ts","../src/modules/network-interceptor.ts","../src/modules/console-interceptor.ts","../src/modules/performance-tracker.ts","../src/modules/rage-click-detector.ts","../src/modules/breadcrumbs.ts","../src/modules/navigation-tracker.ts","../src/privacy.ts","../src/transport.ts","../src/index.ts"],"names":["DEFAULT_CONFIG","resolveConfig","config","generateId","timestamp","random","SessionManager","projectId","userId","traits","session","tag","data","_a","__defProp","__defNormalProp","obj","key","value","__publicField","NodeType","NodeType2","testableAccessors","testableMethods","untaintedBasePrototype","isAngularZonePresent","getUntaintedPrototype","defaultObj","defaultPrototype","accessorNames","isUntaintedAccessors","accessor","_b","methodNames","isUntaintedMethods","method","iframeEl","win","untaintedObject","untaintedAccessorCache","getUntaintedAccessor","instance","cacheKey","untaintedPrototype","untaintedAccessor","untaintedMethodCache","getUntaintedMethod","untaintedMethod","ownerDocument","n","childNodes","parentNode","parentElement","textContent","contains","other","getRootNode","host","styleSheets","shadowRoot","querySelector","selectors","querySelectorAll","mutationObserverCtor","patch","source","name","replacement","original","wrapped","index","isElement","isShadowRoot","hostEl","isNativeShadowDom","shadowRoot2","fixBrowserCompatibilityIssuesInCSS","cssText","escapeImportStatement","rule2","statement","stringifyStylesheet","s","rules","sheetHref","stringifiedRules","stringifyRule","isCSSImportRule","importStringified","absolutifyURLs","ruleStringified","isCSSStyleRule","fixSafariColons","cssStringified","regex","Mirror","id","childNode","node2","meta","oldNode","createMirror","maskInputValue","element","maskInputOptions","tagName","type","maskInputFn","text","actualType","toLowerCase","str","ORIGINAL_ATTRIBUTE_NAME","is2DCanvasBlank","canvas","ctx","chunkSize","x2","y","getImageData","originalGetImageData","pixel","getInputType","extractFileExtension","path","baseURL","url","match","extractOrigin","origin","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","href","quote1","path1","quote2","path2","path3","filePath","maybeQuote","stack","parts","part","normalizeCssString","_testNoPxNorm","splitCssText","style","childNodes2","splits","iterCount","cssTextNorm","normFactor","i","textContentNorm","jLimit","j","startSubstring","cssNormSplits","splitNorm","prevTextContent","prevMinLength","k","normPart","markCssSplits","_id","tagNameRegex","IGNORED_NODE","genId","getValidTagName","processedTagName","canvasService","canvasCtx","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","getAbsoluteSrcsetString","doc","attributeValue","pos","collectCharacters","regEx","chars","output","absoluteToDoc","descriptorsStr","inParens","c","cachedDocument","getHref","isSVGElement","el","customHref","a","transformAttribute","ignoreAttribute","_value","_isBlockedElement","blockClass","blockSelector","eIndex","className","classMatchesRegex","checkAncestors","needMaskingText","maskTextClass","maskTextSelector","onceIframeLoaded","listener","iframeLoadTimeout","fired","readyState","timer","blankUrl","onceStylesheetLoaded","link","styleSheetLoadTimeout","styleSheetLoaded","serializeNode","options","mirror","needsMask","inlineStylesheet","maskTextFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","cssCaptured","rootId","getRootId","serializeElementNode","serializeTextNode","docId","parent","parentTagName","textContent2","isStyle","isScript","needBlock","attributes","len","attr","stylesheet","checked","canvasDataURL","blankCanvas","blankCanvasDataURL","image","imageSrc","priorCrossOrigin","recordInlineImage","err","mediaAttributes","width","height","isCustomElement","lowerIfExists","maybeAttr","slimDOMDefaults","_slimDOMOptions","slimDOMExcluded","sn","slimDOMOptions","serializeNodeWithId","skipChild","onSerialize","onIframeLoad","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","serializedNode","recordChild","shadowRootEl","bypassOptions","childN","serializedChildNode","iframeDoc","serializedIframeNode","serializedLinkNode","snapshot","maskAllInputs","slimDOM","getDefaultExportFromCjs","getAugmentedNamespace","f","a2","d","picocolors_browser","x","create","picocolors_browserExports","__viteBrowserExternal","__viteBrowserExternal$1","require$$2","pico","terminalHighlight$1","CssSyntaxError$3","CssSyntaxError","message","line","column","file","plugin2","color","css","lines","start","end","maxWidth","mark","aside","bold","gray","red","index2","number","gutter","spacing","code","cssSyntaxError","symbols","DEFAULT_RAW","capitalize","Stringifier$2","builder","semicolon","params","detect","buf","depth","indent","step","between","after","last","child","before","left","right","string","own","root2","p","prop","raw","stringifier","Stringifier$1","stringify$4","stringify_1","isClean$2","my$2","CssSyntaxError$2","Stringifier2","stringify$3","cloneNode","cloned","Node$4","defaults","error","add","overrides","keepBetween","opts","next","stringRepresentation","defaultType","nodes","bookmark","foundSelf","result2","_","inputs","fixed","emitInputs","inputsNextIndex","inputId","input2","stringifier2","node","Node$3","Declaration$4","declaration","urlAlphabet","nanoid$1","size","nonSecure","SourceMapConsumer$2","SourceMapGenerator$2","existsSync","readFileSync","dirname$1","join","fromBase64","PreviousMap$2","prev","baseCharsetUri","baseUri","charsetUri","uri","encoding","sourceMapString","map","comments","prevPath","previousMap","SourceMapConsumer$1","SourceMapGenerator$1","fileURLToPath","pathToFileURL$1","isAbsolute","resolve$1","nanoid","terminalHighlight","CssSyntaxError$1","PreviousMap$1","fromOffsetCache","sourceMapAvailable$1","pathAvailable$1","Input$4","endLine","endColumn","offset","lastLine","lineToIndex","prevIndex","l","min","max","mid","consumer","from","to","fromUrl","json","input","SourceMapConsumer","SourceMapGenerator","dirname","relative","resolve","sep","pathToFileURL","Input$3","sourceMapAvailable","pathAvailable","MapGenerator$2","stringify2","cssString","content","eol","noSource","mapping","annotation","cached","already","fileURL","mapGenerator","Node$2","Comment$4","comment","isClean$1","my$1","Declaration$3","Comment$3","Node$1","parse$4","Rule$4","AtRule$4","Root$6","cleanSource","markDirtyUp","Container$7","Container","children","callback","iterator","condition","args","cb","exist","existIndex","sample","pattern","decl","e","selector","dependant","container","Container$6","LazyResult$4","Processor$3","Document$3","document$1","printed","warnOnce$2","Warning$2","range","opt","warning","Warning$1","Result$3","processor2","warning2","result","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","tokenize","ignore","quote","escape","escaped","escapePos","currentToken","length","buffer","returned","position","unclosed","what","endOfFile","nextToken","ignoreUnclosed","controlChar","back","token","Container$5","AtRule$3","atRule","Container$4","LazyResult$3","Processor$2","Root$5","root","list$2","spaces","separators","array","current","split","func","inQuote","prevQuote","letter","list_1","Container$3","list$1","Rule$3","values","sep2","rule","Declaration$2","tokenizer2","Comment$2","AtRule$2","Root$4","Rule$2","SAFE_COMMENT_NEIGHBOR","findLastWithPosition","tokens","Parser$1","shift","open","brackets","colon","founded","customProperty","firstSpaces","cache","bracket","clean","all","lastTokenType","parser","Container$2","Parser2","Input$2","parse$3","parser2","parse_1","isClean","my","MapGenerator$1","stringify$2","Container$1","Document$2","warnOnce$1","Result$2","parse$2","Root$3","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","CHILDREN","isPromise","getEvents","toStack","events","cleanMarks","postcss$2","LazyResult$2","LazyResult","onRejected","onFinally","pluginName","pluginVer","runtimeVer","b","event","filter","promise","visitor","roots","subRoot","onFulfilled","visitors","visit2","lazyResult","MapGenerator2","stringify$1","warnOnce2","parse$1","Result$1","NoWorkResult$1","self","generatedCSS","generatedMap","noWorkResult","NoWorkResult2","LazyResult$1","Document$1","Root$2","Processor$1","plugins","normalized","processor","Declaration$1","PreviousMap2","Comment$1","AtRule$1","Input$1","Root$1","Rule$1","fromJSON$1","ownInputs","inputHydrated","fromJSON_1","CssSyntaxError2","Declaration2","LazyResult2","Container2","Processor2","stringify","fromJSON","Document2","Warning2","Comment2","AtRule2","Result2","Input2","parse","list","Rule2","Root2","Node2","postcss","initializer","warningPrinted","creator","transformer","processOpts","pluginOpts","postcss_1","postcss$1","Document22","BaseRRNode","_BaseRRNode","_args","childIterator","_newChild","_refChild","_node","on","fn","target","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","receiver","throttle","wait","timeout","previous","now","remaining","context","hookSetter","isRevoked","nowTimestamp","getWindowScroll","_c","_d","dom","getWindowHeight","getWindowWidth","closestElementOfNode","isBlocked","isSerialized","isIgnored","isAncestorRemoved","legacy_isTouchEvent","polyfill","isSerializedIframe","isSerializedStylesheet","hasShadowRoot","StyleSheetMirror","newId","getShadowHost","shadowHost","getRootShadowHost","rootShadowHost","shadowHostInDom","inDom","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","MediaInteractions","MediaInteractions2","isNodeInLinkedList","DoubleLinkedList","moveKey","parentId","MutationBuffer","mutations","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","parentTag","currentN","iframe","childSn","isParentRemoved","isAncestorInSet","candidate","tailNode","unhandledNode","payload","attribute","diffAsStr","unchangedAsStr","textarea","item","cn","m","attributeName","old","pname","newValue","newPriority","nodeId","deepDelete","processRemoves","targetId","addsSet","queue","removes","_isParentRemoved","set","_isAncestorInSet","errorHandler","registerErrorHandler","handler","unregisterErrorHandler","callbackWrapper","rest","mutationBuffers","getEventTarget","initMutationObserver","rootEl","mutationBuffer","observer","initMoveObserver","mousemoveCb","sampling","threshold","callbackThreshold","positions","timeBaseline","wrappedCb","totalOffset","updatePosition","evt","clientX","clientY","handlers","initMouseInteractionObserver","mouseInteractionCb","disableMap","currentPointerType","getHandler","eventKey","pointerType","thisEventKey","eventName","h","initScrollObserver","scrollCb","scrollLeftTop","initViewportResizeObserver","viewportResizeCb","lastH","lastW","updateDimension","INPUT_TAGS","lastInputValueMap","initInputObserver","inputCb","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isChecked","cbWithDedup","v","lastInputValue","currentWindow","propertyDescriptor","hookProperties","getNestedCSSRulePositions","recurse","childRule","hasNestedCSSRule","getIdAndStyleId","sheet","styleMirror","styleId","initStyleSheetObserver","styleSheetRuleCb","stylesheetManager","insertRule","thisArg","argumentsList","styleBlock","deleteRule","replace","replaceSync","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initAdoptedStyleSheetObserver","hostId","patchTarget","originalPropertyDescriptor","sheets","initStyleDeclarationObserver","styleDeclarationCb","ignoreCSSAttributes","setProperty","property","priority","removeProperty","initMediaInteractionObserver","mediaInteractionCb","currentTime","volume","muted","playbackRate","loop","initFontObserver","fontCb","fontMap","originalFontFace","family","descriptors","fontFace","restoreHandler","initSelectionObserver","param","selectionCb","collapsed","updateSelection","selection","ranges","count","startContainer","startOffset","endContainer","endOffset","initCustomElementObserver","customElementCb","constructor","mergeHooks","o","hooks","mutationCb","canvasMutationCb","initObservers","mutationObserver","mousemoveHandler","mouseInteractionHandler","scrollHandler","viewportResizeHandler","inputHandler","mediaInteractionHandler","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","selectionObserver","customElementObserver","pluginHandlers","plugin","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","remoteIdToIdMap","ids","IframeManager","crossOriginMessageEvent","transformedEvent","iframeMirror","keys","ShadowDomManager","iframeElement","manager","option","sRoot","lookup","encode","arraybuffer","bytes","base64","canvasVarMap","variableListFor","ctor","contextMap","saveWebGLVar","isInstanceOfWebGLObject","serializeArg","arg","src","serializeArgs","initCanvas2DMutationObserver","props2D","recordArgs","hookHandler","getNormalizedContextName","contextType","initCanvasContextObserver","setPreserveDrawingBufferToTrue","ctxName","contextAttributes","patchGLPrototype","prototype","props","mutation","initCanvasWebGLMutationObserver","CanvasManager","fps","canvasContextReset","snapshotInProgressMap","worker","ImageBitmapDataURLWorker","timeBetweenSnapshots","lastSnapshotTime","rafId","getCanvas","matchedCanvas","takeCanvasSnapshots","bitmap","canvas2DReset","canvasWebGL1and2Reset","setLatestRAFTimestamp","_values","valuesWithType","StylesheetManager","linkEl","adoptedStyleSheetData","styles","r","_linkEl","ProcessedNodeManager","thisBuffer","buffers","wrappedEmit","takeFullSnapshot","canvasManager","recording","cleanFrame","record","emit","checkoutEveryNms","checkoutEveryNth","_maskInputOptions","packFn","mousemoveWait","recordDOM","recordCrossOriginIframes","recordAfter","collectFonts","inEmittingFrame","passEmitsToParent","lastFullSnapshotEvent","incrementalSnapshotCount","eventProcessor","isCheckout","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","wrappedAdoptedStyleSheetEmit","iframeManager","processedNodeManager","shadowDomManager","observe","init","t","addCustomEvent","freezePage","Recorder","sessionId","rrwebConfig","ErrorTracker","lineno","colno","reason","GHOSTPLAY_URL_PATTERN","NetworkInterceptor","startTime","requestHeaders","extractHeaders","requestBody","extractBody","response","responseHeaders","responseBody","contentType","endTime","errMsg","headers","body","LEVELS","ConsoleInterceptor","level","THRESHOLDS","PerformanceTracker","metric","good","poor","rating","entries","first","clsValue","entry","RageClickDetector","testId","Breadcrumbs","maxSize","category","crumb","NavigationTracker","trigger","newUrl","ALWAYS_DENY_RESPONSE_HEADERS","PrivacyFilter","denyList","denyLower","filtered","patterns","Transport","eventSize","batch","useKeepalive","res","VERSION","sessionManager","recorder","errorTracker","networkInterceptor","consoleInterceptor","performanceTracker","rageClickDetector","breadcrumbs","navigationTracker","privacyFilter","transport","ensureInitialized","handleEvent","userConfig","stop","startRecording","sanitized","identify","setMetadata","Ghostplay","index_default"],"mappings":"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","file":"index.global.js","sourcesContent":["// rrweb type aliases — rrweb 2.0.0-alpha.4 does not re-export these from its\n// package root, so we define compatible local aliases to keep the same shape.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype eventWithTime = any;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype recordOptions<T = eventWithTime> = Record<string, any>;\n\n// --- SDK Config ---\n\nexport interface NetworkSanitizeConfig {\n denyHeaders: string[];\n denyBodyUrls: string[];\n}\n\nexport interface GhostplayConfig {\n projectId: string;\n apiUrl?: string;\n\n // Privacy\n maskAllInputs?: boolean;\n maskInputSelector?: string;\n blockSelector?: string;\n ignoreSelector?: string;\n networkSanitize?: NetworkSanitizeConfig;\n\n // Feature toggles\n recordNetwork?: boolean;\n recordConsole?: boolean;\n trackPerformance?: boolean;\n trackRageClicks?: boolean;\n trackNavigation?: boolean;\n\n // Transport\n flushIntervalMs?: number;\n flushMaxBytes?: number;\n\n // rrweb passthrough\n rrwebConfig?: Partial<recordOptions<eventWithTime>>;\n}\n\nexport const DEFAULT_CONFIG: Required<\n Pick<\n GhostplayConfig,\n | 'apiUrl'\n | 'maskAllInputs'\n | 'recordNetwork'\n | 'recordConsole'\n | 'trackPerformance'\n | 'trackRageClicks'\n | 'trackNavigation'\n | 'flushIntervalMs'\n | 'flushMaxBytes'\n >\n> = {\n apiUrl: 'https://api.ghostplay.dev/v1',\n maskAllInputs: true,\n recordNetwork: true,\n recordConsole: true,\n trackPerformance: true,\n trackRageClicks: true,\n trackNavigation: true,\n flushIntervalMs: 5000,\n flushMaxBytes: 50_000,\n};\n\n// --- Session ---\n\nexport interface Session {\n id: string;\n projectId: string;\n startedAt: number;\n userId?: string;\n userTraits?: Record<string, unknown>;\n tags: string[];\n metadata: Record<string, unknown>;\n}\n\n// --- Events ---\n\nexport type GhostplayEventType =\n | 'rrweb'\n | 'error'\n | 'network'\n | 'console'\n | 'performance'\n | 'rage-click'\n | 'breadcrumb'\n | 'identify'\n | 'tag'\n | 'metadata'\n | 'navigation';\n\nexport interface GhostplayEvent {\n type: GhostplayEventType;\n timestamp: number;\n sessionId: string;\n data: unknown;\n}\n\nexport interface ErrorEventData {\n message: string;\n stack?: string;\n source?: string;\n lineno?: number;\n colno?: number;\n type: 'onerror' | 'unhandledrejection';\n}\n\nexport interface NetworkEventData {\n method: string;\n url: string;\n status?: number;\n statusText?: string;\n requestHeaders?: Record<string, string>;\n responseHeaders?: Record<string, string>;\n requestBody?: string;\n responseBody?: string;\n startTime: number;\n endTime?: number;\n duration?: number;\n}\n\nexport interface ConsoleEventData {\n level: 'log' | 'warn' | 'error' | 'info' | 'debug';\n args: unknown[];\n}\n\nexport interface PerformanceEventData {\n metric: 'LCP' | 'FID' | 'CLS' | 'TTFB' | 'INP';\n value: number;\n rating: 'good' | 'needs-improvement' | 'poor';\n}\n\nexport interface RageClickEventData {\n selector: string;\n clickCount: number;\n x: number;\n y: number;\n}\n\nexport interface BreadcrumbEventData {\n category: 'navigation' | 'click' | 'input' | 'error' | 'network' | 'custom';\n message: string;\n data?: Record<string, unknown>;\n}\n\nexport interface NavigationEventData {\n from: string | null;\n to: string;\n trigger: 'pushState' | 'replaceState' | 'popstate' | 'hashchange' | 'initial';\n}\n\n// --- Transport ---\n\nexport interface EventBatch {\n projectId: string;\n sessionId: string;\n events: GhostplayEvent[];\n sentAt: number;\n}\n","import { type GhostplayConfig, DEFAULT_CONFIG } from './types';\n\nexport type ResolvedConfig = GhostplayConfig & typeof DEFAULT_CONFIG;\n\nexport function resolveConfig(config: GhostplayConfig): ResolvedConfig {\n if (!config.projectId) {\n throw new Error('[Ghostplay] projectId is required');\n }\n if (!config.projectId.startsWith('gp_')) {\n throw new Error('[Ghostplay] projectId must start with \"gp_\"');\n }\n\n return { ...DEFAULT_CONFIG, ...config };\n}\n","import type { Session } from './types';\n\nfunction generateId(): string {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).substring(2, 10);\n return `gs_${timestamp}_${random}`;\n}\n\nexport class SessionManager {\n private session: Session | null = null;\n\n constructor(private projectId: string) {}\n\n start(): Session {\n this.session = {\n id: generateId(),\n projectId: this.projectId,\n startedAt: Date.now(),\n tags: [],\n metadata: {},\n };\n return this.session;\n }\n\n current(): Session {\n if (!this.session) {\n throw new Error('[Ghostplay] No active session');\n }\n return this.session;\n }\n\n identify(userId: string, traits?: Record<string, unknown>): void {\n const session = this.current();\n session.userId = userId;\n session.userTraits = traits;\n }\n\n addTag(tag: string): void {\n const session = this.current();\n if (!session.tags.includes(tag)) {\n session.tags.push(tag);\n }\n }\n\n setMetadata(data: Record<string, unknown>): void {\n const session = this.current();\n session.metadata = { ...session.metadata, ...data };\n }\n\n end(): void {\n this.session = null;\n }\n}\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType || {});\nconst testableAccessors = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\",\n \"ownerDocument\"\n ],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nconst isAngularZonePresent = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a, _b;\n return Boolean(\n (_b = (_a = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods ? testableMethods[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a;\n return typeof defaultPrototype[method] === \"function\" && ((_a = defaultPrototype[method]) == null ? void 0 : _a.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n untaintedBasePrototype[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache[cacheKey])\n return untaintedAccessorCache[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedAccessor = (_a = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction ownerDocument(n) {\n return getUntaintedAccessor(\"Node\", n, \"ownerDocument\");\n}\nfunction childNodes(n) {\n return getUntaintedAccessor(\"Node\", n, \"childNodes\");\n}\nfunction parentNode(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentNode\");\n}\nfunction parentElement(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentElement\");\n}\nfunction textContent(n) {\n return getUntaintedAccessor(\"Node\", n, \"textContent\");\n}\nfunction contains(n, other) {\n return getUntaintedMethod(\"Node\", n, \"contains\")(other);\n}\nfunction getRootNode(n) {\n return getUntaintedMethod(\"Node\", n, \"getRootNode\")();\n}\nfunction host(n) {\n if (!n || !(\"host\" in n)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n, \"host\");\n}\nfunction styleSheets(n) {\n return n.styleSheets;\n}\nfunction shadowRoot(n) {\n if (!n || !(\"shadowRoot\" in n)) return null;\n return getUntaintedAccessor(\"Element\", n, \"shadowRoot\");\n}\nfunction querySelector(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nconst index = {\n ownerDocument,\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch\n};\nfunction isElement(n) {\n return n.nodeType === n.ELEMENT_NODE;\n}\nfunction isShadowRoot(n) {\n const hostEl = (\n // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n && \"host\" in n && \"mode\" in n && index.host(n) || null\n );\n return Boolean(\n hostEl && \"shadowRoot\" in hostEl && index.shadowRoot(hostEl) === n\n );\n}\nfunction isNativeShadowDom(shadowRoot2) {\n return Object.prototype.toString.call(shadowRoot2) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n cssText = cssText.replace(\n /\\sbackground-clip:\\s*text;/g,\n \" -webkit-background-clip: text; background-clip: text;\"\n );\n }\n return cssText;\n}\nfunction escapeImportStatement(rule2) {\n const { cssText } = rule2;\n if (cssText.split('\"').length < 3) return cssText;\n const statement = [\"@import\", `url(${JSON.stringify(rule2.href)})`];\n if (rule2.layerName === \"\") {\n statement.push(`layer`);\n } else if (rule2.layerName) {\n statement.push(`layer(${rule2.layerName})`);\n }\n if (rule2.supportsText) {\n statement.push(`supports(${rule2.supportsText})`);\n }\n if (rule2.media.length) {\n statement.push(rule2.media.mediaText);\n }\n return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s) {\n try {\n const rules = s.rules || s.cssRules;\n if (!rules) {\n return null;\n }\n let sheetHref = s.href;\n if (!sheetHref && s.ownerNode) {\n sheetHref = s.ownerNode.baseURI;\n }\n const stringifiedRules = Array.from(\n rules,\n (rule2) => stringifyRule(rule2, sheetHref)\n ).join(\"\");\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule2, sheetHref) {\n if (isCSSImportRule(rule2)) {\n let importStringified;\n try {\n importStringified = // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule2.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule2);\n } catch (error) {\n importStringified = rule2.cssText;\n }\n if (rule2.styleSheet.href) {\n return absolutifyURLs(importStringified, rule2.styleSheet.href);\n }\n return importStringified;\n } else {\n let ruleStringified = rule2.cssText;\n if (isCSSStyleRule(rule2) && rule2.selectorText.includes(\":\")) {\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule2) {\n return \"styleSheet\" in rule2;\n}\nfunction isCSSStyleRule(rule2) {\n return \"selectorText\" in rule2;\n}\nclass Mirror {\n constructor() {\n __publicField(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n) {\n var _a;\n if (!n) return -1;\n const id = (_a = this.getMeta(n)) == null ? void 0 : _a.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror() {\n return new Mirror();\n}\nfunction maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn\n}) {\n let text = value || \"\";\n const actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n const chunkSize = 50;\n for (let x2 = 0; x2 < canvas.width; x2 += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n const pixelBuffer = new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(\n ctx,\n x2,\n y,\n Math.min(chunkSize, canvas.width - x2),\n Math.min(chunkSize, canvas.height - y)\n ).data.buffer\n );\n if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n }\n }\n return true;\n}\nfunction isNodeMetaEqual(a, b) {\n if (!a || !b || a.type !== b.type) return false;\n if (a.type === NodeType.Document)\n return a.compatMode === b.compatMode;\n else if (a.type === NodeType.DocumentType)\n return a.name === b.name && a.publicId === b.publicId && a.systemId === b.systemId;\n else if (a.type === NodeType.Comment || a.type === NodeType.Text || a.type === NodeType.CDATA)\n return a.textContent === b.textContent;\n else if (a.type === NodeType.Element)\n return a.tagName === b.tagName && JSON.stringify(a.attributes) === JSON.stringify(b.attributes) && a.isSVG === b.isSVG && a.needBlock === b.needBlock;\n return false;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n ) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, baseURL ?? window.location.href);\n } catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return (match == null ? void 0 : match[1]) ?? null;\n}\nfunction extractOrigin(url) {\n let origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absolutifyURLs(cssText, href) {\n return (cssText || \"\").replace(\n URL_IN_CSS_REF,\n (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === \"/\") {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split(\"/\");\n const parts = filePath.split(\"/\");\n stack.pop();\n for (const part of parts) {\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n }\n );\n}\nfunction normalizeCssString(cssText, _testNoPxNorm = false) {\n if (_testNoPxNorm) {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n } else {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\").replace(/0px/g, \"0\");\n }\n}\nfunction splitCssText(cssText, style, _testNoPxNorm = false) {\n const childNodes2 = Array.from(style.childNodes);\n const splits = [];\n let iterCount = 0;\n if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n let cssTextNorm = normalizeCssString(cssText, _testNoPxNorm);\n const normFactor = cssTextNorm.length / cssText.length;\n for (let i = 1; i < childNodes2.length; i++) {\n if (childNodes2[i].textContent && typeof childNodes2[i].textContent === \"string\") {\n const textContentNorm = normalizeCssString(\n childNodes2[i].textContent,\n _testNoPxNorm\n );\n const jLimit = 100;\n let j = 3;\n for (; j < textContentNorm.length; j++) {\n if (\n // keep consuming css identifiers (to get a decent chunk more quickly)\n textContentNorm[j].match(/[a-zA-Z0-9]/) || // substring needs to be unique to this section\n textContentNorm.indexOf(textContentNorm.substring(0, j), 1) !== -1\n ) {\n continue;\n }\n break;\n }\n for (; j < textContentNorm.length; j++) {\n let startSubstring = textContentNorm.substring(0, j);\n let cssNormSplits = cssTextNorm.split(startSubstring);\n let splitNorm = -1;\n if (cssNormSplits.length === 2) {\n splitNorm = cssNormSplits[0].length;\n } else if (cssNormSplits.length > 2 && cssNormSplits[0] === \"\" && childNodes2[i - 1].textContent !== \"\") {\n splitNorm = cssTextNorm.indexOf(startSubstring, 1);\n } else if (cssNormSplits.length === 1) {\n startSubstring = startSubstring.substring(\n 0,\n startSubstring.length - 1\n );\n cssNormSplits = cssTextNorm.split(startSubstring);\n if (cssNormSplits.length <= 1) {\n splits.push(cssText);\n return splits;\n }\n j = jLimit + 1;\n } else if (j === textContentNorm.length - 1) {\n splitNorm = cssTextNorm.indexOf(startSubstring);\n }\n if (cssNormSplits.length >= 2 && j > jLimit) {\n const prevTextContent = childNodes2[i - 1].textContent;\n if (prevTextContent && typeof prevTextContent === \"string\") {\n const prevMinLength = normalizeCssString(prevTextContent).length;\n splitNorm = cssTextNorm.indexOf(startSubstring, prevMinLength);\n }\n if (splitNorm === -1) {\n splitNorm = cssNormSplits[0].length;\n }\n }\n if (splitNorm !== -1) {\n let k = Math.floor(splitNorm / normFactor);\n for (; k > 0 && k < cssText.length; ) {\n iterCount += 1;\n if (iterCount > 50 * childNodes2.length) {\n splits.push(cssText);\n return splits;\n }\n const normPart = normalizeCssString(\n cssText.substring(0, k),\n _testNoPxNorm\n );\n if (normPart.length === splitNorm) {\n splits.push(cssText.substring(0, k));\n cssText = cssText.substring(k);\n cssTextNorm = cssTextNorm.substring(splitNorm);\n break;\n } else if (normPart.length < splitNorm) {\n k += Math.max(\n 1,\n Math.floor((splitNorm - normPart.length) / normFactor)\n );\n } else {\n k -= Math.max(\n 1,\n Math.floor((normPart.length - splitNorm) * normFactor)\n );\n }\n }\n break;\n }\n }\n }\n }\n }\n splits.push(cssText);\n return splits;\n}\nfunction markCssSplits(cssText, style) {\n return splitCssText(cssText, style).join(\"/* rr_split */\");\n}\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return \"form\";\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return \"div\";\n }\n return processedTagName;\n}\nlet canvasService;\nlet canvasCtx;\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === \"\") {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars = match[0];\n pos += chars.length;\n return chars;\n }\n return \"\";\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === \",\") {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n let descriptorsStr = \"\";\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c = attributeValue.charAt(pos);\n if (c === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c === \"(\") {\n inParens = true;\n }\n } else {\n if (c === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c;\n pos += 1;\n }\n }\n }\n return output.join(\", \");\n}\nconst cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === \"\") {\n return attributeValue;\n }\n return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n let a = cachedDocument.get(doc);\n if (!a) {\n a = doc.createElement(\"a\");\n cachedDocument.set(doc, a);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a.setAttribute(\"href\", customHref);\n return a.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && [\"table\", \"td\", \"th\"].includes(tagName)) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return [\"video\", \"audio\"].includes(tagName) && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e) {\n }\n return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n if (!node2) return false;\n if (node2.nodeType !== node2.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(index.parentNode(node2), regex, checkAncestors);\n }\n for (let eIndex = node2.classList.length; eIndex--; ) {\n const className = node2.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(index.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node2)) {\n el = node2;\n if (!index.childNodes(el).length) {\n return false;\n }\n } else if (index.parentElement(node2) === null) {\n return false;\n } else {\n el = index.parentElement(node2);\n }\n try {\n if (typeof maskTextClass === \"string\") {\n if (checkAncestors) {\n if (el.closest(`.${maskTextClass}`)) return true;\n } else {\n if (el.classList.contains(maskTextClass)) return true;\n }\n } else {\n if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true;\n }\n if (maskTextSelector) {\n if (checkAncestors) {\n if (el.closest(maskTextSelector)) return true;\n } else {\n if (el.matches(maskTextSelector)) return true;\n }\n }\n } catch (e) {\n }\n return false;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== \"complete\") {\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = \"about:blank\";\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n setTimeout(listener, 0);\n return iframeEl.addEventListener(\"load\", listener);\n }\n iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n if (styleSheetLoaded) return;\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n, options) {\n const {\n doc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n const rootId = getRootId(doc, mirror);\n switch (n.nodeType) {\n case n.DOCUMENT_NODE:\n if (n.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType.Document,\n childNodes: [],\n compatMode: n.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType.Document,\n childNodes: []\n };\n }\n case n.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType.DocumentType,\n name: n.name,\n publicId: n.publicId,\n systemId: n.systemId,\n rootId\n };\n case n.ELEMENT_NODE:\n return serializeElementNode(n, {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId\n });\n case n.TEXT_NODE:\n return serializeTextNode(n, {\n doc,\n needsMask,\n maskTextFn,\n rootId,\n cssCaptured\n });\n case n.CDATA_SECTION_NODE:\n return {\n type: NodeType.CDATA,\n textContent: \"\",\n rootId\n };\n case n.COMMENT_NODE:\n return {\n type: NodeType.Comment,\n textContent: index.textContent(n) || \"\",\n rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror) {\n if (!mirror.hasNode(doc)) return void 0;\n const docId = mirror.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n, options) {\n const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n const parent = index.parentNode(n);\n const parentTagName = parent && parent.tagName;\n let textContent2 = \"\";\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isScript) {\n textContent2 = \"SCRIPT_PLACEHOLDER\";\n } else if (!cssCaptured) {\n textContent2 = index.textContent(n);\n if (isStyle && textContent2) {\n textContent2 = absolutifyURLs(textContent2, getHref(options.doc));\n }\n }\n if (!isStyle && !isScript && textContent2 && needsMask) {\n textContent2 = maskTextFn ? maskTextFn(textContent2, index.parentElement(n)) : textContent2.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType.Text,\n textContent: textContent2 || \"\",\n rootId\n };\n}\nfunction serializeElementNode(n, options) {\n const {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions = {},\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n rootId\n } = options;\n const needBlock = _isBlockedElement(n, blockClass, blockSelector);\n const tagName = getValidTagName(n);\n let attributes = {};\n const len = n.attributes.length;\n for (let i = 0; i < len; i++) {\n const attr = n.attributes[i];\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(\n doc,\n tagName,\n toLowerCase(attr.name),\n attr.value\n );\n }\n }\n if (tagName === \"link\" && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\n return s.href === n.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"style\" && n.sheet) {\n let cssText = stringifyStylesheet(\n n.sheet\n );\n if (cssText) {\n if (n.childNodes.length > 1) {\n cssText = markCssSplits(cssText, n);\n }\n attributes._cssText = cssText;\n }\n }\n if ([\"input\", \"textarea\", \"select\"].includes(tagName)) {\n const value = n.value;\n const checked = n.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n attributes.value = maskInputValue({\n element: n,\n type: getInputType(n),\n tagName,\n value,\n maskInputOptions,\n maskInputFn\n });\n } else if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === \"option\") {\n if (n.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"dialog\" && n.open) {\n attributes.rr_open_mode = n.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n.__context === \"2d\") {\n if (!is2DCanvasBlank(n)) {\n attributes.rr_dataURL = n.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n } else if (!(\"__context\" in n)) {\n const canvasDataURL = n.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n const blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n.width;\n blankCanvas.height = n.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === \"img\" && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement(\"canvas\");\n canvasCtx = canvasService.getContext(\"2d\");\n }\n const image = n;\n const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"<unknown-src>\";\n const priorCrossOrigin = image.crossOrigin;\n const recordInlineImage = () => {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err}`\n );\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if ([\"audio\", \"video\"].includes(tagName)) {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n.playbackRate;\n mediaAttributes.rr_mediaMuted = n.muted;\n mediaAttributes.rr_mediaLoop = n.loop;\n mediaAttributes.rr_mediaVolume = n.volume;\n }\n if (!newlyAddedElement) {\n if (n.scrollLeft) {\n attributes.rr_scrollLeft = n.scrollLeft;\n }\n if (n.scrollTop) {\n attributes.rr_scrollTop = n.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e) {\n }\n return {\n type: NodeType.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n) || void 0,\n needBlock,\n rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMDefaults(_slimDOMOptions) {\n if (_slimDOMOptions === true || _slimDOMOptions === \"all\") {\n return {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n };\n } else if (_slimDOMOptions) {\n return _slimDOMOptions;\n }\n return {};\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\n return true;\n } else if (sn.type === NodeType.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" && sn.attributes.as === \"script\" || sn.attributes.rel === \"modulepreload\") || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n, options) {\n const {\n doc,\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n if (!needsMask) {\n const checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(\n n,\n maskTextClass,\n maskTextSelector,\n checkAncestors\n );\n }\n const _serializedNode = serializeNode(n, {\n doc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n cssCaptured\n });\n if (!_serializedNode) {\n console.warn(n, \"not serialized\");\n return null;\n }\n let id;\n if (mirror.hasNode(n)) {\n id = mirror.getId(n);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType.Text && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, \"\").length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror.add(n, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRootEl = index.shadowRoot(n);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType.Document || serializedNode.type === NodeType.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n cssCaptured: false\n };\n if (serializedNode.type === NodeType.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n if (serializedNode.type === NodeType.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n bypassOptions.cssCaptured = true;\n }\n for (const childN of Array.from(index.childNodes(n))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n let shadowRootEl = null;\n if (isElement(n) && (shadowRootEl = index.shadowRoot(n))) {\n for (const childN of Array.from(index.childNodes(shadowRootEl))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(shadowRootEl) && (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n const parent = index.parentNode(n);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(\n n,\n () => {\n const iframeDoc = n.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(\n n,\n serializedIframeNode\n );\n }\n }\n },\n iframeLoadTimeout\n );\n }\n if (serializedNode.type === NodeType.Element && serializedNode.tagName === \"link\" && typeof serializedNode.attributes.rel === \"string\" && (serializedNode.attributes.rel === \"stylesheet\" || serializedNode.attributes.rel === \"preload\" && typeof serializedNode.attributes.href === \"string\" && extractFileExtension(serializedNode.attributes.href) === \"css\")) {\n onceStylesheetLoaded(\n n,\n () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n, {\n doc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedLinkNode) {\n onStylesheetLoad(\n n,\n serializedLinkNode\n );\n }\n }\n },\n stylesheetLoadTimeout\n );\n }\n return serializedNode;\n}\nfunction snapshot(n, options) {\n const {\n mirror = new Mirror(),\n blockClass = \"rr-block\",\n blockSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n inlineImages = false,\n recordCanvas = false,\n maskAllInputs = false,\n maskTextFn,\n maskInputFn,\n slimDOM = false,\n dataURLOptions,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn = () => false\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOMDefaults(slimDOM);\n return serializeNodeWithId(n, {\n doc: n,\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false\n });\n}\nfunction visitSnapshot(node2, onVisit) {\n function walk(current) {\n onVisit(current);\n if (current.type === NodeType.Document || current.type === NodeType.Element) {\n current.childNodes.forEach(walk);\n }\n }\n walk(node2);\n}\nfunction cleanupSnapshot() {\n _id = 1;\n}\nconst MEDIA_SELECTOR = /(max|min)-device-(width|height)/;\nconst MEDIA_SELECTOR_GLOBAL = new RegExp(MEDIA_SELECTOR.source, \"g\");\nconst mediaSelectorPlugin = {\n postcssPlugin: \"postcss-custom-selectors\",\n prepare() {\n return {\n postcssPlugin: \"postcss-custom-selectors\",\n AtRule: function(atrule) {\n if (atrule.params.match(MEDIA_SELECTOR_GLOBAL)) {\n atrule.params = atrule.params.replace(MEDIA_SELECTOR_GLOBAL, \"$1-$2\");\n }\n }\n };\n }\n};\nconst pseudoClassPlugin = {\n postcssPlugin: \"postcss-hover-classes\",\n prepare: function() {\n const fixed = [];\n return {\n Rule: function(rule2) {\n if (fixed.indexOf(rule2) !== -1) {\n return;\n }\n fixed.push(rule2);\n rule2.selectors.forEach(function(selector) {\n if (selector.includes(\":hover\")) {\n rule2.selector += \",\\n\" + selector.replace(/:hover/g, \".\\\\:hover\");\n }\n });\n }\n };\n }\n};\nfunction getDefaultExportFromCjs(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n) {\n if (n.__esModule) return n;\n var f = n.default;\n if (typeof f == \"function\") {\n var a = function a2() {\n if (this instanceof a2) {\n return Reflect.construct(f, arguments, this.constructor);\n }\n return f.apply(this, arguments);\n };\n a.prototype = f.prototype;\n } else a = {};\n Object.defineProperty(a, \"__esModule\", { value: true });\n Object.keys(n).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n, k);\n Object.defineProperty(a, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n[k];\n }\n });\n });\n return a;\n}\nvar picocolors_browser = { exports: {} };\nvar x = String;\nvar create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x };\n};\npicocolors_browser.exports = create();\npicocolors_browser.exports.createColors = create;\nvar picocolors_browserExports = picocolors_browser.exports;\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nlet pico = picocolors_browserExports;\nlet terminalHighlight$1 = require$$2;\nlet CssSyntaxError$3 = class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin2) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin2) {\n this.plugin = plugin2;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n if (terminalHighlight$1) {\n if (color) css = terminalHighlight$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError = CssSyntaxError$3;\nCssSyntaxError$3.default = CssSyntaxError$3;\nvar symbols = {};\nsymbols.isClean = Symbol(\"isClean\");\nsymbols.my = Symbol(\"my\");\nconst DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2 = class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i = 0; i < node2.nodes.length; i++) {\n let child = node2.nodes[i];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i) => {\n value = i.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== \"undefined\") {\n value = i.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i) => {\n if (i.type !== \"decl\") {\n value = i.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && (i.parent !== root2 || root2.first !== i)) {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i) => {\n if (typeof i.raws.between !== \"undefined\") {\n value = i.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i) => {\n let p = i.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i.raws.before !== \"undefined\") {\n let parts = i.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length && i.last.type === \"decl\") {\n value = i.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier = Stringifier$2;\nStringifier$2.default = Stringifier$2;\nlet Stringifier$1 = stringifier;\nfunction stringify$4(node2, builder) {\n let str = new Stringifier$1(builder);\n str.stringify(node2);\n}\nvar stringify_1 = stringify$4;\nstringify$4.default = stringify$4;\nlet { isClean: isClean$2, my: my$2 } = symbols;\nlet CssSyntaxError$2 = cssSyntaxError;\nlet Stringifier2 = stringifier;\nlet stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n continue;\n }\n if (i === \"proxyCache\") continue;\n let value = obj[i];\n let type = typeof value;\n if (i === \"parent\" && type === \"object\") {\n if (parent) cloned[i] = parent;\n } else if (i === \"source\") {\n cloned[i] = value;\n } else if (Array.isArray(value)) {\n cloned[i] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i] = value;\n }\n }\n return cloned;\n}\nlet Node$4 = class Node {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2] = false;\n this[my$2] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2]) {\n this[isClean$2] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i = 0; i < index2; i++) {\n if (string[i] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier2();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i) => {\n if (typeof i === \"object\" && i.toJSON) {\n return i.toJSON(null, inputs);\n } else {\n return i;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i) => {\n result2 += i;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i in opts) data[i] = opts[i];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node = Node$4;\nNode$4.default = Node$4;\nlet Node$3 = node;\nlet Declaration$4 = class Declaration extends Node$3 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration = Declaration$4;\nDeclaration$4.default = Declaration$4;\nlet urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i = size;\n while (i--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1 = (size = 21) => {\n let id = \"\";\n let i = size;\n while (i--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure = { nanoid: nanoid$1, customAlphabet };\nlet { SourceMapConsumer: SourceMapConsumer$2, SourceMapGenerator: SourceMapGenerator$2 } = require$$2;\nlet { existsSync, readFileSync } = require$$2;\nlet { dirname: dirname$1, join } = require$$2;\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2 = class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2) {\n return SourceMapGenerator$2.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap = PreviousMap$2;\nPreviousMap$2.default = PreviousMap$2;\nlet { SourceMapConsumer: SourceMapConsumer$1, SourceMapGenerator: SourceMapGenerator$1 } = require$$2;\nlet { fileURLToPath, pathToFileURL: pathToFileURL$1 } = require$$2;\nlet { isAbsolute, resolve: resolve$1 } = require$$2;\nlet { nanoid } = nonSecure;\nlet terminalHighlight = require$$2;\nlet CssSyntaxError$1 = cssSyntaxError;\nlet PreviousMap$1 = previousMap;\nlet fromOffsetCache = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1 = Boolean(SourceMapConsumer$1 && SourceMapGenerator$1);\nlet pathAvailable$1 = Boolean(resolve$1 && isAbsolute);\nlet Input$4 = class Input {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1(opts.from);\n }\n }\n if (pathAvailable$1 && sourceMapAvailable$1) {\n let map = new PreviousMap$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1) {\n result2.input.url = pathToFileURL$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex;\n prevIndex += lines[i].length + 1;\n }\n this[fromOffsetCache] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input = Input$4;\nInput$4.default = Input$4;\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input$4);\n}\nlet { SourceMapConsumer, SourceMapGenerator } = require$$2;\nlet { dirname, relative, resolve, sep } = require$$2;\nlet { pathToFileURL } = require$$2;\nlet Input$3 = input;\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\nlet pathAvailable = Boolean(dirname && resolve && relative && sep);\nlet MapGenerator$2 = class MapGenerator {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node2 = this.root.nodes[i];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i) => {\n result2 += i;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator = MapGenerator$2;\nlet Node$2 = node;\nlet Comment$4 = class Comment extends Node$2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment = Comment$4;\nComment$4.default = Comment$4;\nlet { isClean: isClean$1, my: my$1 } = symbols;\nlet Declaration$3 = declaration;\nlet Comment$3 = comment;\nlet Node$1 = node;\nlet parse$4, Rule$4, AtRule$4, Root$6;\nfunction cleanSource(nodes) {\n return nodes.map((i) => {\n if (i.nodes) i.nodes = cleanSource(i.nodes);\n delete i.source;\n return i;\n });\n}\nfunction markDirtyUp(node2) {\n node2[isClean$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i of node2.proxyOf.nodes) {\n markDirtyUp(i);\n }\n }\n}\nlet Container$7 = class Container extends Node$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i) => {\n if (typeof i === \"function\") {\n return (child, index2) => i(child.toProxy(), index2);\n } else {\n return i;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i) => i.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse$4(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i) => {\n if (!i[my$1]) Container.rebuild(i);\n i = i.proxyOf;\n if (i.parent) i.parent.removeChild(i);\n if (i[isClean$1]) markDirtyUp(i);\n if (typeof i.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i.parent = this.proxyOf;\n return i;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i) => {\n let result2;\n try {\n result2 = callback(child, i);\n } catch (e) {\n throw child.addToError(e);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i) => {\n if (child.type === \"atrule\") {\n return callback(child, i);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === \"comment\") {\n return callback(child, i);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i) => {\n if (child.type === \"decl\") {\n return callback(child, i);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i) => {\n if (child.type === \"rule\") {\n return callback(child, i);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7.registerParse = (dependant) => {\n parse$4 = dependant;\n};\nContainer$7.registerRule = (dependant) => {\n Rule$4 = dependant;\n};\nContainer$7.registerAtRule = (dependant) => {\n AtRule$4 = dependant;\n};\nContainer$7.registerRoot = (dependant) => {\n Root$6 = dependant;\n};\nvar container = Container$7;\nContainer$7.default = Container$7;\nContainer$7.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6.prototype);\n }\n node2[my$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7.rebuild(child);\n });\n }\n};\nlet Container$6 = container;\nlet LazyResult$4, Processor$3;\nlet Document$3 = class Document extends Container$6 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4(new Processor$3(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3.registerLazyResult = (dependant) => {\n LazyResult$4 = dependant;\n};\nDocument$3.registerProcessor = (dependant) => {\n Processor$3 = dependant;\n};\nvar document$1 = Document$3;\nDocument$3.default = Document$3;\nlet printed = {};\nvar warnOnce$2 = function warnOnce(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2 = class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning = Warning$2;\nWarning$2.default = Warning$2;\nlet Warning$1 = warning;\nlet Result$3 = class Result {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i) => i.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result = Result$3;\nResult$3.default = Result$3;\nconst SINGLE_QUOTE = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0);\nconst BACKSLASH = \"\\\\\".charCodeAt(0);\nconst SLASH = \"/\".charCodeAt(0);\nconst NEWLINE = \"\\n\".charCodeAt(0);\nconst SPACE = \" \".charCodeAt(0);\nconst FEED = \"\\f\".charCodeAt(0);\nconst TAB = \"\t\".charCodeAt(0);\nconst CR = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES = \")\".charCodeAt(0);\nconst OPEN_CURLY = \"{\".charCodeAt(0);\nconst CLOSE_CURLY = \"}\".charCodeAt(0);\nconst SEMICOLON = \";\".charCodeAt(0);\nconst ASTERISK = \"*\".charCodeAt(0);\nconst COLON = \":\".charCodeAt(0);\nconst AT = \"@\".charCodeAt(0);\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE = /[\\da-f]/i;\nvar tokenize = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5 = container;\nlet AtRule$3 = class AtRule extends Container$5 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule = AtRule$3;\nAtRule$3.default = AtRule$3;\nContainer$5.registerAtRule(AtRule$3);\nlet Container$4 = container;\nlet LazyResult$3, Processor$2;\nlet Root$5 = class Root extends Container$4 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3(new Processor$2(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5.registerLazyResult = (dependant) => {\n LazyResult$3 = dependant;\n};\nRoot$5.registerProcessor = (dependant) => {\n Processor$2 = dependant;\n};\nvar root = Root$5;\nRoot$5.default = Root$5;\nContainer$4.registerRoot(Root$5);\nlet list$2 = {\n comma(string) {\n return list$2.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1 = list$2;\nlist$2.default = list$2;\nlet Container$3 = container;\nlet list$1 = list_1;\nlet Rule$3 = class Rule extends Container$3 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule = Rule$3;\nRule$3.default = Rule$3;\nContainer$3.registerRule(Rule$3);\nlet Declaration$2 = declaration;\nlet tokenizer2 = tokenize;\nlet Comment$2 = comment;\nlet AtRule$2 = atRule;\nlet Root$4 = root;\nlet Rule$2 = rule;\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1 = class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer2(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i) => i[0] !== \"space\" && i[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i) => i[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i = 0; i < length; i += 1) {\n token = tokens[i];\n type = token[0];\n if (type === \"space\" && i === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i - 1] ? tokens[i - 1][0] : \"empty\";\n next = tokens[i + 1] ? tokens[i + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i = from; i < tokens.length; i++) {\n result2 += tokens[i][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser = Parser$1;\nlet Container$2 = container;\nlet Parser2 = parser;\nlet Input$2 = input;\nfunction parse$3(css, opts) {\n let input2 = new Input$2(css, opts);\n let parser2 = new Parser2(input2);\n try {\n parser2.parse();\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e;\n }\n return parser2.root;\n}\nvar parse_1 = parse$3;\nparse$3.default = parse$3;\nContainer$2.registerParse(parse$3);\nlet { isClean, my } = symbols;\nlet MapGenerator$1 = mapGenerator;\nlet stringify$2 = stringify_1;\nlet Container$1 = container;\nlet Document$2 = document$1;\nlet warnOnce$1 = warnOnce$2;\nlet Result$2 = result;\nlet parse$2 = parse_1;\nlet Root$3 = root;\nconst TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN = 0;\nfunction isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i) => cleanMarks(i));\n return node2;\n}\nlet postcss$2 = {};\nlet LazyResult$2 = class LazyResult {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult || css instanceof Result$2) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container$1.rebuild(root2);\n }\n }\n this.result = new Result$2(processor2, root2, opts);\n this.helpers = { ...postcss$2, postcss: postcss$2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin2) => {\n if (typeof plugin2 === \"object\" && plugin2.prepare) {\n return { ...plugin2, ...plugin2.prepare(this.result) };\n } else {\n return plugin2;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin2 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin2.postcssPlugin;\n error.setMessage();\n } else if (plugin2.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin2.postcssPlugin;\n let pluginVer = plugin2.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin2, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin2, cb]);\n };\n for (let plugin2 of this.plugins) {\n if (typeof plugin2 === \"object\") {\n for (let event in plugin2) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin2.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin2[event] === \"object\") {\n for (let filter in plugin2[event]) {\n if (filter === \"*\") {\n add(plugin2, event, plugin2[event][filter]);\n } else {\n add(\n plugin2,\n event + \"-\" + filter.toLowerCase(),\n plugin2[event][filter]\n );\n }\n }\n } else if (typeof plugin2[event] === \"function\") {\n add(plugin2, event, plugin2[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin2 = this.plugins[i];\n let promise = this.runOnRoot(plugin2);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin2, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin2;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e) {\n throw this.handleError(e);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin2) {\n this.result.lastPlugin = plugin2;\n try {\n if (typeof plugin2 === \"object\" && plugin2.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin2.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin2.Once(this.result.root, this.helpers);\n } else if (typeof plugin2 === \"function\") {\n return plugin2(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin2 of this.plugins) {\n let promise = this.runOnRoot(plugin2);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin2, visitor] of visitors) {\n this.result.lastPlugin = plugin2;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e) {\n throw this.handleError(e, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin2, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin2;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e) {\n throw this.handleError(e, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2.registerPostcss = (dependant) => {\n postcss$2 = dependant;\n};\nvar lazyResult = LazyResult$2;\nLazyResult$2.default = LazyResult$2;\nRoot$3.registerLazyResult(LazyResult$2);\nDocument$2.registerLazyResult(LazyResult$2);\nlet MapGenerator2 = mapGenerator;\nlet stringify$1 = stringify_1;\nlet warnOnce2 = warnOnce$2;\nlet parse$1 = parse_1;\nconst Result$1 = result;\nlet NoWorkResult$1 = class NoWorkResult {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1;\n this.result = new Result$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator2(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult = NoWorkResult$1;\nNoWorkResult$1.default = NoWorkResult$1;\nlet NoWorkResult2 = noWorkResult;\nlet LazyResult$1 = lazyResult;\nlet Document$1 = document$1;\nlet Root$2 = root;\nlet Processor$1 = class Processor {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i();\n } else if (i.postcss) {\n i = i.postcss;\n }\n if (typeof i === \"object\" && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins);\n } else if (typeof i === \"object\" && i.postcssPlugin) {\n normalized.push(i);\n } else if (typeof i === \"function\") {\n normalized.push(i);\n } else if (typeof i === \"object\" && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult2(this, css, opts);\n } else {\n return new LazyResult$1(this, css, opts);\n }\n }\n use(plugin2) {\n this.plugins = this.plugins.concat(this.normalize([plugin2]));\n return this;\n }\n};\nvar processor = Processor$1;\nProcessor$1.default = Processor$1;\nRoot$2.registerProcessor(Processor$1);\nDocument$1.registerProcessor(Processor$1);\nlet Declaration$1 = declaration;\nlet PreviousMap2 = previousMap;\nlet Comment$1 = comment;\nlet AtRule$1 = atRule;\nlet Input$1 = input;\nlet Root$1 = root;\nlet Rule$1 = rule;\nfunction fromJSON$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n) => fromJSON$1(n));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap2.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n) => fromJSON$1(n, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1 = fromJSON$1;\nfromJSON$1.default = fromJSON$1;\nlet CssSyntaxError2 = cssSyntaxError;\nlet Declaration2 = declaration;\nlet LazyResult2 = lazyResult;\nlet Container2 = container;\nlet Processor2 = processor;\nlet stringify = stringify_1;\nlet fromJSON = fromJSON_1;\nlet Document2 = document$1;\nlet Warning2 = warning;\nlet Comment2 = comment;\nlet AtRule2 = atRule;\nlet Result2 = result;\nlet Input2 = input;\nlet parse = parse_1;\nlet list = list_1;\nlet Rule2 = rule;\nlet Root2 = root;\nlet Node2 = node;\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor2(plugins);\n}\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor2().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss.stringify = stringify;\npostcss.parse = parse;\npostcss.fromJSON = fromJSON;\npostcss.list = list;\npostcss.comment = (defaults) => new Comment2(defaults);\npostcss.atRule = (defaults) => new AtRule2(defaults);\npostcss.decl = (defaults) => new Declaration2(defaults);\npostcss.rule = (defaults) => new Rule2(defaults);\npostcss.root = (defaults) => new Root2(defaults);\npostcss.document = (defaults) => new Document2(defaults);\npostcss.CssSyntaxError = CssSyntaxError2;\npostcss.Declaration = Declaration2;\npostcss.Container = Container2;\npostcss.Processor = Processor2;\npostcss.Document = Document2;\npostcss.Comment = Comment2;\npostcss.Warning = Warning2;\npostcss.AtRule = AtRule2;\npostcss.Result = Result2;\npostcss.Input = Input2;\npostcss.Rule = Rule2;\npostcss.Root = Root2;\npostcss.Node = Node2;\nLazyResult2.registerPostcss(postcss);\nvar postcss_1 = postcss;\npostcss.default = postcss;\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs(postcss_1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nconst tagMap = {\n script: \"noscript\",\n // camel case svg element tag names\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nfunction getTagName(n) {\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\n if (tagName === \"link\" && n.attributes._cssText) {\n tagName = \"style\";\n }\n return tagName;\n}\nfunction adaptCssForReplay(cssText, cache) {\n const cachedStyle = cache == null ? void 0 : cache.stylesWithHoverClass.get(cssText);\n if (cachedStyle) return cachedStyle;\n let result2 = cssText;\n try {\n const ast = postcss$1([\n mediaSelectorPlugin,\n pseudoClassPlugin\n ]).process(cssText);\n result2 = ast.css;\n } catch (error) {\n console.warn(\"Failed to adapt css for replay\", error);\n }\n cache == null ? void 0 : cache.stylesWithHoverClass.set(cssText, result2);\n return result2;\n}\nfunction createCache() {\n const stylesWithHoverClass = /* @__PURE__ */ new Map();\n return {\n stylesWithHoverClass\n };\n}\nfunction applyCssSplits(n, cssText, hackCss, cache) {\n const childTextNodes = [];\n for (const scn of n.childNodes) {\n if (scn.type === NodeType.Text) {\n childTextNodes.push(scn);\n }\n }\n const cssTextSplits = cssText.split(\"/* rr_split */\");\n while (cssTextSplits.length > 1 && cssTextSplits.length > childTextNodes.length) {\n cssTextSplits.splice(-2, 2, cssTextSplits.slice(-2).join(\"\"));\n }\n let adaptedCss = \"\";\n if (hackCss) {\n adaptedCss = adaptCssForReplay(cssTextSplits.join(\"\"), cache);\n }\n let startIndex = 0;\n for (let i = 0; i < childTextNodes.length; i++) {\n if (i === cssTextSplits.length) {\n break;\n }\n const childTextNode = childTextNodes[i];\n if (!hackCss) {\n childTextNode.textContent = cssTextSplits[i];\n } else if (i < cssTextSplits.length - 1) {\n let endIndex = startIndex;\n let endSearch = cssTextSplits[i + 1].length;\n endSearch = Math.min(endSearch, 30);\n let found = false;\n for (; endSearch > 2; endSearch--) {\n const searchBit = cssTextSplits[i + 1].substring(0, endSearch);\n const searchIndex = adaptedCss.substring(startIndex).indexOf(searchBit);\n found = searchIndex !== -1;\n if (found) {\n endIndex += searchIndex;\n break;\n }\n }\n if (!found) {\n endIndex += cssTextSplits[i].length;\n }\n childTextNode.textContent = adaptedCss.substring(startIndex, endIndex);\n startIndex = endIndex;\n } else {\n childTextNode.textContent = adaptedCss.substring(startIndex);\n }\n }\n}\nfunction buildStyleNode(n, styleEl, cssText, options) {\n const { doc, hackCss, cache } = options;\n if (n.childNodes.length) {\n applyCssSplits(n, cssText, hackCss, cache);\n } else {\n if (hackCss) {\n cssText = adaptCssForReplay(cssText, cache);\n }\n styleEl.appendChild(doc.createTextNode(cssText));\n }\n}\nfunction buildNode(n, options) {\n var _a;\n const { doc, hackCss, cache } = options;\n switch (n.type) {\n case NodeType.Document:\n return doc.implementation.createDocument(null, \"\", null);\n case NodeType.DocumentType:\n return doc.implementation.createDocumentType(\n n.name || \"html\",\n n.publicId,\n n.systemId\n );\n case NodeType.Element: {\n const tagName = getTagName(n);\n let node2;\n if (n.isSVG) {\n node2 = doc.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n } else {\n if (\n // If the tag name is a custom element name\n n.isCustom && // If the browser supports custom elements\n ((_a = doc.defaultView) == null ? void 0 : _a.customElements) && // If the custom element hasn't been defined yet\n !doc.defaultView.customElements.get(n.tagName)\n )\n doc.defaultView.customElements.define(\n n.tagName,\n class extends doc.defaultView.HTMLElement {\n }\n );\n node2 = doc.createElement(tagName);\n }\n const specialAttributes = {};\n for (const name in n.attributes) {\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\n continue;\n }\n let value = n.attributes[name];\n if (tagName === \"option\" && name === \"selected\" && value === false) {\n continue;\n }\n if (value === null) {\n continue;\n }\n if (value === true) value = \"\";\n if (name.startsWith(\"rr_\")) {\n specialAttributes[name] = value;\n continue;\n }\n if (typeof value !== \"string\") ;\n else if (tagName === \"style\" && name === \"_cssText\") {\n buildStyleNode(n, node2, value, options);\n continue;\n } else if (tagName === \"textarea\" && name === \"value\") {\n node2.appendChild(doc.createTextNode(value));\n n.childNodes = [];\n continue;\n }\n try {\n if (n.isSVG && name === \"xlink:href\") {\n node2.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n name,\n value.toString()\n );\n } else if (name === \"onload\" || name === \"onclick\" || name.substring(0, 7) === \"onmouse\") {\n node2.setAttribute(\"_\" + name, value.toString());\n } else if (tagName === \"meta\" && n.attributes[\"http-equiv\"] === \"Content-Security-Policy\" && name === \"content\") {\n node2.setAttribute(\"csp-content\", value.toString());\n continue;\n } else if (tagName === \"link\" && (n.attributes.rel === \"preload\" && n.attributes.as === \"script\" || n.attributes.rel === \"modulepreload\")) {\n } else if (tagName === \"link\" && n.attributes.rel === \"prefetch\" && typeof n.attributes.href === \"string\" && extractFileExtension(n.attributes.href) === \"js\") {\n } else if (tagName === \"img\" && n.attributes.srcset && n.attributes.rr_dataURL) {\n node2.setAttribute(\n \"rrweb-original-srcset\",\n n.attributes.srcset\n );\n } else {\n node2.setAttribute(name, value.toString());\n }\n } catch (error) {\n }\n }\n for (const name in specialAttributes) {\n const value = specialAttributes[name];\n if (tagName === \"canvas\" && name === \"rr_dataURL\") {\n const image = doc.createElement(\"img\");\n image.onload = () => {\n const ctx = node2.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = value.toString();\n if (node2.RRNodeType)\n node2.rr_dataURL = value.toString();\n } else if (tagName === \"img\" && name === \"rr_dataURL\") {\n const image = node2;\n if (!image.currentSrc.startsWith(\"data:\")) {\n image.setAttribute(\n \"rrweb-original-src\",\n n.attributes.src\n );\n image.src = value.toString();\n }\n }\n if (name === \"rr_width\") {\n node2.style.setProperty(\"width\", value.toString());\n } else if (name === \"rr_height\") {\n node2.style.setProperty(\"height\", value.toString());\n } else if (name === \"rr_mediaCurrentTime\" && typeof value === \"number\") {\n node2.currentTime = value;\n } else if (name === \"rr_mediaState\") {\n switch (value) {\n case \"played\":\n node2.play().catch((e) => console.warn(\"media playback error\", e));\n break;\n case \"paused\":\n node2.pause();\n break;\n }\n } else if (name === \"rr_mediaPlaybackRate\" && typeof value === \"number\") {\n node2.playbackRate = value;\n } else if (name === \"rr_mediaMuted\" && typeof value === \"boolean\") {\n node2.muted = value;\n } else if (name === \"rr_mediaLoop\" && typeof value === \"boolean\") {\n node2.loop = value;\n } else if (name === \"rr_mediaVolume\" && typeof value === \"number\") {\n node2.volume = value;\n } else if (name === \"rr_open_mode\") {\n node2.setAttribute(\n \"rr_open_mode\",\n value\n );\n }\n }\n if (n.isShadowHost) {\n if (!node2.shadowRoot) {\n node2.attachShadow({ mode: \"open\" });\n } else {\n while (node2.shadowRoot.firstChild) {\n node2.shadowRoot.removeChild(node2.shadowRoot.firstChild);\n }\n }\n }\n return node2;\n }\n case NodeType.Text:\n if (n.isStyle && hackCss) {\n return doc.createTextNode(adaptCssForReplay(n.textContent, cache));\n }\n return doc.createTextNode(n.textContent);\n case NodeType.CDATA:\n return doc.createCDATASection(n.textContent);\n case NodeType.Comment:\n return doc.createComment(n.textContent);\n default:\n return null;\n }\n}\nfunction buildNodeWithSN(n, options) {\n const {\n doc,\n mirror,\n skipChild = false,\n hackCss = true,\n afterAppend,\n cache\n } = options;\n if (mirror.has(n.id)) {\n const nodeInMirror = mirror.getNode(n.id);\n const meta = mirror.getMeta(nodeInMirror);\n if (isNodeMetaEqual(meta, n)) return mirror.getNode(n.id);\n }\n let node2 = buildNode(n, { doc, hackCss, cache });\n if (!node2) {\n return null;\n }\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\n mirror.replace(n.rootId, doc);\n }\n if (n.type === NodeType.Document) {\n doc.close();\n doc.open();\n if (n.compatMode === \"BackCompat\" && n.childNodes && n.childNodes[0].type !== NodeType.DocumentType) {\n if (n.childNodes[0].type === NodeType.Element && \"xmlns\" in n.childNodes[0].attributes && n.childNodes[0].attributes.xmlns === \"http://www.w3.org/1999/xhtml\") {\n doc.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">'\n );\n } else {\n doc.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">'\n );\n }\n }\n node2 = doc;\n }\n mirror.add(node2, n);\n if ((n.type === NodeType.Document || n.type === NodeType.Element) && !skipChild) {\n for (const childN of n.childNodes) {\n const childNode = buildNodeWithSN(childN, {\n doc,\n mirror,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n if (!childNode) {\n console.warn(\"Failed to rebuild\", childN);\n continue;\n }\n if (childN.isShadow && isElement(node2) && node2.shadowRoot) {\n node2.shadowRoot.appendChild(childNode);\n } else if (n.type === NodeType.Document && childN.type == NodeType.Element) {\n const htmlElement = childNode;\n let body = null;\n htmlElement.childNodes.forEach((child) => {\n if (child.nodeName === \"BODY\") body = child;\n });\n if (body) {\n htmlElement.removeChild(body);\n node2.appendChild(childNode);\n htmlElement.appendChild(body);\n } else {\n node2.appendChild(childNode);\n }\n } else {\n node2.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode, childN.id);\n }\n }\n }\n return node2;\n}\nfunction visit(mirror, onVisit) {\n function walk(node2) {\n onVisit(node2);\n }\n for (const id of mirror.getIds()) {\n if (mirror.has(id)) {\n walk(mirror.getNode(id));\n }\n }\n}\nfunction handleScroll(node2, mirror) {\n const n = mirror.getMeta(node2);\n if ((n == null ? void 0 : n.type) !== NodeType.Element) {\n return;\n }\n const el = node2;\n for (const name in n.attributes) {\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) && name.startsWith(\"rr_\"))) {\n continue;\n }\n const value = n.attributes[name];\n if (name === \"rr_scrollLeft\") {\n el.scrollLeft = value;\n }\n if (name === \"rr_scrollTop\") {\n el.scrollTop = value;\n }\n }\n}\nfunction rebuild(n, options) {\n const {\n doc,\n onVisit,\n hackCss = true,\n afterAppend,\n cache,\n mirror = new Mirror()\n } = options;\n const node2 = buildNodeWithSN(n, {\n doc,\n mirror,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n visit(mirror, (visitedNode) => {\n if (onVisit) {\n onVisit(visitedNode);\n }\n handleScroll(visitedNode, mirror);\n });\n return node2;\n}\nexport {\n IGNORED_NODE,\n Mirror,\n absolutifyURLs,\n adaptCssForReplay,\n buildNodeWithSN,\n classMatchesRegex,\n cleanupSnapshot,\n createCache,\n createMirror,\n escapeImportStatement,\n extractFileExtension,\n fixSafariColons,\n genId,\n getInputType,\n ignoreAttribute,\n is2DCanvasBlank,\n isCSSImportRule,\n isCSSStyleRule,\n isElement,\n isNativeShadowDom,\n isNodeMetaEqual,\n isShadowRoot,\n markCssSplits,\n maskInputValue,\n needMaskingText,\n normalizeCssString,\n rebuild,\n serializeNodeWithId,\n slimDOMDefaults,\n snapshot,\n splitCssText,\n stringifyRule,\n stringifyStylesheet,\n toLowerCase,\n transformAttribute,\n visitSnapshot\n};\n//# sourceMappingURL=rrweb-snapshot.js.map\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nlet Mirror$1 = class Mirror {\n constructor() {\n __publicField2(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField2(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n) {\n var _a;\n if (!n) return -1;\n const id = (_a = this.getMeta(n)) == null ? void 0 : _a.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n};\nfunction createMirror$1() {\n return new Mirror$1();\n}\nfunction getDefaultExportFromCjs(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n) {\n if (n.__esModule) return n;\n var f = n.default;\n if (typeof f == \"function\") {\n var a = function a2() {\n if (this instanceof a2) {\n return Reflect.construct(f, arguments, this.constructor);\n }\n return f.apply(this, arguments);\n };\n a.prototype = f.prototype;\n } else a = {};\n Object.defineProperty(a, \"__esModule\", { value: true });\n Object.keys(n).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n, k);\n Object.defineProperty(a, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n[k];\n }\n });\n });\n return a;\n}\nvar picocolors_browser = { exports: {} };\nvar x = String;\nvar create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x };\n};\npicocolors_browser.exports = create();\npicocolors_browser.exports.createColors = create;\nvar picocolors_browserExports = picocolors_browser.exports;\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nlet pico = picocolors_browserExports;\nlet terminalHighlight$1 = require$$2;\nlet CssSyntaxError$3 = class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin2) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin2) {\n this.plugin = plugin2;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n if (terminalHighlight$1) {\n if (color) css = terminalHighlight$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError = CssSyntaxError$3;\nCssSyntaxError$3.default = CssSyntaxError$3;\nvar symbols = {};\nsymbols.isClean = Symbol(\"isClean\");\nsymbols.my = Symbol(\"my\");\nconst DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2 = class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i = 0; i < node2.nodes.length; i++) {\n let child = node2.nodes[i];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i) => {\n value = i.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== \"undefined\") {\n value = i.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i) => {\n if (i.type !== \"decl\") {\n value = i.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && (i.parent !== root2 || root2.first !== i)) {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i) => {\n if (typeof i.raws.between !== \"undefined\") {\n value = i.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i) => {\n let p = i.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i.raws.before !== \"undefined\") {\n let parts = i.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length && i.last.type === \"decl\") {\n value = i.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier = Stringifier$2;\nStringifier$2.default = Stringifier$2;\nlet Stringifier$1 = stringifier;\nfunction stringify$4(node2, builder) {\n let str = new Stringifier$1(builder);\n str.stringify(node2);\n}\nvar stringify_1 = stringify$4;\nstringify$4.default = stringify$4;\nlet { isClean: isClean$2, my: my$2 } = symbols;\nlet CssSyntaxError$2 = cssSyntaxError;\nlet Stringifier2 = stringifier;\nlet stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n continue;\n }\n if (i === \"proxyCache\") continue;\n let value = obj[i];\n let type = typeof value;\n if (i === \"parent\" && type === \"object\") {\n if (parent) cloned[i] = parent;\n } else if (i === \"source\") {\n cloned[i] = value;\n } else if (Array.isArray(value)) {\n cloned[i] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i] = value;\n }\n }\n return cloned;\n}\nlet Node$4 = class Node {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2] = false;\n this[my$2] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2]) {\n this[isClean$2] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i = 0; i < index2; i++) {\n if (string[i] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier2();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i) => {\n if (typeof i === \"object\" && i.toJSON) {\n return i.toJSON(null, inputs);\n } else {\n return i;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i) => {\n result2 += i;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i in opts) data[i] = opts[i];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node = Node$4;\nNode$4.default = Node$4;\nlet Node$3 = node;\nlet Declaration$4 = class Declaration extends Node$3 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration = Declaration$4;\nDeclaration$4.default = Declaration$4;\nlet urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i = size;\n while (i--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1 = (size = 21) => {\n let id = \"\";\n let i = size;\n while (i--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure = { nanoid: nanoid$1, customAlphabet };\nlet { SourceMapConsumer: SourceMapConsumer$2, SourceMapGenerator: SourceMapGenerator$2 } = require$$2;\nlet { existsSync, readFileSync } = require$$2;\nlet { dirname: dirname$1, join } = require$$2;\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2 = class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2) {\n return SourceMapGenerator$2.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap = PreviousMap$2;\nPreviousMap$2.default = PreviousMap$2;\nlet { SourceMapConsumer: SourceMapConsumer$1, SourceMapGenerator: SourceMapGenerator$1 } = require$$2;\nlet { fileURLToPath, pathToFileURL: pathToFileURL$1 } = require$$2;\nlet { isAbsolute, resolve: resolve$1 } = require$$2;\nlet { nanoid } = nonSecure;\nlet terminalHighlight = require$$2;\nlet CssSyntaxError$1 = cssSyntaxError;\nlet PreviousMap$1 = previousMap;\nlet fromOffsetCache = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1 = Boolean(SourceMapConsumer$1 && SourceMapGenerator$1);\nlet pathAvailable$1 = Boolean(resolve$1 && isAbsolute);\nlet Input$4 = class Input {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1(opts.from);\n }\n }\n if (pathAvailable$1 && sourceMapAvailable$1) {\n let map = new PreviousMap$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1) {\n result2.input.url = pathToFileURL$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex;\n prevIndex += lines[i].length + 1;\n }\n this[fromOffsetCache] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input = Input$4;\nInput$4.default = Input$4;\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input$4);\n}\nlet { SourceMapConsumer, SourceMapGenerator } = require$$2;\nlet { dirname, relative, resolve, sep } = require$$2;\nlet { pathToFileURL } = require$$2;\nlet Input$3 = input;\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\nlet pathAvailable = Boolean(dirname && resolve && relative && sep);\nlet MapGenerator$2 = class MapGenerator {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node2 = this.root.nodes[i];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i) => {\n result2 += i;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator = MapGenerator$2;\nlet Node$2 = node;\nlet Comment$4 = class Comment extends Node$2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment = Comment$4;\nComment$4.default = Comment$4;\nlet { isClean: isClean$1, my: my$1 } = symbols;\nlet Declaration$3 = declaration;\nlet Comment$3 = comment;\nlet Node$1 = node;\nlet parse$4, Rule$4, AtRule$4, Root$6;\nfunction cleanSource(nodes) {\n return nodes.map((i) => {\n if (i.nodes) i.nodes = cleanSource(i.nodes);\n delete i.source;\n return i;\n });\n}\nfunction markDirtyUp(node2) {\n node2[isClean$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i of node2.proxyOf.nodes) {\n markDirtyUp(i);\n }\n }\n}\nlet Container$7 = class Container extends Node$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i) => {\n if (typeof i === \"function\") {\n return (child, index2) => i(child.toProxy(), index2);\n } else {\n return i;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i) => i.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse$4(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i) => {\n if (!i[my$1]) Container.rebuild(i);\n i = i.proxyOf;\n if (i.parent) i.parent.removeChild(i);\n if (i[isClean$1]) markDirtyUp(i);\n if (typeof i.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i.parent = this.proxyOf;\n return i;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i) => {\n let result2;\n try {\n result2 = callback(child, i);\n } catch (e) {\n throw child.addToError(e);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i) => {\n if (child.type === \"atrule\") {\n return callback(child, i);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === \"comment\") {\n return callback(child, i);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i) => {\n if (child.type === \"decl\") {\n return callback(child, i);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i) => {\n if (child.type === \"rule\") {\n return callback(child, i);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7.registerParse = (dependant) => {\n parse$4 = dependant;\n};\nContainer$7.registerRule = (dependant) => {\n Rule$4 = dependant;\n};\nContainer$7.registerAtRule = (dependant) => {\n AtRule$4 = dependant;\n};\nContainer$7.registerRoot = (dependant) => {\n Root$6 = dependant;\n};\nvar container = Container$7;\nContainer$7.default = Container$7;\nContainer$7.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6.prototype);\n }\n node2[my$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7.rebuild(child);\n });\n }\n};\nlet Container$6 = container;\nlet LazyResult$4, Processor$3;\nlet Document$3 = class Document2 extends Container$6 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4(new Processor$3(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3.registerLazyResult = (dependant) => {\n LazyResult$4 = dependant;\n};\nDocument$3.registerProcessor = (dependant) => {\n Processor$3 = dependant;\n};\nvar document$1 = Document$3;\nDocument$3.default = Document$3;\nlet printed = {};\nvar warnOnce$2 = function warnOnce(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2 = class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning = Warning$2;\nWarning$2.default = Warning$2;\nlet Warning$1 = warning;\nlet Result$3 = class Result {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i) => i.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result = Result$3;\nResult$3.default = Result$3;\nconst SINGLE_QUOTE = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0);\nconst BACKSLASH = \"\\\\\".charCodeAt(0);\nconst SLASH = \"/\".charCodeAt(0);\nconst NEWLINE = \"\\n\".charCodeAt(0);\nconst SPACE = \" \".charCodeAt(0);\nconst FEED = \"\\f\".charCodeAt(0);\nconst TAB = \"\t\".charCodeAt(0);\nconst CR = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES = \")\".charCodeAt(0);\nconst OPEN_CURLY = \"{\".charCodeAt(0);\nconst CLOSE_CURLY = \"}\".charCodeAt(0);\nconst SEMICOLON = \";\".charCodeAt(0);\nconst ASTERISK = \"*\".charCodeAt(0);\nconst COLON = \":\".charCodeAt(0);\nconst AT = \"@\".charCodeAt(0);\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE = /[\\da-f]/i;\nvar tokenize = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5 = container;\nlet AtRule$3 = class AtRule extends Container$5 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule = AtRule$3;\nAtRule$3.default = AtRule$3;\nContainer$5.registerAtRule(AtRule$3);\nlet Container$4 = container;\nlet LazyResult$3, Processor$2;\nlet Root$5 = class Root extends Container$4 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3(new Processor$2(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5.registerLazyResult = (dependant) => {\n LazyResult$3 = dependant;\n};\nRoot$5.registerProcessor = (dependant) => {\n Processor$2 = dependant;\n};\nvar root = Root$5;\nRoot$5.default = Root$5;\nContainer$4.registerRoot(Root$5);\nlet list$2 = {\n comma(string) {\n return list$2.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1 = list$2;\nlist$2.default = list$2;\nlet Container$3 = container;\nlet list$1 = list_1;\nlet Rule$3 = class Rule extends Container$3 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule = Rule$3;\nRule$3.default = Rule$3;\nContainer$3.registerRule(Rule$3);\nlet Declaration$2 = declaration;\nlet tokenizer2 = tokenize;\nlet Comment$2 = comment;\nlet AtRule$2 = atRule;\nlet Root$4 = root;\nlet Rule$2 = rule;\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1 = class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer2(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i) => i[0] !== \"space\" && i[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i) => i[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i = 0; i < length; i += 1) {\n token = tokens[i];\n type = token[0];\n if (type === \"space\" && i === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i - 1] ? tokens[i - 1][0] : \"empty\";\n next = tokens[i + 1] ? tokens[i + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i = from; i < tokens.length; i++) {\n result2 += tokens[i][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser = Parser$1;\nlet Container$2 = container;\nlet Parser2 = parser;\nlet Input$2 = input;\nfunction parse$3(css, opts) {\n let input2 = new Input$2(css, opts);\n let parser2 = new Parser2(input2);\n try {\n parser2.parse();\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e;\n }\n return parser2.root;\n}\nvar parse_1 = parse$3;\nparse$3.default = parse$3;\nContainer$2.registerParse(parse$3);\nlet { isClean, my } = symbols;\nlet MapGenerator$1 = mapGenerator;\nlet stringify$2 = stringify_1;\nlet Container$1 = container;\nlet Document$2 = document$1;\nlet warnOnce$1 = warnOnce$2;\nlet Result$2 = result;\nlet parse$2 = parse_1;\nlet Root$3 = root;\nconst TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN = 0;\nfunction isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i) => cleanMarks(i));\n return node2;\n}\nlet postcss$2 = {};\nlet LazyResult$2 = class LazyResult {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult || css instanceof Result$2) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container$1.rebuild(root2);\n }\n }\n this.result = new Result$2(processor2, root2, opts);\n this.helpers = { ...postcss$2, postcss: postcss$2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin2) => {\n if (typeof plugin2 === \"object\" && plugin2.prepare) {\n return { ...plugin2, ...plugin2.prepare(this.result) };\n } else {\n return plugin2;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin2 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin2.postcssPlugin;\n error.setMessage();\n } else if (plugin2.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin2.postcssPlugin;\n let pluginVer = plugin2.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin2, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin2, cb]);\n };\n for (let plugin2 of this.plugins) {\n if (typeof plugin2 === \"object\") {\n for (let event in plugin2) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin2.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin2[event] === \"object\") {\n for (let filter in plugin2[event]) {\n if (filter === \"*\") {\n add(plugin2, event, plugin2[event][filter]);\n } else {\n add(\n plugin2,\n event + \"-\" + filter.toLowerCase(),\n plugin2[event][filter]\n );\n }\n }\n } else if (typeof plugin2[event] === \"function\") {\n add(plugin2, event, plugin2[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin2 = this.plugins[i];\n let promise = this.runOnRoot(plugin2);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin2, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin2;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e) {\n throw this.handleError(e);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin2) {\n this.result.lastPlugin = plugin2;\n try {\n if (typeof plugin2 === \"object\" && plugin2.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin2.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin2.Once(this.result.root, this.helpers);\n } else if (typeof plugin2 === \"function\") {\n return plugin2(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin2 of this.plugins) {\n let promise = this.runOnRoot(plugin2);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin2, visitor] of visitors) {\n this.result.lastPlugin = plugin2;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e) {\n throw this.handleError(e, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin2, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin2;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e) {\n throw this.handleError(e, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2.registerPostcss = (dependant) => {\n postcss$2 = dependant;\n};\nvar lazyResult = LazyResult$2;\nLazyResult$2.default = LazyResult$2;\nRoot$3.registerLazyResult(LazyResult$2);\nDocument$2.registerLazyResult(LazyResult$2);\nlet MapGenerator2 = mapGenerator;\nlet stringify$1 = stringify_1;\nlet warnOnce2 = warnOnce$2;\nlet parse$1 = parse_1;\nconst Result$1 = result;\nlet NoWorkResult$1 = class NoWorkResult {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1;\n this.result = new Result$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator2(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult = NoWorkResult$1;\nNoWorkResult$1.default = NoWorkResult$1;\nlet NoWorkResult2 = noWorkResult;\nlet LazyResult$1 = lazyResult;\nlet Document$1 = document$1;\nlet Root$2 = root;\nlet Processor$1 = class Processor {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i();\n } else if (i.postcss) {\n i = i.postcss;\n }\n if (typeof i === \"object\" && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins);\n } else if (typeof i === \"object\" && i.postcssPlugin) {\n normalized.push(i);\n } else if (typeof i === \"function\") {\n normalized.push(i);\n } else if (typeof i === \"object\" && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult2(this, css, opts);\n } else {\n return new LazyResult$1(this, css, opts);\n }\n }\n use(plugin2) {\n this.plugins = this.plugins.concat(this.normalize([plugin2]));\n return this;\n }\n};\nvar processor = Processor$1;\nProcessor$1.default = Processor$1;\nRoot$2.registerProcessor(Processor$1);\nDocument$1.registerProcessor(Processor$1);\nlet Declaration$1 = declaration;\nlet PreviousMap2 = previousMap;\nlet Comment$1 = comment;\nlet AtRule$1 = atRule;\nlet Input$1 = input;\nlet Root$1 = root;\nlet Rule$1 = rule;\nfunction fromJSON$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n) => fromJSON$1(n));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap2.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n) => fromJSON$1(n, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1 = fromJSON$1;\nfromJSON$1.default = fromJSON$1;\nlet CssSyntaxError2 = cssSyntaxError;\nlet Declaration2 = declaration;\nlet LazyResult2 = lazyResult;\nlet Container2 = container;\nlet Processor2 = processor;\nlet stringify = stringify_1;\nlet fromJSON = fromJSON_1;\nlet Document22 = document$1;\nlet Warning2 = warning;\nlet Comment2 = comment;\nlet AtRule2 = atRule;\nlet Result2 = result;\nlet Input2 = input;\nlet parse = parse_1;\nlet list = list_1;\nlet Rule2 = rule;\nlet Root2 = root;\nlet Node2 = node;\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor2(plugins);\n}\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor2().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss.stringify = stringify;\npostcss.parse = parse;\npostcss.fromJSON = fromJSON;\npostcss.list = list;\npostcss.comment = (defaults) => new Comment2(defaults);\npostcss.atRule = (defaults) => new AtRule2(defaults);\npostcss.decl = (defaults) => new Declaration2(defaults);\npostcss.rule = (defaults) => new Rule2(defaults);\npostcss.root = (defaults) => new Root2(defaults);\npostcss.document = (defaults) => new Document22(defaults);\npostcss.CssSyntaxError = CssSyntaxError2;\npostcss.Declaration = Declaration2;\npostcss.Container = Container2;\npostcss.Processor = Processor2;\npostcss.Document = Document22;\npostcss.Comment = Comment2;\npostcss.Warning = Warning2;\npostcss.AtRule = AtRule2;\npostcss.Result = Result2;\npostcss.Input = Input2;\npostcss.Rule = Rule2;\npostcss.Root = Root2;\npostcss.Node = Node2;\nLazyResult2.registerPostcss(postcss);\nvar postcss_1 = postcss;\npostcss.default = postcss;\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs(postcss_1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$1 || {});\nfunction parseCSSText(cssText) {\n const res = {};\n const listDelimiter = /;(?![^(]*\\))/g;\n const propertyDelimiter = /:(.+)/;\n const comment2 = /\\/\\*.*?\\*\\//g;\n cssText.replace(comment2, \"\").split(listDelimiter).forEach(function(item) {\n if (item) {\n const tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\n }\n });\n return res;\n}\nfunction toCSSText(style) {\n const properties = [];\n for (const name in style) {\n const value = style[name];\n if (typeof value !== \"string\") continue;\n const normalizedName = hyphenate(name);\n properties.push(`${normalizedName}: ${value};`);\n }\n return properties.join(\" \");\n}\nconst camelizeRE = /-([a-z])/g;\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nconst camelize = (str) => {\n if (CUSTOM_PROPERTY_REGEX.test(str)) return str;\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n};\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = (str) => {\n return str.replace(hyphenateRE, \"-$1\").toLowerCase();\n};\nclass BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(..._args) {\n __publicField(this, \"parentElement\", null);\n __publicField(this, \"parentNode\", null);\n __publicField(this, \"ownerDocument\");\n __publicField(this, \"firstChild\", null);\n __publicField(this, \"lastChild\", null);\n __publicField(this, \"previousSibling\", null);\n __publicField(this, \"nextSibling\", null);\n __publicField(this, \"ELEMENT_NODE\", 1);\n __publicField(this, \"TEXT_NODE\", 3);\n // corresponding nodeType value of standard HTML Node\n __publicField(this, \"nodeType\");\n __publicField(this, \"nodeName\");\n __publicField(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes;\n }\n contains(node2) {\n if (!(node2 instanceof BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while (node2.parentNode) {\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nclass BaseRRDocument extends BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(...args) {\n super(args);\n __publicField(this, \"nodeType\", 9);\n __publicField(this, \"nodeName\", \"#document\");\n __publicField(this, \"compatMode\", \"CSS1Compat\");\n __publicField(this, \"RRNodeType\", NodeType$1.Document);\n __publicField(this, \"textContent\", null);\n this.ownerDocument = this;\n }\n get documentElement() {\n return this.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HTML\"\n ) || null;\n }\n get body() {\n var _a;\n return ((_a = this.documentElement) == null ? void 0 : _a.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"BODY\"\n )) || null;\n }\n get head() {\n var _a;\n return ((_a = this.documentElement) == null ? void 0 : _a.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HEAD\"\n )) || null;\n }\n get implementation() {\n return this;\n }\n get firstElementChild() {\n return this.documentElement;\n }\n appendChild(newChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = appendChild(this, newChild);\n child.parentElement = null;\n return child;\n }\n insertBefore(newChild, refChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = insertBefore(this, newChild, refChild);\n child.parentElement = null;\n return child;\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n open() {\n this.firstChild = null;\n this.lastChild = null;\n }\n close() {\n }\n /**\n * Adhoc implementation for setting xhtml namespace in rebuilt.ts (rrweb-snapshot).\n * There are two lines used this function:\n * 1. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\"\\>')\n * 2. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\"\\>')\n */\n write(content) {\n let publicId;\n if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">')\n publicId = \"-//W3C//DTD XHTML 1.0 Transitional//EN\";\n else if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">')\n publicId = \"-//W3C//DTD HTML 4.0 Transitional//EN\";\n if (publicId) {\n const doctype = this.createDocumentType(\"html\", publicId, \"\");\n this.open();\n this.appendChild(doctype);\n }\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new BaseRRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const doctype = new BaseRRDocumentType(qualifiedName, publicId, systemId);\n doctype.ownerDocument = this;\n return doctype;\n }\n createElement(tagName) {\n const element = new BaseRRElement(tagName);\n element.ownerDocument = this;\n return element;\n }\n createElementNS(_namespaceURI, qualifiedName) {\n return this.createElement(qualifiedName);\n }\n createTextNode(data) {\n const text = new BaseRRText(data);\n text.ownerDocument = this;\n return text;\n }\n createComment(data) {\n const comment2 = new BaseRRComment(data);\n comment2.ownerDocument = this;\n return comment2;\n }\n createCDATASection(data) {\n const CDATASection = new BaseRRCDATASection(data);\n CDATASection.ownerDocument = this;\n return CDATASection;\n }\n toString() {\n return \"RRDocument\";\n }\n}\nclass BaseRRDocumentType extends BaseRRNode {\n constructor(qualifiedName, publicId, systemId) {\n super();\n __publicField(this, \"nodeType\", 10);\n __publicField(this, \"RRNodeType\", NodeType$1.DocumentType);\n __publicField(this, \"name\");\n __publicField(this, \"publicId\");\n __publicField(this, \"systemId\");\n __publicField(this, \"textContent\", null);\n this.name = qualifiedName;\n this.publicId = publicId;\n this.systemId = systemId;\n this.nodeName = qualifiedName;\n }\n toString() {\n return \"RRDocumentType\";\n }\n}\nclass BaseRRElement extends BaseRRNode {\n constructor(tagName) {\n super();\n __publicField(this, \"nodeType\", 1);\n __publicField(this, \"RRNodeType\", NodeType$1.Element);\n __publicField(this, \"tagName\");\n __publicField(this, \"attributes\", {});\n __publicField(this, \"shadowRoot\", null);\n __publicField(this, \"scrollLeft\");\n __publicField(this, \"scrollTop\");\n this.tagName = tagName.toUpperCase();\n this.nodeName = tagName.toUpperCase();\n }\n get textContent() {\n let result2 = \"\";\n this.childNodes.forEach((node2) => result2 += node2.textContent);\n return result2;\n }\n set textContent(textContent) {\n this.firstChild = null;\n this.lastChild = null;\n this.appendChild(this.ownerDocument.createTextNode(textContent));\n }\n get classList() {\n return new ClassList(\n this.attributes.class,\n (newClassName) => {\n this.attributes.class = newClassName;\n }\n );\n }\n get id() {\n return this.attributes.id || \"\";\n }\n get className() {\n return this.attributes.class || \"\";\n }\n get style() {\n const style = this.attributes.style ? parseCSSText(this.attributes.style) : {};\n const hyphenateRE2 = /\\B([A-Z])/g;\n style.setProperty = (name, value, priority) => {\n if (hyphenateRE2.test(name)) return;\n const normalizedName = camelize(name);\n if (!value) delete style[normalizedName];\n else style[normalizedName] = value;\n if (priority === \"important\") style[normalizedName] += \" !important\";\n this.attributes.style = toCSSText(style);\n };\n style.removeProperty = (name) => {\n if (hyphenateRE2.test(name)) return \"\";\n const normalizedName = camelize(name);\n const value = style[normalizedName] || \"\";\n delete style[normalizedName];\n this.attributes.style = toCSSText(style);\n return value;\n };\n return style;\n }\n getAttribute(name) {\n if (this.attributes[name] === void 0) return null;\n return this.attributes[name];\n }\n setAttribute(name, attribute) {\n this.attributes[name] = attribute;\n }\n setAttributeNS(_namespace, qualifiedName, value) {\n this.setAttribute(qualifiedName, value);\n }\n removeAttribute(name) {\n delete this.attributes[name];\n }\n appendChild(newChild) {\n return appendChild(this, newChild);\n }\n insertBefore(newChild, refChild) {\n return insertBefore(this, newChild, refChild);\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n const shadowRoot = this.ownerDocument.createElement(\"SHADOWROOT\");\n this.shadowRoot = shadowRoot;\n return shadowRoot;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispatchEvent(_event) {\n return true;\n }\n toString() {\n let attributeString = \"\";\n for (const attribute in this.attributes) {\n attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\n }\n return `${this.tagName} ${attributeString}`;\n }\n}\nclass BaseRRMediaElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"currentTime\");\n __publicField(this, \"volume\");\n __publicField(this, \"paused\");\n __publicField(this, \"muted\");\n __publicField(this, \"playbackRate\");\n __publicField(this, \"loop\");\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n throw new Error(\n `RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`\n );\n }\n play() {\n this.paused = false;\n }\n pause() {\n this.paused = true;\n }\n}\nclass BaseRRDialogElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"tagName\", \"DIALOG\");\n __publicField(this, \"nodeName\", \"DIALOG\");\n }\n get isModal() {\n return this.getAttribute(\"rr_open_mode\") === \"modal\";\n }\n get open() {\n return this.getAttribute(\"open\") !== null;\n }\n close() {\n this.removeAttribute(\"open\");\n this.removeAttribute(\"rr_open_mode\");\n }\n show() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"non-modal\");\n }\n showModal() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"modal\");\n }\n}\nclass BaseRRText extends BaseRRNode {\n constructor(data) {\n super();\n __publicField(this, \"nodeType\", 3);\n __publicField(this, \"nodeName\", \"#text\");\n __publicField(this, \"RRNodeType\", NodeType$1.Text);\n __publicField(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRText text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRComment extends BaseRRNode {\n constructor(data) {\n super();\n __publicField(this, \"nodeType\", 8);\n __publicField(this, \"nodeName\", \"#comment\");\n __publicField(this, \"RRNodeType\", NodeType$1.Comment);\n __publicField(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRComment text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRCDATASection extends BaseRRNode {\n constructor(data) {\n super();\n __publicField(this, \"nodeName\", \"#cdata-section\");\n __publicField(this, \"nodeType\", 4);\n __publicField(this, \"RRNodeType\", NodeType$1.CDATA);\n __publicField(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent) {\n this.data = textContent;\n }\n toString() {\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\n }\n}\nclass ClassList {\n constructor(classText, onChange) {\n __publicField(this, \"onChange\");\n __publicField(this, \"classes\", []);\n __publicField(this, \"add\", (...classNames) => {\n for (const item of classNames) {\n const className = String(item);\n if (this.classes.indexOf(className) >= 0) continue;\n this.classes.push(className);\n }\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n __publicField(this, \"remove\", (...classNames) => {\n this.classes = this.classes.filter(\n (item) => classNames.indexOf(item) === -1\n );\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n if (classText) {\n const classes = classText.trim().split(/\\s+/);\n this.classes.push(...classes);\n }\n this.onChange = onChange;\n }\n}\nfunction appendChild(parent, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n if (parent.lastChild) {\n parent.lastChild.nextSibling = newChild;\n newChild.previousSibling = parent.lastChild;\n } else {\n parent.firstChild = newChild;\n newChild.previousSibling = null;\n }\n parent.lastChild = newChild;\n newChild.nextSibling = null;\n newChild.parentNode = parent;\n newChild.parentElement = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction insertBefore(parent, newChild, refChild) {\n if (!refChild) return appendChild(parent, newChild);\n if (refChild.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\"\n );\n if (newChild === refChild) return newChild;\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.previousSibling = refChild.previousSibling;\n refChild.previousSibling = newChild;\n newChild.nextSibling = refChild;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parent.firstChild = newChild;\n newChild.parentElement = parent;\n newChild.parentNode = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction removeChild(parent, child) {\n if (child.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\"\n );\n if (child.previousSibling)\n child.previousSibling.nextSibling = child.nextSibling;\n else parent.firstChild = child.nextSibling;\n if (child.nextSibling)\n child.nextSibling.previousSibling = child.previousSibling;\n else parent.lastChild = child.previousSibling;\n child.previousSibling = null;\n child.nextSibling = null;\n child.parentElement = null;\n child.parentNode = null;\n return child;\n}\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\n NodeType2[NodeType2[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType2[NodeType2[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\n NodeType2[NodeType2[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType2[NodeType2[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\n NodeType2[NodeType2[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\n NodeType2[NodeType2[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\n NodeType2[NodeType2[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\n NodeType2[NodeType2[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\n return NodeType2;\n})(NodeType || {});\nconst NAMESPACES = {\n svg: \"http://www.w3.org/2000/svg\",\n \"xlink:href\": \"http://www.w3.org/1999/xlink\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nconst SVGTagMap = {\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nlet createdNodeSet = null;\nfunction diff(oldTree, newTree, replayer, rrnodeMirror = newTree.mirror || newTree.ownerDocument.mirror) {\n oldTree = diffBeforeUpdatingChildren(\n oldTree,\n newTree,\n replayer,\n rrnodeMirror\n );\n diffChildren(oldTree, newTree, replayer, rrnodeMirror);\n diffAfterUpdatingChildren(oldTree, newTree, replayer);\n}\nfunction diffBeforeUpdatingChildren(oldTree, newTree, replayer, rrnodeMirror) {\n var _a;\n if (replayer.afterAppend && !createdNodeSet) {\n createdNodeSet = /* @__PURE__ */ new WeakSet();\n setTimeout(() => {\n createdNodeSet = null;\n }, 0);\n }\n if (!sameNodeType(oldTree, newTree)) {\n const calibratedOldTree = createOrGetNode(\n newTree,\n replayer.mirror,\n rrnodeMirror\n );\n (_a = oldTree.parentNode) == null ? void 0 : _a.replaceChild(calibratedOldTree, oldTree);\n oldTree = calibratedOldTree;\n }\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n if (!nodeMatching(oldTree, newTree, replayer.mirror, rrnodeMirror)) {\n const newMeta = rrnodeMirror.getMeta(newTree);\n if (newMeta) {\n replayer.mirror.removeNodeFromMap(oldTree);\n oldTree.close();\n oldTree.open();\n replayer.mirror.add(oldTree, newMeta);\n createdNodeSet == null ? void 0 : createdNodeSet.add(oldTree);\n }\n }\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n switch (newRRElement.tagName) {\n case \"IFRAME\": {\n const oldContentDocument = oldTree.contentDocument;\n if (!oldContentDocument) break;\n diff(\n oldContentDocument,\n newTree.contentDocument,\n replayer,\n rrnodeMirror\n );\n break;\n }\n }\n if (newRRElement.shadowRoot) {\n if (!oldElement.shadowRoot) oldElement.attachShadow({ mode: \"open\" });\n diffChildren(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n oldElement.shadowRoot,\n newRRElement.shadowRoot,\n replayer,\n rrnodeMirror\n );\n }\n diffProps(oldElement, newRRElement, rrnodeMirror);\n break;\n }\n }\n return oldTree;\n}\nfunction diffAfterUpdatingChildren(oldTree, newTree, replayer) {\n var _a;\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n const scrollData = newTree.scrollData;\n scrollData && replayer.applyScroll(scrollData, true);\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n newRRElement.scrollData && replayer.applyScroll(newRRElement.scrollData, true);\n newRRElement.inputData && replayer.applyInput(newRRElement.inputData);\n switch (newRRElement.tagName) {\n case \"AUDIO\":\n case \"VIDEO\": {\n const oldMediaElement = oldTree;\n const newMediaRRElement = newRRElement;\n if (newMediaRRElement.paused !== void 0)\n newMediaRRElement.paused ? void oldMediaElement.pause() : void oldMediaElement.play();\n if (newMediaRRElement.muted !== void 0)\n oldMediaElement.muted = newMediaRRElement.muted;\n if (newMediaRRElement.volume !== void 0)\n oldMediaElement.volume = newMediaRRElement.volume;\n if (newMediaRRElement.currentTime !== void 0)\n oldMediaElement.currentTime = newMediaRRElement.currentTime;\n if (newMediaRRElement.playbackRate !== void 0)\n oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\n if (newMediaRRElement.loop !== void 0)\n oldMediaElement.loop = newMediaRRElement.loop;\n break;\n }\n case \"CANVAS\": {\n const rrCanvasElement = newTree;\n if (rrCanvasElement.rr_dataURL !== null) {\n const image = document.createElement(\"img\");\n image.onload = () => {\n const ctx = oldElement.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = rrCanvasElement.rr_dataURL;\n }\n rrCanvasElement.canvasMutations.forEach(\n (canvasMutation) => replayer.applyCanvas(\n canvasMutation.event,\n canvasMutation.mutation,\n oldTree\n )\n );\n break;\n }\n case \"STYLE\": {\n const styleSheet = oldElement.sheet;\n styleSheet && newTree.rules.forEach(\n (data) => replayer.applyStyleSheetMutation(data, styleSheet)\n );\n break;\n }\n case \"DIALOG\": {\n const dialog = oldElement;\n const rrDialog = newRRElement;\n const wasOpen = dialog.open;\n const wasModal = dialog.matches(\"dialog:modal\");\n const shouldBeOpen = rrDialog.open;\n const shouldBeModal = rrDialog.isModal;\n const modalChanged = wasModal !== shouldBeModal;\n const openChanged = wasOpen !== shouldBeOpen;\n if (modalChanged || wasOpen && openChanged) dialog.close();\n if (shouldBeOpen && (openChanged || modalChanged)) {\n try {\n if (shouldBeModal) dialog.showModal();\n else dialog.show();\n } catch (e) {\n console.warn(e);\n }\n }\n break;\n }\n }\n break;\n }\n case NodeType$1.Text:\n case NodeType$1.Comment:\n case NodeType$1.CDATA: {\n if (oldTree.textContent !== newTree.data)\n oldTree.textContent = newTree.data;\n break;\n }\n }\n if (createdNodeSet == null ? void 0 : createdNodeSet.has(oldTree)) {\n createdNodeSet.delete(oldTree);\n (_a = replayer.afterAppend) == null ? void 0 : _a.call(replayer, oldTree, replayer.mirror.getId(oldTree));\n }\n}\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\n const oldAttributes = oldTree.attributes;\n const newAttributes = newTree.attributes;\n for (const name in newAttributes) {\n const newValue = newAttributes[name];\n const sn = rrnodeMirror.getMeta(newTree);\n if ((sn == null ? void 0 : sn.isSVG) && NAMESPACES[name])\n oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\n else if (newTree.tagName === \"CANVAS\" && name === \"rr_dataURL\") {\n const image = document.createElement(\"img\");\n image.src = newValue;\n image.onload = () => {\n const ctx = oldTree.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n } else if (newTree.tagName === \"IFRAME\" && name === \"srcdoc\") continue;\n else {\n try {\n oldTree.setAttribute(name, newValue);\n } catch (err) {\n console.warn(err);\n }\n }\n }\n for (const { name } of Array.from(oldAttributes))\n if (!(name in newAttributes)) oldTree.removeAttribute(name);\n newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\n newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\n}\nfunction diffChildren(oldTree, newTree, replayer, rrnodeMirror) {\n const oldChildren = Array.from(oldTree.childNodes);\n const newChildren = newTree.childNodes;\n if (oldChildren.length === 0 && newChildren.length === 0) return;\n let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\n let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\n let oldIdToIndex = void 0, indexInOld = void 0;\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\n if (oldStartNode === void 0) {\n oldStartNode = oldChildren[++oldStartIndex];\n } else if (oldEndNode === void 0) {\n oldEndNode = oldChildren[--oldEndIndex];\n } else if (\n // same first node?\n nodeMatching(oldStartNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n oldStartNode = oldChildren[++oldStartIndex];\n newStartNode = newChildren[++newStartIndex];\n } else if (\n // same last node?\n nodeMatching(oldEndNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n oldEndNode = oldChildren[--oldEndIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the first old node the same as the last new node?\n nodeMatching(oldStartNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldStartNode, oldEndNode.nextSibling);\n } catch (e) {\n console.warn(e);\n }\n oldStartNode = oldChildren[++oldStartIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the last old node the same as the first new node?\n nodeMatching(oldEndNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldEndNode, oldStartNode);\n } catch (e) {\n console.warn(e);\n }\n oldEndNode = oldChildren[--oldEndIndex];\n newStartNode = newChildren[++newStartIndex];\n } else {\n if (!oldIdToIndex) {\n oldIdToIndex = {};\n for (let i = oldStartIndex; i <= oldEndIndex; i++) {\n const oldChild2 = oldChildren[i];\n if (oldChild2 && replayer.mirror.hasNode(oldChild2))\n oldIdToIndex[replayer.mirror.getId(oldChild2)] = i;\n }\n }\n indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\n const nodeToMove = oldChildren[indexInOld];\n if (indexInOld !== void 0 && nodeToMove && nodeMatching(nodeToMove, newStartNode, replayer.mirror, rrnodeMirror)) {\n try {\n oldTree.insertBefore(nodeToMove, oldStartNode);\n } catch (e) {\n console.warn(e);\n }\n oldChildren[indexInOld] = void 0;\n } else {\n const newNode = createOrGetNode(\n newStartNode,\n replayer.mirror,\n rrnodeMirror\n );\n if (oldTree.nodeName === \"#document\" && oldStartNode && /**\n * Special case 1: one document isn't allowed to have two doctype nodes at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A parent document in the old tree already has a doctype node with an id e.g. #1. A new full snapshot rebuilds the replayer with a new doctype node with another id #2. According to the algorithm, the new doctype node will be inserted before the old one, which is not allowed by the Document standard.\n */\n (newNode.nodeType === newNode.DOCUMENT_TYPE_NODE && oldStartNode.nodeType === oldStartNode.DOCUMENT_TYPE_NODE || /**\n * Special case 2: one document isn't allowed to have two HTMLElements at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A mounted iframe element has an automatically created HTML element. We should delete it before inserting a serialized one. Otherwise, an error 'Only one element on document allowed' will be thrown.\n */\n newNode.nodeType === newNode.ELEMENT_NODE && oldStartNode.nodeType === oldStartNode.ELEMENT_NODE)) {\n oldTree.removeChild(oldStartNode);\n replayer.mirror.removeNodeFromMap(oldStartNode);\n oldStartNode = oldChildren[++oldStartIndex];\n }\n try {\n oldTree.insertBefore(newNode, oldStartNode || null);\n } catch (e) {\n console.warn(e);\n }\n }\n newStartNode = newChildren[++newStartIndex];\n }\n }\n if (oldStartIndex > oldEndIndex) {\n const referenceRRNode = newChildren[newEndIndex + 1];\n let referenceNode = null;\n if (referenceRRNode)\n referenceNode = replayer.mirror.getNode(\n rrnodeMirror.getId(referenceRRNode)\n );\n for (; newStartIndex <= newEndIndex; ++newStartIndex) {\n const newNode = createOrGetNode(\n newChildren[newStartIndex],\n replayer.mirror,\n rrnodeMirror\n );\n try {\n oldTree.insertBefore(newNode, referenceNode);\n } catch (e) {\n console.warn(e);\n }\n }\n } else if (newStartIndex > newEndIndex) {\n for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\n const node2 = oldChildren[oldStartIndex];\n if (!node2 || node2.parentNode !== oldTree) continue;\n try {\n oldTree.removeChild(node2);\n replayer.mirror.removeNodeFromMap(node2);\n } catch (e) {\n console.warn(e);\n }\n }\n }\n let oldChild = oldTree.firstChild;\n let newChild = newTree.firstChild;\n while (oldChild !== null && newChild !== null) {\n diff(oldChild, newChild, replayer, rrnodeMirror);\n oldChild = oldChild.nextSibling;\n newChild = newChild.nextSibling;\n }\n}\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\n const nodeId = rrnodeMirror.getId(rrNode);\n const sn = rrnodeMirror.getMeta(rrNode);\n let node2 = null;\n if (nodeId > -1) node2 = domMirror.getNode(nodeId);\n if (node2 !== null && sameNodeType(node2, rrNode)) return node2;\n switch (rrNode.RRNodeType) {\n case NodeType$1.Document:\n node2 = new Document();\n break;\n case NodeType$1.DocumentType:\n node2 = document.implementation.createDocumentType(\n rrNode.name,\n rrNode.publicId,\n rrNode.systemId\n );\n break;\n case NodeType$1.Element: {\n let tagName = rrNode.tagName.toLowerCase();\n tagName = SVGTagMap[tagName] || tagName;\n if (sn && \"isSVG\" in sn && (sn == null ? void 0 : sn.isSVG)) {\n node2 = document.createElementNS(NAMESPACES[\"svg\"], tagName);\n } else node2 = document.createElement(rrNode.tagName);\n break;\n }\n case NodeType$1.Text:\n node2 = document.createTextNode(rrNode.data);\n break;\n case NodeType$1.Comment:\n node2 = document.createComment(rrNode.data);\n break;\n case NodeType$1.CDATA:\n node2 = document.createCDATASection(rrNode.data);\n break;\n }\n if (sn) domMirror.add(node2, { ...sn });\n try {\n createdNodeSet == null ? void 0 : createdNodeSet.add(node2);\n } catch (e) {\n }\n return node2;\n}\nfunction sameNodeType(node1, node2) {\n if (node1.nodeType !== node2.nodeType) return false;\n return node1.nodeType !== node1.ELEMENT_NODE || node1.tagName.toUpperCase() === node2.tagName;\n}\nfunction nodeMatching(node1, node2, domMirror, rrdomMirror) {\n const node1Id = domMirror.getId(node1);\n const node2Id = rrdomMirror.getId(node2);\n if (node1Id === -1 || node1Id !== node2Id) return false;\n return sameNodeType(node1, node2);\n}\nclass RRDocument extends BaseRRDocument {\n constructor(mirror) {\n super();\n __publicField(this, \"UNSERIALIZED_STARTING_ID\", -2);\n // In the rrweb replayer, there are some unserialized nodes like the element that stores the injected style rules.\n // These unserialized nodes may interfere the execution of the diff algorithm.\n // The id of serialized node is larger than 0. So this value less than 0 is used as id for these unserialized nodes.\n __publicField(this, \"_unserializedId\", this.UNSERIALIZED_STARTING_ID);\n __publicField(this, \"mirror\", createMirror());\n __publicField(this, \"scrollData\", null);\n if (mirror) {\n this.mirror = mirror;\n }\n }\n /**\n * Every time the id is used, it will minus 1 automatically to avoid collisions.\n */\n get unserializedId() {\n return this._unserializedId--;\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new RRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const documentTypeNode = new RRDocumentType(\n qualifiedName,\n publicId,\n systemId\n );\n documentTypeNode.ownerDocument = this;\n return documentTypeNode;\n }\n createElement(tagName) {\n const upperTagName = tagName.toUpperCase();\n let element;\n switch (upperTagName) {\n case \"AUDIO\":\n case \"VIDEO\":\n element = new RRMediaElement(upperTagName);\n break;\n case \"IFRAME\":\n element = new RRIFrameElement(upperTagName, this.mirror);\n break;\n case \"CANVAS\":\n element = new RRCanvasElement(upperTagName);\n break;\n case \"STYLE\":\n element = new RRStyleElement(upperTagName);\n break;\n case \"DIALOG\":\n element = new RRDialogElement(upperTagName);\n break;\n default:\n element = new RRElement(upperTagName);\n break;\n }\n element.ownerDocument = this;\n return element;\n }\n createComment(data) {\n const commentNode = new RRComment(data);\n commentNode.ownerDocument = this;\n return commentNode;\n }\n createCDATASection(data) {\n const sectionNode = new RRCDATASection(data);\n sectionNode.ownerDocument = this;\n return sectionNode;\n }\n createTextNode(data) {\n const textNode = new RRText(data);\n textNode.ownerDocument = this;\n return textNode;\n }\n destroyTree() {\n this.firstChild = null;\n this.lastChild = null;\n this.mirror.reset();\n }\n open() {\n super.open();\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\n }\n}\nconst RRDocumentType = BaseRRDocumentType;\nclass RRElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"inputData\", null);\n __publicField(this, \"scrollData\", null);\n }\n}\nclass RRMediaElement extends BaseRRMediaElement {\n}\nclass RRDialogElement extends BaseRRDialogElement {\n}\nclass RRCanvasElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"rr_dataURL\", null);\n __publicField(this, \"canvasMutations\", []);\n }\n /**\n * This is a dummy implementation to distinguish RRCanvasElement from real HTMLCanvasElement.\n */\n getContext() {\n return null;\n }\n}\nclass RRStyleElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"rules\", []);\n }\n}\nclass RRIFrameElement extends RRElement {\n constructor(upperTagName, mirror) {\n super(upperTagName);\n __publicField(this, \"contentDocument\", new RRDocument());\n this.contentDocument.mirror = mirror;\n }\n}\nconst RRText = BaseRRText;\nconst RRComment = BaseRRComment;\nconst RRCDATASection = BaseRRCDATASection;\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return \"FORM\";\n }\n return element.tagName.toUpperCase();\n}\nfunction buildFromNode(node2, rrdom, domMirror, parentRRNode) {\n let rrNode;\n switch (node2.nodeType) {\n case NodeType.DOCUMENT_NODE:\n if (parentRRNode && parentRRNode.nodeName === \"IFRAME\")\n rrNode = parentRRNode.contentDocument;\n else {\n rrNode = rrdom;\n rrNode.compatMode = node2.compatMode;\n }\n break;\n case NodeType.DOCUMENT_TYPE_NODE: {\n const documentType = node2;\n rrNode = rrdom.createDocumentType(\n documentType.name,\n documentType.publicId,\n documentType.systemId\n );\n break;\n }\n case NodeType.ELEMENT_NODE: {\n const elementNode = node2;\n const tagName = getValidTagName(elementNode);\n rrNode = rrdom.createElement(tagName);\n const rrElement = rrNode;\n for (const { name, value } of Array.from(elementNode.attributes)) {\n rrElement.attributes[name] = value;\n }\n elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\n elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\n break;\n }\n case NodeType.TEXT_NODE:\n rrNode = rrdom.createTextNode(node2.textContent || \"\");\n break;\n case NodeType.CDATA_SECTION_NODE:\n rrNode = rrdom.createCDATASection(node2.data);\n break;\n case NodeType.COMMENT_NODE:\n rrNode = rrdom.createComment(node2.textContent || \"\");\n break;\n case NodeType.DOCUMENT_FRAGMENT_NODE:\n rrNode = parentRRNode.attachShadow({ mode: \"open\" });\n break;\n default:\n return null;\n }\n let sn = domMirror.getMeta(node2);\n if (rrdom instanceof RRDocument) {\n if (!sn) {\n sn = getDefaultSN(rrNode, rrdom.unserializedId);\n domMirror.add(node2, sn);\n }\n rrdom.mirror.add(rrNode, { ...sn });\n }\n return rrNode;\n}\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\n function walk2(node2, parentRRNode) {\n const rrNode = buildFromNode(node2, rrdom, domMirror, parentRRNode);\n if (rrNode === null) return;\n if (\n // if the parentRRNode isn't a RRIFrameElement\n (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"IFRAME\" && // if node isn't a shadow root\n node2.nodeType !== NodeType.DOCUMENT_FRAGMENT_NODE\n ) {\n parentRRNode == null ? void 0 : parentRRNode.appendChild(rrNode);\n rrNode.parentNode = parentRRNode;\n rrNode.parentElement = parentRRNode;\n }\n if (node2.nodeName === \"IFRAME\") {\n const iframeDoc = node2.contentDocument;\n iframeDoc && walk2(iframeDoc, rrNode);\n } else if (node2.nodeType === NodeType.DOCUMENT_NODE || node2.nodeType === NodeType.ELEMENT_NODE || node2.nodeType === NodeType.DOCUMENT_FRAGMENT_NODE) {\n if (node2.nodeType === NodeType.ELEMENT_NODE && node2.shadowRoot)\n walk2(node2.shadowRoot, rrNode);\n node2.childNodes.forEach((childNode) => walk2(childNode, rrNode));\n }\n }\n walk2(dom, null);\n return rrdom;\n}\nfunction createMirror() {\n return new Mirror2();\n}\nclass Mirror2 {\n constructor() {\n __publicField(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n) {\n var _a;\n if (!n) return -1;\n const id = (_a = this.getMeta(n)) == null ? void 0 : _a.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction getDefaultSN(node2, id) {\n switch (node2.RRNodeType) {\n case NodeType$1.Document:\n return {\n id,\n type: node2.RRNodeType,\n childNodes: []\n };\n case NodeType$1.DocumentType: {\n const doctype = node2;\n return {\n id,\n type: node2.RRNodeType,\n name: doctype.name,\n publicId: doctype.publicId,\n systemId: doctype.systemId\n };\n }\n case NodeType$1.Element:\n return {\n id,\n type: node2.RRNodeType,\n tagName: node2.tagName.toLowerCase(),\n // In rrweb data, all tagNames are lowercase.\n attributes: {},\n childNodes: []\n };\n case NodeType$1.Text:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.Comment:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.CDATA:\n return {\n id,\n type: node2.RRNodeType,\n textContent: \"\"\n };\n }\n}\nfunction printRRDom(rootNode, mirror) {\n return walk(rootNode, mirror, \"\");\n}\nfunction walk(node2, mirror, blankSpace) {\n let printText = `${blankSpace}${mirror.getId(node2)} ${node2.toString()}\n`;\n if (node2.RRNodeType === NodeType$1.Element) {\n const element = node2;\n if (element.shadowRoot)\n printText += walk(element.shadowRoot, mirror, blankSpace + \" \");\n }\n for (const child of node2.childNodes)\n printText += walk(child, mirror, blankSpace + \" \");\n if (node2.nodeName === \"IFRAME\")\n printText += walk(\n node2.contentDocument,\n mirror,\n blankSpace + \" \"\n );\n return printText;\n}\nexport {\n BaseRRCDATASection,\n BaseRRComment,\n BaseRRDialogElement,\n BaseRRDocument,\n BaseRRDocumentType,\n BaseRRElement,\n BaseRRMediaElement,\n BaseRRNode,\n BaseRRText,\n ClassList,\n Mirror2 as Mirror,\n NodeType,\n RRCDATASection,\n RRCanvasElement,\n RRComment,\n RRDialogElement,\n RRDocument,\n RRDocumentType,\n RRElement,\n RRIFrameElement,\n RRMediaElement,\n BaseRRNode as RRNode,\n RRStyleElement,\n RRText,\n buildFromDom,\n buildFromNode,\n createMirror,\n createOrGetNode,\n diff,\n getDefaultSN,\n printRRDom\n};\n//# sourceMappingURL=rrdom.js.map\n","const testableAccessors = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\",\n \"ownerDocument\"\n ],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nconst isAngularZonePresent = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a, _b;\n return Boolean(\n (_b = (_a = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods ? testableMethods[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a;\n return typeof defaultPrototype[method] === \"function\" && ((_a = defaultPrototype[method]) == null ? void 0 : _a.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n untaintedBasePrototype[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache[cacheKey])\n return untaintedAccessorCache[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedAccessor = (_a = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction ownerDocument(n) {\n return getUntaintedAccessor(\"Node\", n, \"ownerDocument\");\n}\nfunction childNodes(n) {\n return getUntaintedAccessor(\"Node\", n, \"childNodes\");\n}\nfunction parentNode(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentNode\");\n}\nfunction parentElement(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentElement\");\n}\nfunction textContent(n) {\n return getUntaintedAccessor(\"Node\", n, \"textContent\");\n}\nfunction contains(n, other) {\n return getUntaintedMethod(\"Node\", n, \"contains\")(other);\n}\nfunction getRootNode(n) {\n return getUntaintedMethod(\"Node\", n, \"getRootNode\")();\n}\nfunction host(n) {\n if (!n || !(\"host\" in n)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n, \"host\");\n}\nfunction styleSheets(n) {\n return n.styleSheets;\n}\nfunction shadowRoot(n) {\n if (!n || !(\"shadowRoot\" in n)) return null;\n return getUntaintedAccessor(\"Element\", n, \"shadowRoot\");\n}\nfunction querySelector(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nconst index = {\n ownerDocument,\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch\n};\nexport {\n childNodes,\n contains,\n index as default,\n getRootNode,\n getUntaintedAccessor,\n getUntaintedMethod,\n getUntaintedPrototype,\n host,\n isAngularZonePresent,\n mutationObserverCtor,\n ownerDocument,\n parentElement,\n parentNode,\n patch,\n querySelector,\n querySelectorAll,\n shadowRoot,\n styleSheets,\n textContent\n};\n//# sourceMappingURL=utils.js.map\n","import type {\n throttleOptions,\n listenerHandler,\n hookResetter,\n blockClass,\n addedNodeMutation,\n DocumentDimension,\n IWindow,\n DeprecatedMirror,\n textMutation,\n IMirror,\n} from '@rrweb/types';\nimport type { Mirror, SlimDOMOptions } from 'rrweb-snapshot';\nimport { isShadowRoot, IGNORED_NODE, classMatchesRegex } from 'rrweb-snapshot';\nimport { RRNode, RRIFrameElement, BaseRRNode } from 'rrdom';\nimport dom from '@rrweb/utils';\n\nexport function on(\n type: string,\n fn: EventListenerOrEventListenerObject,\n target: Document | IWindow = document,\n): listenerHandler {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\n\n// https://github.com/rrweb-io/rrweb/pull/407\nconst DEPARTED_MIRROR_ACCESS_WARNING =\n 'Please stop import mirror directly. Instead of that,' +\n '\\r\\n' +\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\n '\\r\\n' +\n 'or you can use record.mirror to access the mirror instance during recording.';\n/** @deprecated */\nexport let _mirror: DeprecatedMirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n};\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === 'map') {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\n// copy from underscore and modified\nexport function throttle<T>(\n func: (arg: T) => void,\n wait: number,\n options: throttleOptions = {},\n) {\n let timeout: ReturnType<typeof setTimeout> | null = null;\n let previous = 0;\n return function (...args: T[]) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-this-alias\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\n\nexport function hookSetter<T>(\n target: T,\n key: string | number | symbol,\n d: PropertyDescriptor,\n isRevoked?: boolean,\n win = window,\n): hookResetter {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked\n ? d\n : {\n set(value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(() => {\n d.set!.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n },\n },\n );\n return () => hookSetter(target, key, original || {}, true);\n}\n\n// guard against old third party libraries which redefine Date.now\nlet nowTimestamp = Date.now;\n\nif (!(/*@__PURE__*/ /[1-9][0-9]{12}/.test(Date.now().toString()))) {\n // they have already redefined it! use a fallback\n nowTimestamp = () => new Date().getTime();\n}\nexport { nowTimestamp };\n\nexport function getWindowScroll(win: Window) {\n const doc = win.document;\n return {\n left: doc.scrollingElement\n ? doc.scrollingElement.scrollLeft\n : win.pageXOffset !== undefined\n ? win.pageXOffset\n : doc.documentElement.scrollLeft ||\n (doc?.body && dom.parentElement(doc.body)?.scrollLeft) ||\n doc?.body?.scrollLeft ||\n 0,\n top: doc.scrollingElement\n ? doc.scrollingElement.scrollTop\n : win.pageYOffset !== undefined\n ? win.pageYOffset\n : doc?.documentElement.scrollTop ||\n (doc?.body && dom.parentElement(doc.body)?.scrollTop) ||\n doc?.body?.scrollTop ||\n 0,\n };\n}\n\nexport function getWindowHeight(): number {\n return (\n window.innerHeight ||\n (document.documentElement && document.documentElement.clientHeight) ||\n (document.body && document.body.clientHeight)\n );\n}\n\nexport function getWindowWidth(): number {\n return (\n window.innerWidth ||\n (document.documentElement && document.documentElement.clientWidth) ||\n (document.body && document.body.clientWidth)\n );\n}\n\n/**\n * Returns the given node as an HTMLElement if it is one, otherwise the parent node as an HTMLElement\n * @param node - node to check\n * @returns HTMLElement or null\n */\n\nexport function closestElementOfNode(node: Node | null): HTMLElement | null {\n if (!node) {\n return null;\n }\n const el: HTMLElement | null =\n node.nodeType === node.ELEMENT_NODE\n ? (node as HTMLElement)\n : dom.parentElement(node);\n return el;\n}\n\n/**\n * Checks if the given element set to be blocked by rrweb\n * @param node - node to check\n * @param blockClass - class name to check\n * @param blockSelector - css selectors to check\n * @param checkAncestors - whether to search through parent nodes for the block class\n * @returns true/false if the node was blocked or not\n */\nexport function isBlocked(\n node: Node | null,\n blockClass: blockClass,\n blockSelector: string | null,\n checkAncestors: boolean,\n): boolean {\n if (!node) {\n return false;\n }\n const el = closestElementOfNode(node);\n\n if (!el) {\n return false;\n }\n\n try {\n if (typeof blockClass === 'string') {\n if (el.classList.contains(blockClass)) return true;\n if (checkAncestors && el.closest('.' + blockClass) !== null) return true;\n } else {\n if (classMatchesRegex(el, blockClass, checkAncestors)) return true;\n }\n } catch (e) {\n // e\n }\n if (blockSelector) {\n if (el.matches(blockSelector)) return true;\n if (checkAncestors && el.closest(blockSelector) !== null) return true;\n }\n return false;\n}\n\nexport function isSerialized(n: Node, mirror: Mirror): boolean {\n return mirror.getId(n) !== -1;\n}\n\nexport function isIgnored(\n n: Node,\n mirror: Mirror,\n slimDOMOptions: SlimDOMOptions,\n): boolean {\n if ((n as Element).tagName === 'TITLE' && slimDOMOptions.headTitleMutations) {\n // we do this check here but not in rrweb-snapshot\n // to block mutations/animations on the title.\n // the headTitleMutations option isn't intended to block recording of the initial value\n return true;\n }\n // The main part of the slimDOM check happens in\n // rrweb-snapshot::serializeNodeWithId\n return mirror.getId(n) === IGNORED_NODE;\n}\n\nexport function isAncestorRemoved(target: Node, mirror: Mirror): boolean {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror.getId(target);\n if (!mirror.has(id)) {\n return true;\n }\n const parent = dom.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n // if the root is not document, it means the node is not in the DOM tree anymore\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, mirror);\n}\n\nexport function legacy_isTouchEvent(\n event: MouseEvent | TouchEvent | PointerEvent,\n): event is TouchEvent {\n return Boolean((event as TouchEvent).changedTouches);\n}\n\nexport function polyfill(win = window) {\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n win.NodeList.prototype.forEach = Array.prototype\n .forEach as unknown as NodeList['forEach'];\n }\n\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n win.DOMTokenList.prototype.forEach = Array.prototype\n .forEach as unknown as DOMTokenList['forEach'];\n }\n}\n\ntype ResolveTree = {\n value: addedNodeMutation;\n children: ResolveTree[];\n parent: ResolveTree | null;\n};\n\nexport function queueToResolveTrees(queue: addedNodeMutation[]): ResolveTree[] {\n const queueNodeMap: Record<number, ResolveTree> = {};\n const putIntoMap = (\n m: addedNodeMutation,\n parent: ResolveTree | null,\n ): ResolveTree => {\n const nodeInTree: ResolveTree = {\n value: m,\n parent,\n children: [],\n };\n queueNodeMap[m.node.id] = nodeInTree;\n return nodeInTree;\n };\n\n const queueNodeTrees: ResolveTree[] = [];\n for (const mutation of queue) {\n const { nextId, parentId } = mutation;\n if (nextId && nextId in queueNodeMap) {\n const nextInTree = queueNodeMap[nextId];\n if (nextInTree.parent) {\n const idx = nextInTree.parent.children.indexOf(nextInTree);\n nextInTree.parent.children.splice(\n idx,\n 0,\n putIntoMap(mutation, nextInTree.parent),\n );\n } else {\n const idx = queueNodeTrees.indexOf(nextInTree);\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\n }\n continue;\n }\n if (parentId in queueNodeMap) {\n const parentInTree = queueNodeMap[parentId];\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\n continue;\n }\n queueNodeTrees.push(putIntoMap(mutation, null));\n }\n\n return queueNodeTrees;\n}\n\nexport function iterateResolveTree(\n tree: ResolveTree,\n cb: (mutation: addedNodeMutation) => unknown,\n) {\n cb(tree.value);\n /**\n * The resolve tree was designed to reflect the DOM layout,\n * but we need append next sibling first, so we do a reverse\n * loop here.\n */\n for (let i = tree.children.length - 1; i >= 0; i--) {\n iterateResolveTree(tree.children[i], cb);\n }\n}\n\nexport type AppendedIframe = {\n mutationInQueue: addedNodeMutation;\n builtNode: HTMLIFrameElement | RRIFrameElement;\n};\n\nexport function isSerializedIframe<TNode extends Node | RRNode>(\n n: TNode,\n mirror: IMirror<TNode>,\n): boolean {\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\n}\n\nexport function isSerializedStylesheet<TNode extends Node | RRNode>(\n n: TNode,\n mirror: IMirror<TNode>,\n): boolean {\n return Boolean(\n n.nodeName === 'LINK' &&\n n.nodeType === n.ELEMENT_NODE &&\n (n as HTMLElement).getAttribute &&\n (n as HTMLElement).getAttribute('rel') === 'stylesheet' &&\n mirror.getMeta(n),\n );\n}\n\nexport function getBaseDimension(\n node: Node,\n rootIframe: Node,\n): DocumentDimension {\n const frameElement = node.ownerDocument?.defaultView?.frameElement;\n if (!frameElement || frameElement === rootIframe) {\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1,\n };\n }\n\n const frameDimension = frameElement.getBoundingClientRect();\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\n // the iframe element may have a scale transform\n const relativeScale = frameDimension.height / frameElement.clientHeight;\n return {\n x:\n frameDimension.x * frameBaseDimension.relativeScale +\n frameBaseDimension.x,\n y:\n frameDimension.y * frameBaseDimension.relativeScale +\n frameBaseDimension.y,\n relativeScale,\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\n };\n}\n\nexport function hasShadowRoot<T extends Node | RRNode>(\n n: T,\n): n is T & { shadowRoot: ShadowRoot } {\n if (!n) return false;\n if (n instanceof BaseRRNode && 'shadowRoot' in n) {\n return Boolean(n.shadowRoot);\n }\n return Boolean(dom.shadowRoot(n as unknown as Element));\n}\n\nexport function getNestedRule(\n rules: CSSRuleList,\n position: number[],\n): CSSGroupingRule {\n const rule = rules[position[0]] as CSSGroupingRule;\n if (position.length === 1) {\n return rule;\n } else {\n return getNestedRule(\n (rule.cssRules[position[1]] as CSSGroupingRule).cssRules,\n position.slice(2),\n );\n }\n}\n\nexport function getPositionsAndIndex(nestedIndex: number[]) {\n const positions = [...nestedIndex];\n const index = positions.pop();\n return { positions, index };\n}\n\n/**\n * Returns the latest mutation in the queue for each node.\n * @param mutations - mutations The text mutations to filter.\n * @returns The filtered text mutations.\n */\nexport function uniqueTextMutations(mutations: textMutation[]): textMutation[] {\n const idSet = new Set<number>();\n const uniqueMutations: textMutation[] = [];\n\n for (let i = mutations.length; i--; ) {\n const mutation = mutations[i];\n if (!idSet.has(mutation.id)) {\n uniqueMutations.push(mutation);\n idSet.add(mutation.id);\n }\n }\n\n return uniqueMutations;\n}\n\nexport class StyleSheetMirror {\n private id = 1;\n private styleIDMap = new WeakMap<CSSStyleSheet, number>();\n private idStyleMap = new Map<number, CSSStyleSheet>();\n\n getId(stylesheet: CSSStyleSheet): number {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n\n has(stylesheet: CSSStyleSheet): boolean {\n return this.styleIDMap.has(stylesheet);\n }\n\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(stylesheet: CSSStyleSheet, id?: number): number {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n let newId: number;\n if (id === undefined) {\n newId = this.id++;\n } else newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n\n getStyle(id: number): CSSStyleSheet | null {\n return this.idStyleMap.get(id) || null;\n }\n\n reset(): void {\n this.styleIDMap = new WeakMap();\n this.idStyleMap = new Map();\n this.id = 1;\n }\n\n generateId(): number {\n return this.id++;\n }\n}\n\n/**\n * Get the direct shadow host of a node in shadow dom. Returns null if it is not in a shadow dom.\n */\nexport function getShadowHost(n: Node): Element | null {\n let shadowHost: Element | null = null;\n if (\n 'getRootNode' in n &&\n dom.getRootNode(n)?.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&\n dom.host(dom.getRootNode(n) as ShadowRoot)\n )\n shadowHost = dom.host(dom.getRootNode(n) as ShadowRoot);\n return shadowHost;\n}\n\n/**\n * Get the root shadow host of a node in nested shadow doms. Returns the node itself if it is not in a shadow dom.\n */\nexport function getRootShadowHost(n: Node): Node {\n let rootShadowHost: Node = n;\n\n let shadowHost: Element | null;\n // If n is in a nested shadow dom.\n while ((shadowHost = getShadowHost(rootShadowHost)))\n rootShadowHost = shadowHost;\n\n return rootShadowHost;\n}\n\nexport function shadowHostInDom(n: Node): boolean {\n const doc = dom.ownerDocument(n);\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n);\n return dom.contains(doc, shadowHost);\n}\n\nexport function inDom(n: Node): boolean {\n const doc = dom.ownerDocument(n);\n if (!doc) return false;\n return dom.contains(doc, n) || shadowHostInDom(n);\n}\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 MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n})(MediaInteractions || {});\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 || {});\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType || {});\nexport {\n CanvasContext,\n EventType,\n IncrementalSource,\n MediaInteractions,\n MouseInteractions,\n NodeType,\n PointerTypes,\n ReplayerEvents\n};\n//# sourceMappingURL=types.js.map\n","import {\n serializeNodeWithId,\n transformAttribute,\n IGNORED_NODE,\n ignoreAttribute,\n isShadowRoot,\n needMaskingText,\n maskInputValue,\n Mirror,\n isNativeShadowDom,\n getInputType,\n toLowerCase,\n} from 'rrweb-snapshot';\nimport type { observerParam, MutationBufferParam } from '../types';\nimport type {\n mutationRecord,\n textCursor,\n attributeCursor,\n removedNodeMutation,\n addedNodeMutation,\n Optional,\n} from '@rrweb/types';\nimport {\n isBlocked,\n isAncestorRemoved,\n isIgnored,\n isSerialized,\n hasShadowRoot,\n isSerializedIframe,\n isSerializedStylesheet,\n inDom,\n getShadowHost,\n closestElementOfNode,\n} from '../utils';\nimport dom from '@rrweb/utils';\n\ntype DoubleLinkedListNode = {\n previous: DoubleLinkedListNode | null;\n next: DoubleLinkedListNode | null;\n value: NodeInLinkedList;\n};\ntype NodeInLinkedList = Node & {\n __ln: DoubleLinkedListNode;\n};\n\nfunction isNodeInLinkedList(n: Node | NodeInLinkedList): n is NodeInLinkedList {\n return '__ln' in n;\n}\n\nclass DoubleLinkedList {\n public length = 0;\n public head: DoubleLinkedListNode | null = null;\n public tail: DoubleLinkedListNode | null = null;\n\n public get(position: number) {\n if (position >= this.length) {\n throw new Error('Position outside of list range');\n }\n\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = current?.next || null;\n }\n return current;\n }\n\n public addNode(n: Node) {\n const node: DoubleLinkedListNode = {\n value: n as NodeInLinkedList,\n previous: null,\n next: null,\n };\n (n as NodeInLinkedList).__ln = node;\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\n const current = n.previousSibling.__ln.next;\n node.next = current;\n node.previous = n.previousSibling.__ln;\n n.previousSibling.__ln.next = node;\n if (current) {\n current.previous = node;\n }\n } else if (\n n.nextSibling &&\n isNodeInLinkedList(n.nextSibling) &&\n n.nextSibling.__ln.previous\n ) {\n const current = n.nextSibling.__ln.previous;\n node.previous = current;\n node.next = n.nextSibling.__ln;\n n.nextSibling.__ln.previous = node;\n if (current) {\n current.next = node;\n }\n } else {\n if (this.head) {\n this.head.previous = node;\n }\n node.next = this.head;\n this.head = node;\n }\n if (node.next === null) {\n this.tail = node;\n }\n this.length++;\n }\n\n public removeNode(n: NodeInLinkedList) {\n const current = n.__ln;\n if (!this.head) {\n return;\n }\n\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n } else {\n this.tail = null;\n }\n } else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n } else {\n this.tail = current.previous;\n }\n }\n if (n.__ln) {\n delete (n as Optional<NodeInLinkedList, '__ln'>).__ln;\n }\n this.length--;\n }\n}\n\nconst moveKey = (id: number, parentId: number) => `${id}@${parentId}`;\n\n/**\n * controls behaviour of a MutationObserver\n */\nexport default class MutationBuffer {\n private frozen = false;\n private locked = false;\n\n private texts: textCursor[] = [];\n private attributes: attributeCursor[] = [];\n private attributeMap = new WeakMap<Node, attributeCursor>();\n private removes: removedNodeMutation[] = [];\n private mapRemoves: Node[] = [];\n\n private movedMap: Record<string, true> = {};\n\n /**\n * the browser MutationObserver emits multiple mutations after\n * a delay for performance reasons, making tracing added nodes hard\n * in our `processMutations` callback function.\n * For example, if we append an element el_1 into body, and then append\n * another element el_2 into el_1, these two mutations may be passed to the\n * callback function together when the two operations were done.\n * Generally we need to trace child nodes of newly added nodes, but in this\n * case if we count el_2 as el_1's child node in the first mutation record,\n * then we will count el_2 again in the second mutation record which was\n * duplicated.\n * To avoid of duplicate counting added nodes, we use a Set to store\n * added nodes and its child nodes during iterate mutation records. Then\n * collect added nodes from the Set which have no duplicate copy. But\n * this also causes newly added nodes will not be serialized with id ASAP,\n * which means all the id related calculation should be lazy too.\n */\n private addedSet = new Set<Node>();\n private movedSet = new Set<Node>();\n private droppedSet = new Set<Node>();\n private removesSubTreeCache = new Set<Node>();\n\n private mutationCb: observerParam['mutationCb'];\n private blockClass: observerParam['blockClass'];\n private blockSelector: observerParam['blockSelector'];\n private maskTextClass: observerParam['maskTextClass'];\n private maskTextSelector: observerParam['maskTextSelector'];\n private inlineStylesheet: observerParam['inlineStylesheet'];\n private maskInputOptions: observerParam['maskInputOptions'];\n private maskTextFn: observerParam['maskTextFn'];\n private maskInputFn: observerParam['maskInputFn'];\n private keepIframeSrcFn: observerParam['keepIframeSrcFn'];\n private recordCanvas: observerParam['recordCanvas'];\n private inlineImages: observerParam['inlineImages'];\n private slimDOMOptions: observerParam['slimDOMOptions'];\n private dataURLOptions: observerParam['dataURLOptions'];\n private doc: observerParam['doc'];\n private mirror: observerParam['mirror'];\n private iframeManager: observerParam['iframeManager'];\n private stylesheetManager: observerParam['stylesheetManager'];\n private shadowDomManager: observerParam['shadowDomManager'];\n private canvasManager: observerParam['canvasManager'];\n private processedNodeManager: observerParam['processedNodeManager'];\n private unattachedDoc: HTMLDocument;\n\n public init(options: MutationBufferParam) {\n (\n [\n 'mutationCb',\n 'blockClass',\n 'blockSelector',\n 'maskTextClass',\n 'maskTextSelector',\n 'inlineStylesheet',\n 'maskInputOptions',\n 'maskTextFn',\n 'maskInputFn',\n 'keepIframeSrcFn',\n 'recordCanvas',\n 'inlineImages',\n 'slimDOMOptions',\n 'dataURLOptions',\n 'doc',\n 'mirror',\n 'iframeManager',\n 'stylesheetManager',\n 'shadowDomManager',\n 'canvasManager',\n 'processedNodeManager',\n ] as const\n ).forEach((key) => {\n // just a type trick, the runtime result is correct\n this[key] = options[key] as never;\n });\n }\n\n public freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n\n public unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n\n public isFrozen() {\n return this.frozen;\n }\n\n public lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n\n public unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n\n public reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n\n public processMutations = (mutations: mutationRecord[]) => {\n mutations.forEach(this.processMutation); // adds mutations to the buffer\n this.emit(); // clears buffer if not locked/frozen\n };\n\n public emit = () => {\n if (this.frozen || this.locked) {\n return;\n }\n\n // delay any modification of the mirror until this function\n // so that the mirror for takeFullSnapshot doesn't get mutated while it's event is being processed\n\n const adds: addedNodeMutation[] = [];\n const addedIds = new Set<number>();\n\n /**\n * Sometimes child node may be pushed before its newly added\n * parent, so we init a queue to store these nodes.\n */\n const addList = new DoubleLinkedList();\n const getNextId = (n: Node): number | null => {\n let ns: Node | null = n;\n let nextId: number | null = IGNORED_NODE; // slimDOM: ignored\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n: Node) => {\n const parent = dom.parentNode(n);\n if (!parent || !inDom(n)) {\n return;\n }\n let cssCaptured = false;\n if (n.nodeType === Node.TEXT_NODE) {\n const parentTag = (parent as Element).tagName;\n if (parentTag === 'TEXTAREA') {\n // genTextAreaValueMutation already called via parent\n return;\n } else if (parentTag === 'STYLE' && this.addedSet.has(parent)) {\n // css content will be recorded via parent's _cssText attribute when\n // mutation adds entire <style> element\n cssCaptured = true;\n }\n }\n\n const parentId = isShadowRoot(parent)\n ? this.mirror.getId(getShadowHost(n))\n : this.mirror.getId(parent);\n\n const nextId = getNextId(n);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n);\n }\n const sn = serializeNodeWithId(n, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskTextClass: this.maskTextClass,\n maskTextSelector: this.maskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror)) {\n this.iframeManager.addIframe(currentN as HTMLIFrameElement);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(\n currentN as HTMLLinkElement,\n );\n }\n if (hasShadowRoot(n)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.shadowDomManager.addShadowRoot(dom.shadowRoot(n)!, this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n this.iframeManager.attachIframe(iframe, childSn);\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n cssCaptured,\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn,\n });\n addedIds.add(sn.id);\n }\n };\n\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift()!);\n }\n\n for (const n of this.movedSet) {\n if (\n isParentRemoved(this.removesSubTreeCache, n, this.mirror) &&\n !this.movedSet.has(dom.parentNode(n)!)\n ) {\n continue;\n }\n pushAdd(n);\n }\n\n for (const n of this.addedSet) {\n if (\n !isAncestorInSet(this.droppedSet, n) &&\n !isParentRemoved(this.removesSubTreeCache, n, this.mirror)\n ) {\n pushAdd(n);\n } else if (isAncestorInSet(this.movedSet, n)) {\n pushAdd(n);\n } else {\n this.droppedSet.add(n);\n }\n }\n\n let candidate: DoubleLinkedListNode | null = null;\n while (addList.length) {\n let node: DoubleLinkedListNode | null = null;\n if (candidate) {\n const parentId = this.mirror.getId(dom.parentNode(candidate.value));\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node = candidate;\n }\n }\n if (!node) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n // ensure _node is defined before attempting to find value\n if (_node) {\n const parentId = this.mirror.getId(dom.parentNode(_node.value));\n const nextId = getNextId(_node.value);\n\n if (nextId === -1) continue;\n // nextId !== -1 && parentId !== -1\n else if (parentId !== -1) {\n node = _node;\n break;\n }\n // nextId !== -1 && parentId === -1 This branch can happen if the node is the child of shadow root\n else {\n const unhandledNode = _node.value;\n const parent = dom.parentNode(unhandledNode);\n // If the node is the direct child of a shadow root, we treat the shadow host as its parent node.\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = dom.host(parent as ShadowRoot);\n const parentId = this.mirror.getId(shadowHost);\n if (parentId !== -1) {\n node = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node) {\n /**\n * If all nodes in queue could not find a serialized parent,\n * it may be a bug or corner case. We need to escape the\n * dead while loop at once.\n */\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node.previous;\n addList.removeNode(node.value);\n pushAdd(node.value);\n }\n\n const payload = {\n texts: this.texts\n .map((text) => {\n const n = text.node;\n const parent = dom.parentNode(n);\n if (parent && (parent as Element).tagName === 'TEXTAREA') {\n // the node is being ignored as it isn't in the mirror, so shift mutation to attributes on parent textarea\n this.genTextAreaValueMutation(parent as HTMLTextAreaElement);\n }\n return {\n id: this.mirror.getId(n),\n value: text.value,\n };\n })\n // no need to include them on added elements, as they have just been serialized with up to date attribubtes\n .filter((text) => !addedIds.has(text.id))\n // text mutation's id was not in the mirror map means the target node has been removed\n .filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes\n .map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === 'string') {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n // check if the style diff is actually shorter than the regular string based mutation\n // (which was the whole point of #464 'compact style mutation').\n if (diffAsStr.length < attributes.style.length) {\n // also: CSSOM fails badly when var() is present on shorthand properties, so only proceed with\n // the compact style mutation if these have all been accounted for\n if (\n (diffAsStr + unchangedAsStr).split('var(').length ===\n attributes.style.split('var(').length\n ) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes: attributes,\n };\n })\n // no need to include them on added elements, as they have just been serialized with up to date attribubtes\n .filter((attribute) => !addedIds.has(attribute.id))\n // attribute mutation's id was not in the mirror map means the target node has been removed\n .filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds,\n };\n // payload may be empty if the mutations happened in some blocked elements\n if (\n !payload.texts.length &&\n !payload.attributes.length &&\n !payload.removes.length &&\n !payload.adds.length\n ) {\n return;\n }\n\n // reset\n this.texts = [];\n this.attributes = [];\n this.attributeMap = new WeakMap<Node, attributeCursor>();\n this.removes = [];\n this.addedSet = new Set<Node>();\n this.movedSet = new Set<Node>();\n this.droppedSet = new Set<Node>();\n this.removesSubTreeCache = new Set<Node>();\n this.movedMap = {};\n\n this.mutationCb(payload);\n };\n\n private genTextAreaValueMutation = (textarea: HTMLTextAreaElement) => {\n let item = this.attributeMap.get(textarea);\n if (!item) {\n item = {\n node: textarea,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {},\n };\n this.attributes.push(item);\n this.attributeMap.set(textarea, item);\n }\n const value = Array.from(\n dom.childNodes(textarea),\n (cn) => dom.textContent(cn) || '',\n ).join('');\n item.attributes.value = maskInputValue({\n element: textarea,\n maskInputOptions: this.maskInputOptions,\n tagName: textarea.tagName,\n type: getInputType(textarea),\n value,\n maskInputFn: this.maskInputFn,\n });\n };\n\n private processMutation = (m: mutationRecord) => {\n if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n return;\n }\n switch (m.type) {\n case 'characterData': {\n const value = dom.textContent(m.target);\n\n if (\n !isBlocked(m.target, this.blockClass, this.blockSelector, false) &&\n value !== m.oldValue\n ) {\n this.texts.push({\n value:\n needMaskingText(\n m.target,\n this.maskTextClass,\n this.maskTextSelector,\n true, // checkAncestors\n ) && value\n ? this.maskTextFn\n ? this.maskTextFn(value, closestElementOfNode(m.target))\n : value.replace(/[\\S]/g, '*')\n : value,\n node: m.target,\n });\n }\n break;\n }\n case 'attributes': {\n const target = m.target as HTMLElement;\n let attributeName = m.attributeName as string;\n let value = (m.target as HTMLElement).getAttribute(attributeName);\n\n if (attributeName === 'value') {\n const type = getInputType(target);\n\n value = maskInputValue({\n element: target,\n maskInputOptions: this.maskInputOptions,\n tagName: target.tagName,\n type,\n value,\n maskInputFn: this.maskInputFn,\n });\n }\n if (\n isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\n value === m.oldValue\n ) {\n return;\n }\n\n let item = this.attributeMap.get(m.target);\n if (\n target.tagName === 'IFRAME' &&\n attributeName === 'src' &&\n !this.keepIframeSrcFn(value as string)\n ) {\n if (!(target as HTMLIFrameElement).contentDocument) {\n // we can't record it directly as we can't see into it\n // preserve the src attribute so a decision can be taken at replay time\n attributeName = 'rr_src';\n } else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {},\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n\n // Keep this property on inputs that used to be password inputs\n // This is used to ensure we do not unmask value when using e.g. a \"Show password\" type button\n if (\n attributeName === 'type' &&\n target.tagName === 'INPUT' &&\n (m.oldValue || '').toLowerCase() === 'password'\n ) {\n target.setAttribute('data-rr-is-password', 'true');\n }\n\n if (!ignoreAttribute(target.tagName, attributeName, value)) {\n // overwrite attribute if the mutations was triggered in same time\n item.attributes[attributeName] = transformAttribute(\n this.doc,\n toLowerCase(target.tagName),\n toLowerCase(attributeName),\n value,\n );\n if (attributeName === 'style') {\n if (!this.unattachedDoc) {\n try {\n // avoid upsetting original document from a Content Security point of view\n this.unattachedDoc =\n document.implementation.createHTMLDocument();\n } catch (e) {\n // fallback to more direct method\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement('span');\n if (m.oldValue) {\n old.setAttribute('style', m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (\n newValue !== old.style.getPropertyValue(pname) ||\n newPriority !== old.style.getPropertyPriority(pname)\n ) {\n if (newPriority === '') {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n } else {\n // for checking\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === '') {\n // \"if not set, returns the empty string\"\n item.styleDiff[pname] = false; // delete\n }\n }\n } else if (attributeName === 'open' && target.tagName === 'DIALOG') {\n if (target.matches('dialog:modal')) {\n item.attributes['rr_open_mode'] = 'modal';\n } else {\n item.attributes['rr_open_mode'] = 'non-modal';\n }\n }\n }\n break;\n }\n case 'childList': {\n /**\n * Parent is blocked, ignore all child mutations\n */\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n return;\n\n if ((m.target as Element).tagName === 'TEXTAREA') {\n // children would be ignored in genAdds as they aren't in the mirror\n this.genTextAreaValueMutation(m.target as HTMLTextAreaElement);\n return; // any removedNodes won't have been in mirror either\n }\n\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\n m.removedNodes.forEach((n) => {\n const nodeId = this.mirror.getId(n);\n const parentId = isShadowRoot(m.target)\n ? this.mirror.getId(dom.host(m.target))\n : this.mirror.getId(m.target);\n if (\n isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\n isIgnored(n, this.mirror, this.slimDOMOptions) ||\n !isSerialized(n, this.mirror)\n ) {\n return;\n }\n // removed node has not been serialized yet, just remove it from the Set\n if (this.addedSet.has(n)) {\n deepDelete(this.addedSet, n);\n this.droppedSet.add(n);\n } else if (this.addedSet.has(m.target) && nodeId === -1) {\n /**\n * If target was newly added and removed child node was\n * not serialized, it means the child node has been removed\n * before callback fired, so we can ignore it because\n * newly added node will be serialized without child nodes.\n * TODO: verify this\n */\n } else if (isAncestorRemoved(m.target, this.mirror)) {\n /**\n * If parent id was not in the mirror map any more, it\n * means the parent node has already been removed. So\n * the node is also removed which we do not need to track\n * and replay.\n */\n } else if (\n this.movedSet.has(n) &&\n this.movedMap[moveKey(nodeId, parentId)]\n ) {\n deepDelete(this.movedSet, n);\n } else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow:\n isShadowRoot(m.target) && isNativeShadowDom(m.target)\n ? true\n : undefined,\n });\n processRemoves(n, this.removesSubTreeCache);\n }\n this.mapRemoves.push(n);\n });\n break;\n }\n default:\n break;\n }\n };\n\n /**\n * Make sure you check if `n`'s parent is blocked before calling this function\n * */\n private genAdds = (n: Node, target?: Node) => {\n // this node was already recorded in other buffer, ignore it\n if (this.processedNodeManager.inOtherBuffer(n, this)) return;\n\n // if n is added to set, there is no need to travel it and its' children again\n if (this.addedSet.has(n) || this.movedSet.has(n)) return;\n\n if (this.mirror.hasNode(n)) {\n if (isIgnored(n, this.mirror, this.slimDOMOptions)) {\n return;\n }\n this.movedSet.add(n);\n let targetId: number | null = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\n }\n } else {\n this.addedSet.add(n);\n this.droppedSet.delete(n);\n }\n\n // if this node is blocked `serializeNode` will turn it into a placeholder element\n // but we have to remove it's children otherwise they will be added as placeholders too\n if (!isBlocked(n, this.blockClass, this.blockSelector, false)) {\n dom.childNodes(n).forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n dom.childNodes(dom.shadowRoot(n)!).forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n);\n });\n }\n }\n };\n}\n\n/**\n * Some utils to handle the mutation observer DOM records.\n * It should be more clear to extend the native data structure\n * like Set and Map, but currently Typescript does not support\n * that.\n */\nfunction deepDelete(addsSet: Set<Node>, n: Node) {\n addsSet.delete(n);\n dom.childNodes(n).forEach((childN) => deepDelete(addsSet, childN));\n}\n\nfunction processRemoves(n: Node, cache: Set<Node>) {\n const queue = [n];\n\n while (queue.length) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const next = queue.pop()!;\n if (cache.has(next)) continue;\n cache.add(next);\n dom.childNodes(next).forEach((n) => queue.push(n));\n }\n\n return;\n}\n\nfunction isParentRemoved(removes: Set<Node>, n: Node, mirror: Mirror): boolean {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n, mirror);\n}\n\nfunction _isParentRemoved(\n removes: Set<Node>,\n n: Node,\n _mirror: Mirror,\n): boolean {\n const node: ParentNode | null = dom.parentNode(n);\n if (!node) return false;\n return removes.has(node);\n}\n\nfunction isAncestorInSet(set: Set<Node>, n: Node): boolean {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n);\n}\n\nfunction _isAncestorInSet(set: Set<Node>, n: Node): boolean {\n const parent = dom.parentNode(n);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\n","import type { ErrorHandler } from '../types';\n\ntype Callback = (...args: unknown[]) => unknown;\n\nlet errorHandler: ErrorHandler | undefined;\n\nexport function registerErrorHandler(handler: ErrorHandler | undefined) {\n errorHandler = handler;\n}\n\nexport function unregisterErrorHandler() {\n errorHandler = undefined;\n}\n\n/**\n * Wrap callbacks in a wrapper that allows to pass errors to a configured `errorHandler` method.\n */\nexport const callbackWrapper = <T extends Callback>(cb: T): T => {\n if (!errorHandler) {\n return cb;\n }\n\n const rrwebWrapped = ((...rest: unknown[]) => {\n try {\n return cb(...rest);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n\n throw error;\n }\n }) as unknown as T;\n\n return rrwebWrapped;\n};\n","import {\n type MaskInputOptions,\n maskInputValue,\n Mirror,\n getInputType,\n toLowerCase,\n} from 'rrweb-snapshot';\nimport type { FontFaceSet } from 'css-font-loading-module';\nimport {\n throttle,\n on,\n hookSetter,\n getWindowScroll,\n getWindowHeight,\n getWindowWidth,\n isBlocked,\n legacy_isTouchEvent,\n StyleSheetMirror,\n nowTimestamp,\n} from '../utils';\nimport { patch } from '@rrweb/utils';\nimport type { observerParam, MutationBufferParam } from '../types';\nimport {\n IncrementalSource,\n MouseInteractions,\n PointerTypes,\n MediaInteractions,\n} from '@rrweb/types';\nimport type {\n mutationCallBack,\n mousemoveCallBack,\n mousePosition,\n mouseInteractionCallBack,\n listenerHandler,\n scrollCallback,\n styleSheetRuleCallback,\n viewportResizeCallback,\n inputValue,\n inputCallback,\n hookResetter,\n hooksParam,\n Arguments,\n mediaInteractionCallback,\n canvasMutationCallback,\n fontCallback,\n fontParam,\n styleDeclarationCallback,\n IWindow,\n SelectionRange,\n selectionCallback,\n customElementCallback,\n} from '@rrweb/types';\nimport MutationBuffer from './mutation';\nimport { callbackWrapper } from './error-handler';\nimport dom, { mutationObserverCtor } from '@rrweb/utils';\n\nexport const mutationBuffers: MutationBuffer[] = [];\n\n// Event.path is non-standard and used in some older browsers\ntype NonStandardEvent = Omit<Event, 'composedPath'> & {\n path: EventTarget[];\n};\n\nfunction getEventTarget(event: Event | NonStandardEvent): EventTarget | null {\n try {\n if ('composedPath' in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n } else if ('path' in event && event.path.length) {\n return event.path[0];\n }\n } catch {\n // fallback to `event.target` below\n }\n\n return event && event.target;\n}\n\nexport function initMutationObserver(\n options: MutationBufferParam,\n rootEl: Node,\n): MutationObserver {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n // see mutation.ts for details\n mutationBuffer.init(options);\n const observer = new (mutationObserverCtor() as new (\n callback: MutationCallback,\n ) => MutationObserver)(\n callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer)),\n );\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n });\n return observer;\n}\n\nfunction initMoveObserver({\n mousemoveCb,\n sampling,\n doc,\n mirror,\n}: observerParam): listenerHandler {\n if (sampling.mousemove === false) {\n return () => {\n //\n };\n }\n\n const threshold =\n typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\n const callbackThreshold =\n typeof sampling.mousemoveCallback === 'number'\n ? sampling.mousemoveCallback\n : 500;\n\n let positions: mousePosition[] = [];\n let timeBaseline: number | null;\n const wrappedCb = throttle(\n callbackWrapper(\n (\n source:\n | IncrementalSource.MouseMove\n | IncrementalSource.TouchMove\n | IncrementalSource.Drag,\n ) => {\n const totalOffset = Date.now() - timeBaseline!;\n mousemoveCb(\n positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }),\n source,\n );\n positions = [];\n timeBaseline = null;\n },\n ),\n callbackThreshold,\n );\n const updatePosition = callbackWrapper(\n throttle<MouseEvent | TouchEvent | DragEvent>(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n // 'legacy' here as we could switch to https://developer.mozilla.org/en-US/docs/Web/API/Element/pointermove_event\n const { clientX, clientY } = legacy_isTouchEvent(evt)\n ? evt.changedTouches[0]\n : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror.getId(target as Node),\n timeOffset: nowTimestamp() - timeBaseline,\n });\n // it is possible DragEvent is undefined even on devices\n // that support event 'drag'\n wrappedCb(\n typeof DragEvent !== 'undefined' && evt instanceof DragEvent\n ? IncrementalSource.Drag\n : evt instanceof MouseEvent\n ? IncrementalSource.MouseMove\n : IncrementalSource.TouchMove,\n );\n }),\n threshold,\n {\n trailing: false,\n },\n ),\n );\n const handlers = [\n on('mousemove', updatePosition, doc),\n on('touchmove', updatePosition, doc),\n on('drag', updatePosition, doc),\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\nfunction initMouseInteractionObserver({\n mouseInteractionCb,\n doc,\n mirror,\n blockClass,\n blockSelector,\n sampling,\n}: observerParam): listenerHandler {\n if (sampling.mouseInteraction === false) {\n return () => {\n //\n };\n }\n const disableMap: Record<string, boolean | undefined> =\n sampling.mouseInteraction === true ||\n sampling.mouseInteraction === undefined\n ? {}\n : sampling.mouseInteraction;\n\n const handlers: listenerHandler[] = [];\n let currentPointerType: PointerTypes | null = null;\n const getHandler = (eventKey: keyof typeof MouseInteractions) => {\n return (event: MouseEvent | TouchEvent | PointerEvent) => {\n const target = getEventTarget(event) as Node;\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n let pointerType: PointerTypes | null = null;\n let thisEventKey = eventKey;\n if ('pointerType' in event) {\n switch (event.pointerType) {\n case 'mouse':\n pointerType = PointerTypes.Mouse;\n break;\n case 'touch':\n pointerType = PointerTypes.Touch;\n break;\n case 'pen':\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n // we are actually listening on 'pointerdown'\n thisEventKey = 'TouchStart';\n } else if (\n MouseInteractions[eventKey] === MouseInteractions.MouseUp\n ) {\n // we are actually listening on 'pointerup'\n thisEventKey = 'TouchEnd';\n }\n } else if (pointerType === PointerTypes.Pen) {\n // TODO: these will get incorrectly emitted as MouseDown/MouseUp\n }\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (\n (thisEventKey.startsWith('Touch') &&\n pointerType === PointerTypes.Touch) ||\n (thisEventKey.startsWith('Mouse') &&\n pointerType === PointerTypes.Mouse)\n ) {\n // don't output redundant info\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null; // cleanup as we've used it\n }\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e) {\n return;\n }\n const id = mirror.getId(target);\n const { clientX, clientY } = e;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...(pointerType !== null && { pointerType }),\n });\n };\n };\n Object.keys(MouseInteractions)\n .filter(\n (key) =>\n Number.isNaN(Number(key)) &&\n !key.endsWith('_Departed') &&\n disableMap[key] !== false,\n )\n .forEach((eventKey: keyof typeof MouseInteractions) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace(\n 'mouse',\n 'pointer',\n ) as unknown as typeof eventName;\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n // these are handled by pointerdown/pointerup\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\nexport function initScrollObserver({\n scrollCb,\n doc,\n mirror,\n blockClass,\n blockSelector,\n sampling,\n}: Pick<\n observerParam,\n 'scrollCb' | 'doc' | 'mirror' | 'blockClass' | 'blockSelector' | 'sampling'\n>): listenerHandler {\n const updatePosition = callbackWrapper(\n throttle<UIEvent>(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (\n !target ||\n isBlocked(target as Node, blockClass, blockSelector, true)\n ) {\n return;\n }\n const id = mirror.getId(target as Node);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top,\n });\n } else {\n scrollCb({\n id,\n x: (target as HTMLElement).scrollLeft,\n y: (target as HTMLElement).scrollTop,\n });\n }\n }),\n sampling.scroll || 100,\n ),\n );\n return on('scroll', updatePosition, doc);\n}\n\nfunction initViewportResizeObserver(\n { viewportResizeCb }: observerParam,\n { win }: { win: IWindow },\n): listenerHandler {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(\n throttle(\n callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height),\n });\n lastH = height;\n lastW = width;\n }\n }),\n 200,\n ),\n );\n return on('resize', updateDimension, win);\n}\n\nexport const INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\nconst lastInputValueMap: WeakMap<EventTarget, inputValue> = new WeakMap();\nfunction initInputObserver({\n inputCb,\n doc,\n mirror,\n blockClass,\n blockSelector,\n ignoreClass,\n ignoreSelector,\n maskInputOptions,\n maskInputFn,\n sampling,\n userTriggeredOnInput,\n}: observerParam): listenerHandler {\n function eventHandler(event: Event) {\n let target = getEventTarget(event) as HTMLElement | null;\n const userTriggered = event.isTrusted;\n const tagName = target && target.tagName;\n\n /**\n * If a site changes the value 'selected' of an option element, the value of its parent element, usually a select element, will be changed as well.\n * We can treat this change as a value change of the select element the current target belongs to.\n */\n if (target && tagName === 'OPTION') {\n target = dom.parentElement(target);\n }\n if (\n !target ||\n !tagName ||\n INPUT_TAGS.indexOf(tagName) < 0 ||\n isBlocked(target as Node, blockClass, blockSelector, true)\n ) {\n return;\n }\n\n if (\n target.classList.contains(ignoreClass) ||\n (ignoreSelector && target.matches(ignoreSelector))\n ) {\n return;\n }\n let text = (target as HTMLInputElement).value;\n let isChecked = false;\n const type: Lowercase<string> = getInputType(target) || '';\n\n if (type === 'radio' || type === 'checkbox') {\n isChecked = (target as HTMLInputElement).checked;\n } else if (\n maskInputOptions[tagName.toLowerCase() as keyof MaskInputOptions] ||\n maskInputOptions[type as keyof MaskInputOptions]\n ) {\n text = maskInputValue({\n element: target,\n maskInputOptions,\n tagName,\n type,\n value: text,\n maskInputFn,\n });\n }\n cbWithDedup(\n target,\n userTriggeredOnInput\n ? { text, isChecked, userTriggered }\n : { text, isChecked },\n );\n // if a radio was checked\n // the other radios with the same name attribute will be unchecked.\n const name: string | undefined = (target as HTMLInputElement).name;\n if (type === 'radio' && name && isChecked) {\n doc\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\n .forEach((el) => {\n if (el !== target) {\n const text = (el as HTMLInputElement).value;\n cbWithDedup(\n el,\n userTriggeredOnInput\n ? { text, isChecked: !isChecked, userTriggered: false }\n : { text, isChecked: !isChecked },\n );\n }\n });\n }\n }\n function cbWithDedup(target: EventTarget, v: inputValue) {\n const lastInputValue = lastInputValueMap.get(target);\n if (\n !lastInputValue ||\n lastInputValue.text !== v.text ||\n lastInputValue.isChecked !== v.isChecked\n ) {\n lastInputValueMap.set(target, v);\n const id = mirror.getId(target as Node);\n callbackWrapper(inputCb)({\n ...v,\n id,\n });\n }\n }\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\n const handlers: Array<listenerHandler | hookResetter> = events.map(\n (eventName) => on(eventName, callbackWrapper(eventHandler), doc),\n );\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(\n currentWindow.HTMLInputElement.prototype,\n 'value',\n );\n const hookProperties: Array<[HTMLElement, string]> = [\n [currentWindow.HTMLInputElement.prototype, 'value'],\n [currentWindow.HTMLInputElement.prototype, 'checked'],\n [currentWindow.HTMLSelectElement.prototype, 'value'],\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\n // Some UI library use selectedIndex to set select value\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(\n ...hookProperties.map((p) =>\n hookSetter<HTMLElement>(\n p[0],\n p[1],\n {\n set() {\n // mock to a normal event\n callbackWrapper(eventHandler)({\n target: this as EventTarget,\n isTrusted: false, // userTriggered to false as this could well be programmatic\n } as Event);\n },\n },\n false,\n currentWindow,\n ),\n ),\n );\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\ntype GroupingCSSRule =\n | CSSGroupingRule\n | CSSMediaRule\n | CSSSupportsRule\n | CSSConditionRule;\ntype GroupingCSSRuleTypes =\n | typeof CSSGroupingRule\n | typeof CSSMediaRule\n | typeof CSSSupportsRule\n | typeof CSSConditionRule;\n\nfunction getNestedCSSRulePositions(rule: CSSRule): number[] {\n const positions: number[] = [];\n function recurse(childRule: CSSRule, pos: number[]) {\n if (\n (hasNestedCSSRule('CSSGroupingRule') &&\n childRule.parentRule instanceof CSSGroupingRule) ||\n (hasNestedCSSRule('CSSMediaRule') &&\n childRule.parentRule instanceof CSSMediaRule) ||\n (hasNestedCSSRule('CSSSupportsRule') &&\n childRule.parentRule instanceof CSSSupportsRule) ||\n (hasNestedCSSRule('CSSConditionRule') &&\n childRule.parentRule instanceof CSSConditionRule)\n ) {\n const rules = Array.from(\n (childRule.parentRule as GroupingCSSRule).cssRules,\n );\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n } else if (childRule.parentStyleSheet) {\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n return pos;\n }\n return recurse(rule, positions);\n}\n\n/**\n * For StyleSheets in Element, this function retrieves id of its host element.\n * For adopted StyleSheets, this function retrieves its styleId from a styleMirror.\n */\nfunction getIdAndStyleId(\n sheet: CSSStyleSheet | undefined | null,\n mirror: Mirror,\n styleMirror: StyleSheetMirror,\n): {\n styleId?: number;\n id?: number;\n} {\n let id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror.getId(sheet.ownerNode as Node);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id,\n };\n}\n\nfunction initStyleSheetObserver(\n { styleSheetRuleCb, mirror, stylesheetManager }: observerParam,\n { win }: { win: IWindow },\n): listenerHandler {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n // If, for whatever reason, CSSStyleSheet is not available, we skip the observation of stylesheets.\n return () => {\n // Do nothing\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(\n (\n target: typeof insertRule,\n thisArg: CSSStyleSheet,\n argumentsList: [string, number | undefined],\n ) => {\n const [rule, index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule, index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n\n // Support for deprecated addRule method\n win.CSSStyleSheet.prototype.addRule = function (\n this: CSSStyleSheet,\n selector: string,\n styleBlock: string,\n index: number = this.cssRules.length,\n ) {\n const rule = `${selector} { ${styleBlock} }`;\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule, index]);\n };\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(\n (\n target: typeof deleteRule,\n thisArg: CSSStyleSheet,\n argumentsList: [number],\n ) => {\n const [index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n\n // Support for deprecated removeRule method\n win.CSSStyleSheet.prototype.removeRule = function (\n this: CSSStyleSheet,\n index: number,\n ) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index]);\n };\n\n let replace: (text: string) => Promise<CSSStyleSheet>;\n\n if (win.CSSStyleSheet.prototype.replace) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(\n (\n target: typeof replace,\n thisArg: CSSStyleSheet,\n argumentsList: [string],\n ) => {\n const [text] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text,\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n }\n\n let replaceSync: (text: string) => void;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(\n (\n target: typeof replaceSync,\n thisArg: CSSStyleSheet,\n argumentsList: [string],\n ) => {\n const [text] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text,\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n }\n\n const supportedNestedCSSRuleTypes: {\n [key: string]: GroupingCSSRuleTypes;\n } = {};\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n // Some browsers (Safari) don't support CSSGroupingRule\n // https://caniuse.com/?search=cssgroupingrule\n // fall back to monkey patching classes that would have inherited from CSSGroupingRule\n\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n\n const unmodifiedFunctions: {\n [key: string]: {\n insertRule: (rule: string, index?: number) => number;\n deleteRule: (index: number) => void;\n };\n } = {};\n\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: type.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: type.prototype.deleteRule,\n };\n\n type.prototype.insertRule = new Proxy(\n unmodifiedFunctions[typeKey].insertRule,\n {\n apply: callbackWrapper(\n (\n target: typeof insertRule,\n thisArg: CSSRule,\n argumentsList: [string, number | undefined],\n ) => {\n const [rule, index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index || 0, // defaults to 0\n ],\n },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n },\n );\n\n type.prototype.deleteRule = new Proxy(\n unmodifiedFunctions[typeKey].deleteRule,\n {\n apply: callbackWrapper(\n (\n target: typeof deleteRule,\n thisArg: CSSRule,\n argumentsList: [number],\n ) => {\n const [index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index] },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n },\n );\n });\n\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\n\nexport function initAdoptedStyleSheetObserver(\n {\n mirror,\n stylesheetManager,\n }: Pick<observerParam, 'mirror' | 'stylesheetManager'>,\n host: Document | ShadowRoot,\n): listenerHandler {\n let hostId: number | null = null;\n // host of adoptedStyleSheets is outermost document or IFrame's document\n if (host.nodeName === '#document') hostId = mirror.getId(host);\n // The host is a ShadowRoot.\n else hostId = mirror.getId(dom.host(host as ShadowRoot));\n\n const patchTarget =\n host.nodeName === '#document'\n ? (host as Document).defaultView?.Document\n : host.ownerDocument?.defaultView?.ShadowRoot;\n const originalPropertyDescriptor = patchTarget?.prototype\n ? Object.getOwnPropertyDescriptor(\n patchTarget?.prototype,\n 'adoptedStyleSheets',\n )\n : undefined;\n if (\n hostId === null ||\n hostId === -1 ||\n !patchTarget ||\n !originalPropertyDescriptor\n )\n return () => {\n //\n };\n\n // Patch adoptedStyleSheets by overriding the original one.\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get(): CSSStyleSheet[] {\n return originalPropertyDescriptor.get?.call(this) as CSSStyleSheet[];\n },\n set(sheets: CSSStyleSheet[]) {\n const result = originalPropertyDescriptor.set?.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e) {\n // for safety\n }\n }\n return result;\n },\n });\n\n return callbackWrapper(() => {\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set,\n });\n });\n}\n\nfunction initStyleDeclarationObserver(\n {\n styleDeclarationCb,\n mirror,\n ignoreCSSAttributes,\n stylesheetManager,\n }: observerParam,\n { win }: { win: IWindow },\n): listenerHandler {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(\n (\n target: typeof setProperty,\n thisArg: CSSStyleDeclaration,\n argumentsList: [string, string, string],\n ) => {\n const [property, value, priority] = argumentsList;\n\n // ignore this mutation if we do not care about this css attribute\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentRule?.parentStyleSheet,\n mirror,\n stylesheetManager.styleMirror,\n );\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority,\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule!),\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(\n (\n target: typeof removeProperty,\n thisArg: CSSStyleDeclaration,\n argumentsList: [string],\n ) => {\n const [property] = argumentsList;\n\n // ignore this mutation if we do not care about this css attribute\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentRule?.parentStyleSheet,\n mirror,\n stylesheetManager.styleMirror,\n );\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property,\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule!),\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\n\nfunction initMediaInteractionObserver({\n mediaInteractionCb,\n blockClass,\n blockSelector,\n mirror,\n sampling,\n doc,\n}: observerParam): listenerHandler {\n const handler = callbackWrapper((type: MediaInteractions) =>\n throttle(\n callbackWrapper((event: Event) => {\n const target = getEventTarget(event);\n if (\n !target ||\n isBlocked(target as Node, blockClass, blockSelector, true)\n ) {\n return;\n }\n const { currentTime, volume, muted, playbackRate, loop } =\n target as HTMLMediaElement;\n mediaInteractionCb({\n type,\n id: mirror.getId(target as Node),\n currentTime,\n volume,\n muted,\n playbackRate,\n loop,\n });\n }),\n sampling.media || 500,\n ),\n );\n const handlers = [\n on('play', handler(MediaInteractions.Play), doc),\n on('pause', handler(MediaInteractions.Pause), doc),\n on('seeked', handler(MediaInteractions.Seeked), doc),\n on('volumechange', handler(MediaInteractions.VolumeChange), doc),\n on('ratechange', handler(MediaInteractions.RateChange), doc),\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\nfunction initFontObserver({ fontCb, doc }: observerParam): listenerHandler {\n const win = doc.defaultView as IWindow;\n if (!win) {\n return () => {\n //\n };\n }\n\n const handlers: listenerHandler[] = [];\n\n const fontMap = new WeakMap<FontFace, fontParam>();\n\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace(\n family: string,\n source: string | ArrayBufferLike,\n descriptors?: FontFaceDescriptors,\n ) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== 'string',\n descriptors,\n fontSource:\n typeof source === 'string'\n ? source\n : JSON.stringify(Array.from(new Uint8Array(source))),\n });\n return fontFace;\n } as unknown as typeof FontFace;\n\n const restoreHandler = patch(\n doc.fonts,\n 'add',\n function (original: (font: FontFace) => void) {\n return function (this: FontFaceSet, fontFace: FontFace) {\n setTimeout(\n callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }),\n 0,\n );\n return original.apply(this, [fontFace]);\n };\n },\n );\n\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\nfunction initSelectionObserver(param: observerParam): listenerHandler {\n const { doc, mirror, blockClass, blockSelector, selectionCb } = param;\n let collapsed = true;\n\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n\n if (!selection || (collapsed && selection?.isCollapsed)) return;\n\n collapsed = selection.isCollapsed || false;\n\n const ranges: SelectionRange[] = [];\n const count = selection.rangeCount || 0;\n\n for (let i = 0; i < count; i++) {\n const range = selection.getRangeAt(i);\n\n const { startContainer, startOffset, endContainer, endOffset } = range;\n\n const blocked =\n isBlocked(startContainer, blockClass, blockSelector, true) ||\n isBlocked(endContainer, blockClass, blockSelector, true);\n\n if (blocked) continue;\n\n ranges.push({\n start: mirror.getId(startContainer),\n startOffset,\n end: mirror.getId(endContainer),\n endOffset,\n });\n }\n\n selectionCb({ ranges });\n });\n\n updateSelection();\n\n return on('selectionchange', updateSelection);\n}\n\nfunction initCustomElementObserver({\n doc,\n customElementCb,\n}: observerParam): listenerHandler {\n const win = doc.defaultView as IWindow;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!win || !win.customElements) return () => {};\n const restoreHandler = patch(\n win.customElements,\n 'define',\n function (\n original: (\n name: string,\n constructor: CustomElementConstructor,\n options?: ElementDefinitionOptions,\n ) => void,\n ) {\n return function (\n name: string,\n constructor: CustomElementConstructor,\n options?: ElementDefinitionOptions,\n ) {\n try {\n customElementCb({\n define: {\n name,\n },\n });\n } catch (e) {\n console.warn(`Custom element callback failed for ${name}`);\n }\n return original.apply(this, [name, constructor, options]);\n };\n },\n );\n return restoreHandler;\n}\n\nfunction mergeHooks(o: observerParam, hooks: hooksParam) {\n const {\n mutationCb,\n mousemoveCb,\n mouseInteractionCb,\n scrollCb,\n viewportResizeCb,\n inputCb,\n mediaInteractionCb,\n styleSheetRuleCb,\n styleDeclarationCb,\n canvasMutationCb,\n fontCb,\n selectionCb,\n customElementCb,\n } = o;\n o.mutationCb = (...p: Arguments<mutationCallBack>) => {\n if (hooks.mutation) {\n hooks.mutation(...p);\n }\n mutationCb(...p);\n };\n o.mousemoveCb = (...p: Arguments<mousemoveCallBack>) => {\n if (hooks.mousemove) {\n hooks.mousemove(...p);\n }\n mousemoveCb(...p);\n };\n o.mouseInteractionCb = (...p: Arguments<mouseInteractionCallBack>) => {\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction(...p);\n }\n mouseInteractionCb(...p);\n };\n o.scrollCb = (...p: Arguments<scrollCallback>) => {\n if (hooks.scroll) {\n hooks.scroll(...p);\n }\n scrollCb(...p);\n };\n o.viewportResizeCb = (...p: Arguments<viewportResizeCallback>) => {\n if (hooks.viewportResize) {\n hooks.viewportResize(...p);\n }\n viewportResizeCb(...p);\n };\n o.inputCb = (...p: Arguments<inputCallback>) => {\n if (hooks.input) {\n hooks.input(...p);\n }\n inputCb(...p);\n };\n o.mediaInteractionCb = (...p: Arguments<mediaInteractionCallback>) => {\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction(...p);\n }\n mediaInteractionCb(...p);\n };\n o.styleSheetRuleCb = (...p: Arguments<styleSheetRuleCallback>) => {\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule(...p);\n }\n styleSheetRuleCb(...p);\n };\n o.styleDeclarationCb = (...p: Arguments<styleDeclarationCallback>) => {\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration(...p);\n }\n styleDeclarationCb(...p);\n };\n o.canvasMutationCb = (...p: Arguments<canvasMutationCallback>) => {\n if (hooks.canvasMutation) {\n hooks.canvasMutation(...p);\n }\n canvasMutationCb(...p);\n };\n o.fontCb = (...p: Arguments<fontCallback>) => {\n if (hooks.font) {\n hooks.font(...p);\n }\n fontCb(...p);\n };\n o.selectionCb = (...p: Arguments<selectionCallback>) => {\n if (hooks.selection) {\n hooks.selection(...p);\n }\n selectionCb(...p);\n };\n o.customElementCb = (...c: Arguments<customElementCallback>) => {\n if (hooks.customElement) {\n hooks.customElement(...c);\n }\n customElementCb(...c);\n };\n}\n\nexport function initObservers(\n o: observerParam,\n hooks: hooksParam = {},\n): listenerHandler {\n const currentWindow = o.doc.defaultView; // basically document.window\n if (!currentWindow) {\n return () => {\n //\n };\n }\n\n mergeHooks(o, hooks);\n let mutationObserver: MutationObserver | undefined;\n if (o.recordDOM) {\n mutationObserver = initMutationObserver(o, o.doc);\n }\n const mousemoveHandler = initMoveObserver(o);\n const mouseInteractionHandler = initMouseInteractionObserver(o);\n const scrollHandler = initScrollObserver(o);\n const viewportResizeHandler = initViewportResizeObserver(o, {\n win: currentWindow,\n });\n const inputHandler = initInputObserver(o);\n const mediaInteractionHandler = initMediaInteractionObserver(o);\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let styleSheetObserver = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let adoptedStyleSheetObserver = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let styleDeclarationObserver = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let fontObserver = () => {};\n if (o.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o, {\n win: currentWindow,\n });\n if (o.collectFonts) {\n fontObserver = initFontObserver(o);\n }\n }\n const selectionObserver = initSelectionObserver(o);\n const customElementObserver = initCustomElementObserver(o);\n\n // plugins\n const pluginHandlers: listenerHandler[] = [];\n for (const plugin of o.plugins) {\n pluginHandlers.push(\n plugin.observer(plugin.callback, currentWindow, plugin.options),\n );\n }\n\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n mutationObserver?.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\n\ntype CSSGroupingProp =\n | 'CSSGroupingRule'\n | 'CSSMediaRule'\n | 'CSSSupportsRule'\n | 'CSSConditionRule';\n\nfunction hasNestedCSSRule(prop: CSSGroupingProp): boolean {\n return typeof window[prop] !== 'undefined';\n}\n\nfunction canMonkeyPatchNestedCSSRule(prop: CSSGroupingProp): boolean {\n return Boolean(\n typeof window[prop] !== 'undefined' &&\n // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[prop].prototype &&\n 'insertRule' in window[prop].prototype &&\n 'deleteRule' in window[prop].prototype,\n );\n}\n","import type { ICrossOriginIframeMirror } from '@rrweb/types';\nexport default class CrossOriginIframeMirror\n implements ICrossOriginIframeMirror\n{\n private iframeIdToRemoteIdMap: WeakMap<\n HTMLIFrameElement,\n Map<number, number>\n > = new WeakMap();\n private iframeRemoteIdToIdMap: WeakMap<\n HTMLIFrameElement,\n Map<number, number>\n > = new WeakMap();\n\n constructor(private generateIdFn: () => number) {}\n\n getId(\n iframe: HTMLIFrameElement,\n remoteId: number,\n idToRemoteMap?: Map<number, number>,\n remoteToIdMap?: Map<number, number>,\n ): number {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n\n getIds(iframe: HTMLIFrameElement, remoteId: number[]): number[] {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map((id) =>\n this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap),\n );\n }\n\n getRemoteId(\n iframe: HTMLIFrameElement,\n id: number,\n map?: Map<number, number>,\n ): number {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n\n if (typeof id !== 'number') return id;\n\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n }\n\n getRemoteIds(iframe: HTMLIFrameElement, ids: number[]): number[] {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n\n reset(iframe?: HTMLIFrameElement) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = new WeakMap();\n this.iframeRemoteIdToIdMap = new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n\n private getIdToRemoteIdMap(iframe: HTMLIFrameElement) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n\n private getRemoteIdToIdMap(iframe: HTMLIFrameElement) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\n","import type { Mirror } from 'rrweb-snapshot';\nimport { genId } from 'rrweb-snapshot';\nimport type { CrossOriginIframeMessageEvent } from '../types';\nimport CrossOriginIframeMirror from './cross-origin-iframe-mirror';\nimport { EventType, NodeType, IncrementalSource } from '@rrweb/types';\nimport type {\n eventWithTime,\n eventWithoutTime,\n serializedNodeWithId,\n mutationCallBack,\n} from '@rrweb/types';\nimport type { StylesheetManager } from './stylesheet-manager';\n\nexport class IframeManager {\n private iframes: WeakMap<HTMLIFrameElement, true> = new WeakMap();\n private crossOriginIframeMap: WeakMap<MessageEventSource, HTMLIFrameElement> =\n new WeakMap();\n public crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\n public crossOriginIframeStyleMirror: CrossOriginIframeMirror;\n public crossOriginIframeRootIdMap: WeakMap<HTMLIFrameElement, number> =\n new WeakMap();\n private mirror: Mirror;\n private mutationCb: mutationCallBack;\n private wrappedEmit: (e: eventWithoutTime, isCheckout?: boolean) => void;\n private loadListener?: (iframeEl: HTMLIFrameElement) => unknown;\n private stylesheetManager: StylesheetManager;\n private recordCrossOriginIframes: boolean;\n\n constructor(options: {\n mirror: Mirror;\n mutationCb: mutationCallBack;\n stylesheetManager: StylesheetManager;\n recordCrossOriginIframes: boolean;\n wrappedEmit: (e: eventWithoutTime, isCheckout?: boolean) => void;\n }) {\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(\n this.stylesheetManager.styleMirror.generateId.bind(\n this.stylesheetManager.styleMirror,\n ),\n );\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener('message', this.handleMessage.bind(this));\n }\n }\n\n public addIframe(iframeEl: HTMLIFrameElement) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n\n public addLoadListener(cb: (iframeEl: HTMLIFrameElement) => unknown) {\n this.loadListener = cb;\n }\n\n public attachIframe(\n iframeEl: HTMLIFrameElement,\n childSn: serializedNodeWithId,\n ) {\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n });\n\n // Receive messages (events) coming from cross-origin iframes that are nested in this same-origin iframe.\n if (this.recordCrossOriginIframes)\n iframeEl.contentWindow?.addEventListener(\n 'message',\n this.handleMessage.bind(this),\n );\n\n this.loadListener?.(iframeEl);\n\n if (\n iframeEl.contentDocument &&\n iframeEl.contentDocument.adoptedStyleSheets &&\n iframeEl.contentDocument.adoptedStyleSheets.length > 0\n )\n this.stylesheetManager.adoptStyleSheets(\n iframeEl.contentDocument.adoptedStyleSheets,\n this.mirror.getId(iframeEl.contentDocument),\n );\n }\n private handleMessage(message: MessageEvent | CrossOriginIframeMessageEvent) {\n const crossOriginMessageEvent = message as CrossOriginIframeMessageEvent;\n if (\n crossOriginMessageEvent.data.type !== 'rrweb' ||\n // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin\n )\n return;\n\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n\n const transformedEvent = this.transformCrossOriginEvent(\n iframeEl,\n crossOriginMessageEvent.data.event,\n );\n\n if (transformedEvent)\n this.wrappedEmit(\n transformedEvent,\n crossOriginMessageEvent.data.isCheckout,\n );\n }\n\n private transformCrossOriginEvent(\n iframeEl: HTMLIFrameElement,\n e: eventWithTime,\n ): eventWithTime | false {\n switch (e.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n /**\n * Replaces the original id of the iframe with a new set of unique ids\n */\n this.replaceIdOnNode(e.data.node, iframeEl);\n const rootId = e.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e.data.node, rootId);\n return {\n timestamp: e.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e.data.node,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n },\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e;\n }\n case EventType.Custom: {\n this.replaceIds(\n e.data.payload as {\n id?: unknown;\n parentId?: unknown;\n previousId?: unknown;\n nextId?: unknown;\n },\n iframeEl,\n ['id', 'parentId', 'previousId', 'nextId'],\n );\n return e;\n }\n case EventType.IncrementalSnapshot: {\n switch (e.data.source) {\n case IncrementalSource.Mutation: {\n e.data.adds.forEach((n) => {\n this.replaceIds(n, iframeEl, [\n 'parentId',\n 'nextId',\n 'previousId',\n ]);\n this.replaceIdOnNode(n.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n.node, rootId);\n });\n e.data.removes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\n });\n e.data.attributes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n e.data.texts.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.ViewportResize: {\n // can safely ignore these events\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e.data, iframeEl, ['id']);\n return e;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\n return e;\n }\n case IncrementalSource.Font: {\n // fine as-is no modification needed\n return e;\n }\n case IncrementalSource.Selection: {\n e.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, ['start', 'end']);\n });\n return e;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\n e.data.styles?.forEach((style) => {\n this.replaceStyleIds(style, iframeEl, ['styleId']);\n });\n return e;\n }\n }\n }\n }\n return false;\n }\n\n private replace<T extends Record<string, unknown>>(\n iframeMirror: CrossOriginIframeMirror,\n obj: T,\n iframeEl: HTMLIFrameElement,\n keys: Array<keyof T>,\n ): T {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number') continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(\n iframeEl,\n obj[key] as number[],\n ) as T[keyof T];\n } else {\n (obj[key] as number) = iframeMirror.getId(iframeEl, obj[key] as number);\n }\n }\n\n return obj;\n }\n\n private replaceIds<T extends Record<string, unknown>>(\n obj: T,\n iframeEl: HTMLIFrameElement,\n keys: Array<keyof T>,\n ): T {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n\n private replaceStyleIds<T extends Record<string, unknown>>(\n obj: T,\n iframeEl: HTMLIFrameElement,\n keys: Array<keyof T>,\n ): T {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n\n private replaceIdOnNode(\n node: serializedNodeWithId,\n iframeEl: HTMLIFrameElement,\n ) {\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n\n private patchRootIdOnNode(node: serializedNodeWithId, rootId: number) {\n if (node.type !== NodeType.Document && !node.rootId) node.rootId = rootId;\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\n","import type { MutationBufferParam } from '../types';\nimport type {\n mutationCallBack,\n scrollCallback,\n SamplingStrategy,\n} from '@rrweb/types';\nimport {\n initMutationObserver,\n initScrollObserver,\n initAdoptedStyleSheetObserver,\n} from './observer';\nimport { inDom } from '../utils';\nimport type { Mirror } from 'rrweb-snapshot';\nimport { isNativeShadowDom } from 'rrweb-snapshot';\nimport dom, { patch } from '@rrweb/utils';\n\ntype BypassOptions = Omit<\n MutationBufferParam,\n 'doc' | 'mutationCb' | 'mirror' | 'shadowDomManager'\n> & {\n sampling: SamplingStrategy;\n};\n\nexport class ShadowDomManager {\n private shadowDoms = new WeakSet<ShadowRoot>();\n private mutationCb: mutationCallBack;\n private scrollCb: scrollCallback;\n private bypassOptions: BypassOptions;\n private mirror: Mirror;\n private restoreHandlers: (() => void)[] = [];\n\n constructor(options: {\n mutationCb: mutationCallBack;\n scrollCb: scrollCallback;\n bypassOptions: BypassOptions;\n mirror: Mirror;\n }) {\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n\n this.init();\n }\n\n public init() {\n this.reset();\n // Patch 'attachShadow' to observe newly added shadow doms.\n this.patchAttachShadow(Element, document);\n }\n\n public addShadowRoot(shadowRoot: ShadowRoot, doc: Document) {\n if (!isNativeShadowDom(shadowRoot)) return;\n if (this.shadowDoms.has(shadowRoot)) return;\n this.shadowDoms.add(shadowRoot);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this,\n },\n shadowRoot,\n );\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(\n initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot as unknown as Document,\n mirror: this.mirror,\n }),\n );\n // Defer this to avoid adoptedStyleSheet events being created before the full snapshot is created or attachShadow action is recorded.\n setTimeout(() => {\n if (\n shadowRoot.adoptedStyleSheets &&\n shadowRoot.adoptedStyleSheets.length > 0\n )\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot.adoptedStyleSheets,\n this.mirror.getId(dom.host(shadowRoot)),\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager,\n },\n shadowRoot,\n ),\n );\n }, 0);\n }\n\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n public observeAttachShadow(iframeElement: HTMLIFrameElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n\n this.patchAttachShadow(\n (\n iframeElement.contentWindow as Window & {\n Element: { prototype: Element };\n }\n ).Element,\n iframeElement.contentDocument,\n );\n }\n\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n private patchAttachShadow(\n element: {\n prototype: Element;\n },\n doc: Document,\n ) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const manager = this;\n this.restoreHandlers.push(\n patch(\n element.prototype,\n 'attachShadow',\n function (original: (init: ShadowRootInit) => ShadowRoot) {\n return function (this: Element, option: ShadowRootInit) {\n const sRoot = original.call(this, option);\n // For the shadow dom elements in the document, monitor their dom mutations.\n // For shadow dom elements that aren't in the document yet,\n // we start monitoring them once their shadow dom host is appended to the document.\n const shadowRootEl = dom.shadowRoot(this);\n if (shadowRootEl && inDom(this))\n manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\n };\n },\n ),\n );\n }\n\n public reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n } catch (e) {\n //\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = new WeakSet();\n }\n}\n","/*\n * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\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//# sourceMappingURL=base64-arraybuffer.es5.js.map\n","import { encode } from 'base64-arraybuffer';\nimport type { IWindow, CanvasArg } from '@rrweb/types';\n\n// TODO: unify with `replay/webgl.ts`\ntype CanvasVarMap = Map<string, unknown[]>;\nconst canvasVarMap: Map<RenderingContext, CanvasVarMap> = new Map();\nexport function variableListFor(ctx: RenderingContext, ctor: string) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor) as unknown[];\n}\n\nexport const saveWebGLVar = (\n value: unknown,\n win: IWindow,\n ctx: RenderingContext,\n): number | void => {\n if (\n !value ||\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object')\n )\n return;\n\n const name = value.constructor.name;\n const list = variableListFor(ctx, name);\n let index = list.indexOf(value);\n\n if (index === -1) {\n index = list.length;\n list.push(value);\n }\n return index;\n};\n\n// from webgl-recorder: https://github.com/evanw/webgl-recorder/blob/bef0e65596e981ee382126587e2dcbe0fc7748e2/webgl-recorder.js#L50-L77\nexport function serializeArg(\n value: unknown,\n win: IWindow,\n ctx: RenderingContext,\n): CanvasArg {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx));\n } else if (value === null) {\n return value;\n } else if (\n value instanceof Float32Array ||\n value instanceof Float64Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Uint8Array ||\n value instanceof Uint16Array ||\n value instanceof Int16Array ||\n value instanceof Int8Array ||\n value instanceof Uint8ClampedArray\n ) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)],\n };\n } else if (\n // SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n value instanceof ArrayBuffer\n ) {\n const name = value.constructor.name as 'ArrayBuffer';\n const base64 = encode(value);\n\n return {\n rr_type: name,\n base64,\n };\n } else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength,\n ],\n };\n } else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src,\n };\n } else if (value instanceof HTMLCanvasElement) {\n const name = 'HTMLImageElement';\n // TODO: move `toDataURL` to web worker if possible\n const src = value.toDataURL(); // heavy on large canvas\n return {\n rr_type: name,\n src,\n };\n } else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\n };\n // } else if (value instanceof Blob) {\n // const name = value.constructor.name;\n // return {\n // rr_type: name,\n // data: [serializeArg(await value.arrayBuffer(), win, ctx)],\n // type: value.type,\n // };\n } else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\n const name = value.constructor.name;\n const index = saveWebGLVar(value, win, ctx) as number;\n\n return {\n rr_type: name,\n index: index,\n };\n }\n\n return value as unknown as CanvasArg;\n}\n\nexport const serializeArgs = (\n args: Array<unknown>,\n win: IWindow,\n ctx: RenderingContext,\n) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\n\nexport const isInstanceOfWebGLObject = (\n value: unknown,\n win: IWindow,\n): value is\n | WebGLActiveInfo\n | WebGLBuffer\n | WebGLFramebuffer\n | WebGLProgram\n | WebGLRenderbuffer\n | WebGLShader\n | WebGLShaderPrecisionFormat\n | WebGLTexture\n | WebGLUniformLocation\n | WebGLVertexArrayObject => {\n const webGLConstructorNames: string[] = [\n 'WebGLActiveInfo',\n 'WebGLBuffer',\n 'WebGLFramebuffer',\n 'WebGLProgram',\n 'WebGLRenderbuffer',\n 'WebGLShader',\n 'WebGLShaderPrecisionFormat',\n 'WebGLTexture',\n 'WebGLUniformLocation',\n 'WebGLVertexArrayObject',\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n 'WebGLVertexArrayObjectOES',\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter(\n (name: string) => typeof win[name as keyof Window] === 'function',\n );\n return Boolean(\n supportedWebGLConstructorNames.find(\n (name: string) => value instanceof win[name as keyof Window],\n ),\n );\n};\n","import {\n type blockClass,\n CanvasContext,\n type canvasManagerMutationCallback,\n type IWindow,\n type listenerHandler,\n} from '@rrweb/types';\nimport { hookSetter, isBlocked } from '../../../utils';\nimport { patch } from '@rrweb/utils';\nimport { serializeArgs } from './serialize-args';\n\nexport default function initCanvas2DMutationObserver(\n cb: canvasManagerMutationCallback,\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n): listenerHandler {\n const handlers: listenerHandler[] = [];\n const props2D = Object.getOwnPropertyNames(\n win.CanvasRenderingContext2D.prototype,\n );\n for (const prop of props2D) {\n try {\n if (\n typeof win.CanvasRenderingContext2D.prototype[\n prop as keyof CanvasRenderingContext2D\n ] !== 'function'\n ) {\n continue;\n }\n const restoreHandler = patch(\n win.CanvasRenderingContext2D.prototype,\n prop,\n function (\n original: (\n this: CanvasRenderingContext2D,\n ...args: unknown[]\n ) => void,\n ) {\n return function (\n this: CanvasRenderingContext2D,\n ...args: Array<unknown>\n ) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n // Using setTimeout as toDataURL can be heavy\n // and we'd rather not block the main thread\n setTimeout(() => {\n const recordArgs = serializeArgs(args, win, this);\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: recordArgs,\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n },\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter<CanvasRenderingContext2D>(\n win.CanvasRenderingContext2D.prototype,\n prop,\n {\n set(v) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: [v],\n setter: true,\n });\n },\n },\n );\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\n","import type { ICanvas } from 'rrweb-snapshot';\nimport type { blockClass, IWindow, listenerHandler } from '@rrweb/types';\nimport { isBlocked } from '../../../utils';\nimport { patch } from '@rrweb/utils';\n\nfunction getNormalizedContextName(contextType: string) {\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\n}\n\nexport default function initCanvasContextObserver(\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n setPreserveDrawingBufferToTrue: boolean,\n): listenerHandler {\n const handlers: listenerHandler[] = [];\n try {\n const restoreHandler = patch(\n win.HTMLCanvasElement.prototype,\n 'getContext',\n function (\n original: (\n this: ICanvas | HTMLCanvasElement,\n contextType: string,\n ...args: Array<unknown>\n ) => void,\n ) {\n return function (\n this: ICanvas | HTMLCanvasElement,\n contextType: string,\n ...args: Array<unknown>\n ) {\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!('__context' in this)) (this as ICanvas).__context = ctxName;\n\n if (\n setPreserveDrawingBufferToTrue &&\n ['webgl', 'webgl2'].includes(ctxName)\n ) {\n if (args[0] && typeof args[0] === 'object') {\n const contextAttributes = args[0] as WebGLContextAttributes;\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true,\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n },\n );\n handlers.push(restoreHandler);\n } catch {\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\n","import {\n type blockClass,\n CanvasContext,\n type canvasManagerMutationCallback,\n type canvasMutationWithType,\n type IWindow,\n type listenerHandler,\n} from '@rrweb/types';\nimport { hookSetter, isBlocked } from '../../../utils';\nimport { patch } from '@rrweb/utils';\nimport { saveWebGLVar, serializeArgs } from './serialize-args';\n\nfunction patchGLPrototype(\n prototype: WebGLRenderingContext | WebGL2RenderingContext,\n type: CanvasContext,\n cb: canvasManagerMutationCallback,\n blockClass: blockClass,\n blockSelector: string | null,\n win: IWindow,\n): listenerHandler[] {\n const handlers: listenerHandler[] = [];\n\n const props = Object.getOwnPropertyNames(prototype);\n\n for (const prop of props) {\n if (\n //prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n [\n 'isContextLost',\n 'canvas',\n 'drawingBufferWidth',\n 'drawingBufferHeight',\n ].includes(prop)\n ) {\n // skip read only propery/functions\n continue;\n }\n try {\n if (typeof prototype[prop as keyof typeof prototype] !== 'function') {\n continue;\n }\n const restoreHandler = patch(\n prototype,\n prop,\n function (\n original: (this: typeof prototype, ...args: Array<unknown>) => void,\n ) {\n return function (this: typeof prototype, ...args: Array<unknown>) {\n const result = original.apply(this, args);\n saveWebGLVar(result, win, this);\n if (\n 'tagName' in this.canvas &&\n !isBlocked(this.canvas, blockClass, blockSelector, true)\n ) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation: canvasMutationWithType = {\n type,\n property: prop,\n args: recordArgs,\n };\n // TODO: this could potentially also be an OffscreenCanvas as well as HTMLCanvasElement\n cb(this.canvas, mutation);\n }\n\n return result;\n };\n },\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter<typeof prototype>(prototype, prop, {\n set(v) {\n // TODO: this could potentially also be an OffscreenCanvas as well as HTMLCanvasElement\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n cb(this.canvas as HTMLCanvasElement, {\n type,\n property: prop,\n args: [v],\n setter: true,\n });\n },\n });\n handlers.push(hookHandler);\n }\n }\n\n return handlers;\n}\n\nexport default function initCanvasWebGLMutationObserver(\n cb: canvasManagerMutationCallback,\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n): listenerHandler {\n const handlers: listenerHandler[] = [];\n\n handlers.push(\n ...patchGLPrototype(\n win.WebGLRenderingContext.prototype,\n CanvasContext.WebGL,\n cb,\n blockClass,\n blockSelector,\n win,\n ),\n );\n\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\n handlers.push(\n ...patchGLPrototype(\n win.WebGL2RenderingContext.prototype,\n CanvasContext.WebGL2,\n cb,\n blockClass,\n blockSelector,\n win,\n ),\n );\n }\n\n return () => {\n handlers.forEach((h) => h());\n };\n}\n","import type { ICanvas, Mirror } from 'rrweb-snapshot';\nimport type {\n blockClass,\n canvasManagerMutationCallback,\n canvasMutationCallback,\n canvasMutationCommand,\n canvasMutationWithType,\n IWindow,\n listenerHandler,\n CanvasArg,\n DataURLOptions,\n} from '@rrweb/types';\nimport { isBlocked } from '../../../utils';\nimport { CanvasContext } from '@rrweb/types';\nimport initCanvas2DMutationObserver from './2d';\nimport initCanvasContextObserver from './canvas';\nimport initCanvasWebGLMutationObserver from './webgl';\nimport ImageBitmapDataURLWorker from '../../workers/image-bitmap-data-url-worker?worker&inline';\nimport type { ImageBitmapDataURLRequestWorker } from '../../workers/image-bitmap-data-url-worker';\n\nexport type RafStamps = { latestId: number; invokeId: number | null };\n\ntype pendingCanvasMutationsMap = Map<\n HTMLCanvasElement,\n canvasMutationWithType[]\n>;\n\nexport class CanvasManager {\n private pendingCanvasMutations: pendingCanvasMutationsMap = new Map();\n private rafStamps: RafStamps = { latestId: 0, invokeId: null };\n private mirror: Mirror;\n\n private mutationCb: canvasMutationCallback;\n private resetObservers?: listenerHandler;\n private frozen = false;\n private locked = false;\n\n public reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n }\n\n public freeze() {\n this.frozen = true;\n }\n\n public unfreeze() {\n this.frozen = false;\n }\n\n public lock() {\n this.locked = true;\n }\n\n public unlock() {\n this.locked = false;\n }\n\n constructor(options: {\n recordCanvas: boolean;\n mutationCb: canvasMutationCallback;\n win: IWindow;\n blockClass: blockClass;\n blockSelector: string | null;\n mirror: Mirror;\n sampling?: 'all' | number;\n dataURLOptions: DataURLOptions;\n }) {\n const {\n sampling = 'all',\n win,\n blockClass,\n blockSelector,\n recordCanvas,\n dataURLOptions,\n } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n\n if (recordCanvas && sampling === 'all')\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\n if (recordCanvas && typeof sampling === 'number')\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n dataURLOptions,\n });\n }\n\n private processMutation: canvasManagerMutationCallback = (\n target,\n mutation,\n ) => {\n const newFrame =\n this.rafStamps.invokeId &&\n this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n\n this.pendingCanvasMutations.get(target)!.push(mutation);\n };\n\n private initCanvasFPSObserver(\n fps: number,\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n options: {\n dataURLOptions: DataURLOptions;\n },\n ) {\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n true,\n );\n const snapshotInProgressMap: Map<number, boolean> = new Map();\n const worker =\n new ImageBitmapDataURLWorker() as ImageBitmapDataURLRequestWorker;\n worker.onmessage = (e) => {\n const { id } = e.data;\n snapshotInProgressMap.set(id, false);\n\n if (!('base64' in e.data)) return;\n\n const { base64, type, width, height } = e.data;\n this.mutationCb({\n id,\n type: CanvasContext['2D'],\n commands: [\n {\n property: 'clearRect', // wipe canvas\n args: [0, 0, width, height],\n },\n {\n property: 'drawImage', // draws (semi-transparent) image\n args: [\n {\n rr_type: 'ImageBitmap',\n args: [\n {\n rr_type: 'Blob',\n data: [{ rr_type: 'ArrayBuffer', base64 }],\n type,\n },\n ],\n } as CanvasArg,\n 0,\n 0,\n ],\n },\n ],\n });\n };\n\n const timeBetweenSnapshots = 1000 / fps;\n let lastSnapshotTime = 0;\n let rafId: number;\n\n const getCanvas = (): HTMLCanvasElement[] => {\n const matchedCanvas: HTMLCanvasElement[] = [];\n win.document.querySelectorAll('canvas').forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n return matchedCanvas;\n };\n\n const takeCanvasSnapshots = (timestamp: DOMHighResTimeStamp) => {\n if (\n lastSnapshotTime &&\n timestamp - lastSnapshotTime < timeBetweenSnapshots\n ) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n\n getCanvas()\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n .forEach(async (canvas: HTMLCanvasElement) => {\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return;\n\n // The browser throws if the canvas is 0 in size\n // Uncaught (in promise) DOMException: Failed to execute 'createImageBitmap' on 'Window': The source image width is 0.\n // Assuming the same happens with height\n if (canvas.width === 0 || canvas.height === 0) return;\n\n snapshotInProgressMap.set(id, true);\n if (['webgl', 'webgl2'].includes((canvas as ICanvas).__context)) {\n // if the canvas hasn't been modified recently,\n // its contents won't be in memory and `createImageBitmap`\n // will return a transparent imageBitmap\n\n const context = canvas.getContext((canvas as ICanvas).__context) as\n | WebGLRenderingContext\n | WebGL2RenderingContext\n | null;\n if (\n context?.getContextAttributes()?.preserveDrawingBuffer === false\n ) {\n // Hack to load canvas back into memory so `createImageBitmap` can grab it's contents.\n // Context: https://twitter.com/Juice10/status/1499775271758704643\n // Preferably we set `preserveDrawingBuffer` to true, but that's not always possible,\n // especially when canvas is loaded before rrweb.\n // This hack can wipe the background color of the canvas in the (unlikely) event that\n // the canvas background was changed but clear was not called directly afterwards.\n // Example of this hack having negative side effect: https://visgl.github.io/react-map-gl/examples/layers\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n const bitmap = await createImageBitmap(canvas);\n worker.postMessage(\n {\n id,\n bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions: options.dataURLOptions,\n },\n [bitmap],\n );\n });\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n };\n\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n\n private initCanvasMutationObserver(\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n ): void {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n false,\n );\n const canvas2DReset = initCanvas2DMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector,\n );\n\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector,\n );\n\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n\n private startPendingCanvasMutationFlusher() {\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n\n private startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp: DOMHighResTimeStamp) => {\n this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n }\n\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (_values: canvasMutationCommand[], canvas: HTMLCanvasElement) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n },\n );\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n\n flushPendingCanvasMutationFor(canvas: HTMLCanvasElement, id: number) {\n if (this.frozen || this.locked) {\n return;\n }\n\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n\n const values = valuesWithType.map((value) => {\n const { type, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n\n this.mutationCb({ id, type, commands: values });\n\n this.pendingCanvasMutations.delete(canvas);\n }\n}\n","import { stringifyRule } from 'rrweb-snapshot';\nimport type {\n elementNode,\n serializedNodeWithId,\n adoptedStyleSheetCallback,\n adoptedStyleSheetParam,\n attributeMutation,\n mutationCallBack,\n} from '@rrweb/types';\nimport { StyleSheetMirror } from '../utils';\n\nexport class StylesheetManager {\n private trackedLinkElements: WeakSet<HTMLLinkElement> = new WeakSet();\n private mutationCb: mutationCallBack;\n private adoptedStyleSheetCb: adoptedStyleSheetCallback;\n public styleMirror = new StyleSheetMirror();\n\n constructor(options: {\n mutationCb: mutationCallBack;\n adoptedStyleSheetCb: adoptedStyleSheetCallback;\n }) {\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n\n public attachLinkElement(\n linkEl: HTMLLinkElement,\n childSn: serializedNodeWithId,\n ) {\n if ('_cssText' in (childSn as elementNode).attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: (childSn as elementNode)\n .attributes as attributeMutation['attributes'],\n },\n ],\n });\n\n this.trackLinkElement(linkEl);\n }\n\n public trackLinkElement(linkEl: HTMLLinkElement) {\n if (this.trackedLinkElements.has(linkEl)) return;\n\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n\n public adoptStyleSheets(\n sheets: CSSStyleSheet[] | readonly CSSStyleSheet[],\n hostId: number,\n ) {\n if (sheets.length === 0) return;\n const adoptedStyleSheetData: adoptedStyleSheetParam = {\n id: hostId,\n styleIds: [] as number[],\n };\n const styles: NonNullable<adoptedStyleSheetParam['styles']> = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n styles.push({\n styleId,\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\n rule: stringifyRule(r, sheet.href),\n index,\n })),\n });\n } else styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n\n public reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = new WeakSet();\n }\n\n // TODO: take snapshot on stylesheet reload by applying event listener\n private trackStylesheetInLinkElement(_linkEl: HTMLLinkElement) {\n // linkEl.addEventListener('load', () => {\n // // re-loaded, maybe take another snapshot?\n // });\n }\n}\n","import type MutationBuffer from './mutation';\n\n/**\n * Keeps a log of nodes that could show up in multiple mutation buffer but shouldn't be handled twice.\n */\nexport default class ProcessedNodeManager {\n private nodeMap: WeakMap<Node, Set<MutationBuffer>> = new WeakMap();\n\n private active = false;\n\n public inOtherBuffer(node: Node, thisBuffer: MutationBuffer) {\n const buffers = this.nodeMap.get(node);\n return (\n buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer)\n );\n }\n\n public add(node: Node, buffer: MutationBuffer) {\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(() => {\n this.nodeMap = new WeakMap();\n this.active = false;\n });\n }\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\n }\n\n public destroy() {\n // cleanup no longer needed\n }\n}\n","import {\n snapshot,\n slimDOMDefaults,\n type MaskInputOptions,\n createMirror,\n} from 'rrweb-snapshot';\nimport { initObservers, mutationBuffers } from './observer';\nimport {\n on,\n getWindowWidth,\n getWindowHeight,\n getWindowScroll,\n polyfill,\n hasShadowRoot,\n isSerializedIframe,\n isSerializedStylesheet,\n nowTimestamp,\n} from '../utils';\nimport type { recordOptions } from '../types';\nimport {\n EventType,\n type eventWithoutTime,\n type eventWithTime,\n IncrementalSource,\n type listenerHandler,\n type mutationCallbackParam,\n type scrollCallback,\n type canvasMutationParam,\n type adoptedStyleSheetParam,\n} from '@rrweb/types';\nimport type { CrossOriginIframeMessageEventContent } from '../types';\nimport { IframeManager } from './iframe-manager';\nimport { ShadowDomManager } from './shadow-dom-manager';\nimport { CanvasManager } from './observers/canvas/canvas-manager';\nimport { StylesheetManager } from './stylesheet-manager';\nimport ProcessedNodeManager from './processed-node-manager';\nimport {\n callbackWrapper,\n registerErrorHandler,\n unregisterErrorHandler,\n} from './error-handler';\nimport dom from '@rrweb/utils';\n\nlet wrappedEmit!: (e: eventWithoutTime, isCheckout?: boolean) => void;\n\nlet takeFullSnapshot!: (isCheckout?: boolean) => void;\nlet canvasManager!: CanvasManager;\nlet recording = false;\n\n// Multiple tools (i.e. MooTools, Prototype.js) override Array.from and drop support for the 2nd parameter\n// Try to pull a clean implementation from a newly created iframe\ntry {\n if (Array.from([1], (x) => x * 2)[0] !== 2) {\n const cleanFrame = document.createElement('iframe');\n document.body.appendChild(cleanFrame);\n // eslint-disable-next-line @typescript-eslint/unbound-method -- Array.from is static and doesn't rely on binding\n Array.from = cleanFrame.contentWindow?.Array.from || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug('Unable to override Array.from', err);\n}\n\nconst mirror = createMirror();\nfunction record<T = eventWithTime>(\n options: recordOptions<T> = {},\n): listenerHandler | undefined {\n const {\n emit,\n checkoutEveryNms,\n checkoutEveryNth,\n blockClass = 'rr-block',\n blockSelector = null,\n ignoreClass = 'rr-ignore',\n ignoreSelector = null,\n maskTextClass = 'rr-mask',\n maskTextSelector = null,\n inlineStylesheet = true,\n maskAllInputs,\n maskInputOptions: _maskInputOptions,\n slimDOMOptions: _slimDOMOptions,\n maskInputFn,\n maskTextFn,\n hooks,\n packFn,\n sampling = {},\n dataURLOptions = {},\n mousemoveWait,\n recordDOM = true,\n recordCanvas = false,\n recordCrossOriginIframes = false,\n recordAfter = options.recordAfter === 'DOMContentLoaded'\n ? options.recordAfter\n : 'load',\n userTriggeredOnInput = false,\n collectFonts = false,\n inlineImages = false,\n plugins,\n keepIframeSrcFn = () => false,\n ignoreCSSAttributes = new Set([]),\n errorHandler,\n } = options;\n\n registerErrorHandler(errorHandler);\n\n const inEmittingFrame = recordCrossOriginIframes\n ? window.parent === window\n : true;\n\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n // throws if parent is cross-origin\n if (window.parent.document) {\n passEmitsToParent = false; // if parent is same origin we collect iframe events from the parent\n }\n } catch (e) {\n passEmitsToParent = true;\n }\n }\n\n // runtime checks for user options\n if (inEmittingFrame && !emit) {\n throw new Error('emit function is required');\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n /* no-op since in this case we don't need to record anything from this frame in particular */\n };\n }\n // move departed options to new options\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\n sampling.mousemove = mousemoveWait;\n }\n\n // reset mirror in case `record` this was called earlier\n mirror.reset();\n\n const maskInputOptions: MaskInputOptions =\n maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true,\n }\n : _maskInputOptions !== undefined\n ? _maskInputOptions\n : { password: true };\n\n const slimDOMOptions = slimDOMDefaults(_slimDOMOptions);\n\n polyfill();\n\n let lastFullSnapshotEvent: eventWithTime;\n let incrementalSnapshotCount = 0;\n\n const eventProcessor = (e: eventWithTime): T => {\n for (const plugin of plugins || []) {\n if (plugin.eventProcessor) {\n e = plugin.eventProcessor(e);\n }\n }\n if (\n packFn &&\n // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent\n ) {\n e = packFn(e) as unknown as eventWithTime;\n }\n return e as unknown as T;\n };\n wrappedEmit = (r: eventWithoutTime, isCheckout?: boolean) => {\n const e = r as eventWithTime;\n e.timestamp = nowTimestamp();\n if (\n mutationBuffers[0]?.isFrozen() &&\n e.type !== EventType.FullSnapshot &&\n !(\n e.type === EventType.IncrementalSnapshot &&\n e.data.source === IncrementalSource.Mutation\n )\n ) {\n // we've got a user initiated event so first we need to apply\n // all DOM changes that have been buffering during paused state\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n\n if (inEmittingFrame) {\n emit?.(eventProcessor(e), isCheckout);\n } else if (passEmitsToParent) {\n const message: CrossOriginIframeMessageEventContent<T> = {\n type: 'rrweb',\n event: eventProcessor(e),\n origin: window.location.origin,\n isCheckout,\n };\n window.parent.postMessage(message, '*');\n }\n\n if (e.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e;\n incrementalSnapshotCount = 0;\n } else if (e.type === EventType.IncrementalSnapshot) {\n // attach iframe should be considered as full snapshot\n if (\n e.data.source === IncrementalSource.Mutation &&\n e.data.isAttachIframe\n ) {\n return;\n }\n\n incrementalSnapshotCount++;\n const exceedCount =\n checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime =\n checkoutEveryNms &&\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot(true);\n }\n }\n };\n\n const wrappedMutationEmit = (m: mutationCallbackParam) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m,\n },\n });\n };\n const wrappedScrollEmit: scrollCallback = (p) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p,\n },\n });\n const wrappedCanvasMutationEmit = (p: canvasMutationParam) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p,\n },\n });\n\n const wrappedAdoptedStyleSheetEmit = (a: adoptedStyleSheetParam) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a,\n },\n });\n\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\n });\n\n const iframeManager = new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager: stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit,\n });\n\n /**\n * Exposes mirror to the plugins\n */\n for (const plugin of plugins || []) {\n if (plugin.getMirror)\n plugin.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror:\n iframeManager.crossOriginIframeStyleMirror,\n });\n }\n\n const processedNodeManager = new ProcessedNodeManager();\n\n canvasManager = new CanvasManager({\n recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass,\n blockSelector,\n mirror,\n sampling: sampling.canvas,\n dataURLOptions,\n });\n\n const shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskTextFn,\n maskInputFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager,\n },\n mirror,\n });\n\n takeFullSnapshot = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit(\n {\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight(),\n },\n },\n isCheckout,\n );\n\n // When we take a full snapshot, old tracked StyleSheets need to be removed.\n stylesheetManager.reset();\n\n shadowDomManager.init();\n\n mutationBuffers.forEach((buf) => buf.lock()); // don't allow any mirror modifications during snapshotting\n const node = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n) => {\n if (isSerializedIframe(n, mirror)) {\n iframeManager.addIframe(n as HTMLIFrameElement);\n }\n if (isSerializedStylesheet(n, mirror)) {\n stylesheetManager.trackLinkElement(n as HTMLLinkElement);\n }\n if (hasShadowRoot(n)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n shadowDomManager.addShadowRoot(dom.shadowRoot(n as Node)!, document);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn,\n });\n\n if (!node) {\n return console.warn('Failed to snapshot the document');\n }\n\n wrappedEmit(\n {\n type: EventType.FullSnapshot,\n data: {\n node,\n initialOffset: getWindowScroll(window),\n },\n },\n isCheckout,\n );\n mutationBuffers.forEach((buf) => buf.unlock()); // generate & emit any mutations that happened during snapshotting, as can now apply against the newly built mirror\n\n // Some old browsers don't support adoptedStyleSheets.\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(\n document.adoptedStyleSheets,\n mirror.getId(document),\n );\n };\n\n try {\n const handlers: listenerHandler[] = [];\n\n const observe = (doc: Document) => {\n return callbackWrapper(initObservers)(\n {\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions,\n },\n }),\n mouseInteractionCb: (d) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d,\n },\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d,\n },\n }),\n inputCb: (v) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v,\n },\n }),\n mediaInteractionCb: (p) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p,\n },\n }),\n styleSheetRuleCb: (r) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r,\n },\n }),\n styleDeclarationCb: (r) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r,\n },\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p,\n },\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p,\n },\n });\n },\n customElementCb: (c) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c,\n },\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskTextClass,\n maskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskInputFn,\n maskTextFn,\n keepIframeSrcFn,\n blockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins:\n plugins\n ?.filter((p) => p.observer)\n ?.map((p) => ({\n observer: p.observer!,\n options: p.options,\n callback: (payload: object) =>\n wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload,\n },\n }),\n })) || [],\n },\n hooks,\n );\n };\n\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument!));\n } catch (error) {\n // TODO: handle internal error\n console.warn(error);\n }\n });\n\n const init = () => {\n takeFullSnapshot();\n handlers.push(observe(document));\n recording = true;\n };\n if (['interactive', 'complete'].includes(document.readyState)) {\n init();\n } else {\n handlers.push(\n on('DOMContentLoaded', () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {},\n });\n if (recordAfter === 'DOMContentLoaded') init();\n }),\n );\n handlers.push(\n on(\n 'load',\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {},\n });\n if (recordAfter === 'load') init();\n },\n window,\n ),\n );\n }\n return () => {\n handlers.forEach((handler) => {\n try {\n handler();\n } catch (error) {\n const msg = String(error).toLowerCase();\n /**\n * https://github.com/rrweb-io/rrweb/pull/1695\n * This error can occur in a known scenario:\n * If an iframe is initially same-origin and observed, but later its \n location is changed in an opaque way to a cross-origin URL (perhaps within the iframe via its `document.location` or a redirect) \n * attempting to execute the handler in the stop record function will \n throw a \"cannot access cross-origin frame\" error.\n * This error is expected and can be safely ignored.\n */\n if (!msg.includes('cross-origin')) {\n console.warn(error);\n }\n }\n });\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n // TODO: handle internal error\n console.warn(error);\n }\n}\n\nrecord.addCustomEvent = <T>(tag: string, payload: T) => {\n if (!recording) {\n throw new Error('please add custom event after start recording');\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag,\n payload,\n },\n });\n};\n\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\n\nrecord.takeFullSnapshot = (isCheckout?: boolean) => {\n if (!recording) {\n throw new Error('please take full snapshot after start recording');\n }\n takeFullSnapshot(isCheckout);\n};\n\nrecord.mirror = mirror;\n\nexport default record;\n","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t,n){var e=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,o,i=e.call(t),a=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(e=i.return)&&e.call(i)}finally{if(o)throw o.error}}return a}var n;!function(t){t[t.NotStarted=0]=\"NotStarted\",t[t.Running=1]=\"Running\",t[t.Stopped=2]=\"Stopped\"}(n||(n={}));var e={type:\"xstate.init\"};function r(t){return void 0===t?[]:[].concat(t)}function o(t){return{type:\"xstate.assign\",assignment:t}}function i(t,n){return\"string\"==typeof(t=\"string\"==typeof t&&n&&n[t]?n[t]:t)?{type:t}:\"function\"==typeof t?{type:t.name,exec:t}:t}function a(t){return function(n){return t===n}}function u(t){return\"string\"==typeof t?{type:t}:t}function c(t,n){return{value:t,context:n,actions:[],changed:!1,matches:a(t)}}function f(t,n,e){var r=n,o=!1;return[t.filter((function(t){if(\"xstate.assign\"===t.type){o=!0;var n=Object.assign({},r);return\"function\"==typeof t.assignment?n=t.assignment(r,e):Object.keys(t.assignment).forEach((function(o){n[o]=\"function\"==typeof t.assignment[o]?t.assignment[o](r,e):t.assignment[o]})),r=n,!1}return!0})),r,o]}function s(n,o){void 0===o&&(o={});var s=t(f(r(n.states[n.initial].entry).map((function(t){return i(t,o.actions)})),n.context,e),2),l=s[0],v=s[1],y={config:n,_options:o,initialState:{value:n.initial,actions:l,context:v,matches:a(n.initial)},transition:function(e,o){var s,l,v=\"string\"==typeof e?{value:e,context:n.context}:e,p=v.value,g=v.context,d=u(o),x=n.states[p];if(x.on){var m=r(x.on[d.type]);try{for(var h=function(t){var n=\"function\"==typeof Symbol&&Symbol.iterator,e=n&&t[n],r=0;if(e)return e.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}(m),b=h.next();!b.done;b=h.next()){var S=b.value;if(void 0===S)return c(p,g);var w=\"string\"==typeof S?{target:S}:S,j=w.target,E=w.actions,R=void 0===E?[]:E,N=w.cond,O=void 0===N?function(){return!0}:N,_=void 0===j,k=null!=j?j:p,T=n.states[k];if(O(g,d)){var q=t(f((_?r(R):[].concat(x.exit,R,T.entry).filter((function(t){return t}))).map((function(t){return i(t,y._options.actions)})),g,d),3),z=q[0],A=q[1],B=q[2],C=null!=j?j:p;return{value:C,context:A,actions:z,changed:j!==p||z.length>0||B,matches:a(C)}}}}catch(t){s={error:t}}finally{try{b&&!b.done&&(l=h.return)&&l.call(h)}finally{if(s)throw s.error}}}return c(p,g)}};return y}var l=function(t,n){return t.actions.forEach((function(e){var r=e.exec;return r&&r(t.context,n)}))};function v(t){var r=t.initialState,o=n.NotStarted,i=new Set,c={_machine:t,send:function(e){o===n.Running&&(r=t.transition(r,e),l(r,u(e)),i.forEach((function(t){return t(r)})))},subscribe:function(t){return i.add(t),t(r),{unsubscribe:function(){return i.delete(t)}}},start:function(i){if(i){var u=\"object\"==typeof i?i:{context:t.config.context,value:i};r={value:u.value,actions:[],context:u.context,matches:a(u.value)}}return o=n.Running,l(r,e),c},stop:function(){return o=n.Stopped,i.clear(),c},get state(){return r},get status(){return o}};return c}export{n as InterpreterStatus,o as assign,s as createMachine,v as interpret};\n","import record from './record';\nimport {\n Replayer,\n type playerConfig,\n type PlayerMachineState,\n type SpeedMachineState,\n} from './replay';\nimport canvasMutation from './replay/canvas';\nimport { _mirror } from './utils';\nimport * as utils from './utils';\n\nexport {\n EventType,\n IncrementalSource,\n MouseInteractions,\n ReplayerEvents,\n type eventWithTime,\n} from '@rrweb/types';\n\n// exports style.css from replay\nimport './replay/styles/style.css';\n\nexport type { recordOptions, ReplayPlugin } from './types';\n\nconst { addCustomEvent } = record;\nconst { freezePage } = record;\nconst { takeFullSnapshot } = record;\n\nexport {\n record,\n addCustomEvent,\n freezePage,\n takeFullSnapshot,\n Replayer,\n type playerConfig,\n type PlayerMachineState,\n type SpeedMachineState,\n canvasMutation,\n _mirror as mirror,\n utils,\n};\n","import { record } from 'rrweb';\nimport type { GhostplayEvent } from './types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\n\nexport class Recorder {\n private stopFn: (() => void) | null = null;\n\n constructor(\n private sessionId: string,\n private emit: EventCallback,\n private rrwebConfig?: Record<string, any>\n ) {}\n\n start(): void {\n this.stopFn = record({\n ...this.rrwebConfig,\n emit: (event: any) => {\n this.emit({\n type: 'rrweb',\n timestamp: event.timestamp,\n sessionId: this.sessionId,\n data: event,\n });\n },\n }) ?? null;\n }\n\n /** Force a new FullSnapshot (useful as a one-time safety net for\n * async content that wasn't in the initial snapshot). */\n takeFullSnapshot(): void {\n if (this.stopFn) {\n record.takeFullSnapshot();\n }\n }\n\n stop(): void {\n if (this.stopFn) {\n this.stopFn();\n this.stopFn = null;\n }\n }\n}\n","import type { GhostplayEvent, ErrorEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\n\nexport class ErrorTracker {\n private onErrorHandler: OnErrorEventHandler | null = null;\n private onRejectionHandler: ((e: PromiseRejectionEvent) => void) | null = null;\n private previousOnError: OnErrorEventHandler | null = null;\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n this.previousOnError = window.onerror;\n\n this.onErrorHandler = (message, source, lineno, colno, error) => {\n const data: ErrorEventData = {\n message: String(message),\n stack: error?.stack,\n source: source ?? undefined,\n lineno: lineno ?? undefined,\n colno: colno ?? undefined,\n type: 'onerror',\n };\n\n this.emit({\n type: 'error',\n timestamp: Date.now(),\n sessionId: this.sessionId,\n data,\n });\n\n if (this.previousOnError) {\n return this.previousOnError.call(window, message, source, lineno, colno, error);\n }\n return false;\n };\n\n this.onRejectionHandler = (e: PromiseRejectionEvent) => {\n const reason = e.reason;\n const data: ErrorEventData = {\n message:\n reason instanceof Error ? reason.message : String(reason),\n stack: reason instanceof Error ? reason.stack : undefined,\n type: 'unhandledrejection',\n };\n\n this.emit({\n type: 'error',\n timestamp: Date.now(),\n sessionId: this.sessionId,\n data,\n });\n };\n\n window.onerror = this.onErrorHandler;\n window.addEventListener('unhandledrejection', this.onRejectionHandler);\n }\n\n stop(): void {\n if (this.previousOnError) {\n window.onerror = this.previousOnError;\n } else {\n window.onerror = null;\n }\n\n if (this.onRejectionHandler) {\n window.removeEventListener('unhandledrejection', this.onRejectionHandler);\n }\n\n this.onErrorHandler = null;\n this.onRejectionHandler = null;\n }\n}\n","import type { GhostplayEvent, NetworkEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\n\nconst GHOSTPLAY_URL_PATTERN = /ghostplay\\.dev/;\nconst MAX_BODY_SIZE = 1024 * 1024; // 1MB limit per body\n\nexport class NetworkInterceptor {\n private originalFetch: typeof fetch | null = null;\n private active = false;\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n this.active = true;\n this.patchFetch();\n }\n\n stop(): void {\n this.active = false;\n this.restoreFetch();\n }\n\n private patchFetch(): void {\n this.originalFetch = globalThis.fetch;\n const self = this;\n\n globalThis.fetch = async function (\n input: RequestInfo | URL,\n init?: RequestInit\n ): Promise<Response> {\n const url =\n typeof input === 'string'\n ? input\n : input instanceof URL\n ? input.toString()\n : input.url;\n const method = init?.method ?? 'GET';\n\n if (GHOSTPLAY_URL_PATTERN.test(url)) {\n return self.originalFetch!.call(globalThis, input, init);\n }\n\n const startTime = Date.now();\n\n // Extract request headers\n const requestHeaders = extractHeaders(init?.headers);\n\n // Extract request body\n const requestBody = extractBody(init?.body);\n\n try {\n const response = await self.originalFetch!.call(\n globalThis,\n input,\n init\n );\n\n if (self.active) {\n // Extract response headers\n const responseHeaders: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n responseHeaders[key] = value;\n });\n\n // Clone response to read body without consuming the original\n let responseBody: string | undefined;\n try {\n const contentType = response.headers.get('content-type') ?? '';\n if (contentType.includes('json') || contentType.includes('text')) {\n const clone = response.clone();\n const text = await clone.text();\n responseBody = text.length > MAX_BODY_SIZE\n ? text.substring(0, MAX_BODY_SIZE) + '...[truncated]'\n : text;\n }\n } catch {\n // Body read failed — skip\n }\n\n const data: NetworkEventData = {\n method: method.toUpperCase(),\n url,\n status: response.status,\n statusText: response.statusText,\n requestHeaders,\n responseHeaders,\n requestBody,\n responseBody,\n startTime,\n endTime: Date.now(),\n duration: Date.now() - startTime,\n };\n\n self.emit({\n type: 'network',\n timestamp: startTime,\n sessionId: self.sessionId,\n data,\n });\n\n // Emit failed HTTP responses (5xx) as errors too\n if (response.status >= 500) {\n self.emit({\n type: 'error',\n timestamp: Date.now(),\n sessionId: self.sessionId,\n data: {\n message: `HTTP ${response.status}: ${method.toUpperCase()} ${url}`,\n type: 'onerror',\n source: 'network-interceptor',\n },\n });\n }\n }\n\n return response;\n } catch (error) {\n if (self.active) {\n const endTime = Date.now();\n const data: NetworkEventData = {\n method: method.toUpperCase(),\n url,\n requestHeaders,\n requestBody,\n startTime,\n endTime,\n duration: endTime - startTime,\n };\n\n self.emit({\n type: 'network',\n timestamp: startTime,\n sessionId: self.sessionId,\n data,\n });\n\n // Also emit as an error so the session gets flagged\n const errMsg = error instanceof Error ? error.message : String(error);\n self.emit({\n type: 'error',\n timestamp: endTime,\n sessionId: self.sessionId,\n data: {\n message: `Network error: ${method.toUpperCase()} ${url} — ${errMsg}`,\n type: 'onerror',\n source: 'network-interceptor',\n },\n });\n }\n\n throw error;\n }\n };\n }\n\n private restoreFetch(): void {\n if (this.originalFetch) {\n globalThis.fetch = this.originalFetch;\n this.originalFetch = null;\n }\n }\n}\n\nfunction extractHeaders(headers: HeadersInit | undefined): Record<string, string> {\n const result: Record<string, string> = {};\n if (!headers) return result;\n\n if (headers instanceof Headers) {\n headers.forEach((value, key) => { result[key] = value; });\n } else if (Array.isArray(headers)) {\n for (const [key, value] of headers) { result[key] = value; }\n } else {\n for (const [key, value] of Object.entries(headers)) { result[key] = value; }\n }\n\n return result;\n}\n\nfunction extractBody(body: BodyInit | null | undefined): string | undefined {\n if (!body) return undefined;\n\n if (typeof body === 'string') {\n return body.length > MAX_BODY_SIZE\n ? body.substring(0, MAX_BODY_SIZE) + '...[truncated]'\n : body;\n }\n\n if (body instanceof URLSearchParams) {\n return body.toString();\n }\n\n // FormData, Blob, ArrayBuffer, ReadableStream — skip (too complex/binary)\n return undefined;\n}\n","import type { GhostplayEvent, ConsoleEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\ntype ConsoleLevel = 'log' | 'warn' | 'error' | 'info' | 'debug';\n\nconst LEVELS: ConsoleLevel[] = ['log', 'warn', 'error', 'info', 'debug'];\n\nexport class ConsoleInterceptor {\n private originals: Partial<Record<ConsoleLevel, (...args: unknown[]) => void>> = {};\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n for (const level of LEVELS) {\n this.originals[level] = console[level].bind(console);\n console[level] = (...args: unknown[]) => {\n const data: ConsoleEventData = {\n level,\n args: args.map((arg) => this.serialize(arg)),\n };\n this.emit({\n type: 'console',\n timestamp: Date.now(),\n sessionId: this.sessionId,\n data,\n });\n this.originals[level]?.(...args);\n };\n }\n }\n\n stop(): void {\n for (const level of LEVELS) {\n if (this.originals[level]) {\n console[level] = this.originals[level] as any;\n }\n }\n this.originals = {};\n }\n\n private serialize(arg: unknown): unknown {\n if (arg instanceof Error) {\n return { __type: 'Error', message: arg.message, stack: arg.stack };\n }\n if (typeof arg === 'object' && arg !== null) {\n try { JSON.stringify(arg); return arg; } catch { return String(arg); }\n }\n return arg;\n }\n}\n","import type { GhostplayEvent, PerformanceEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\ntype Metric = PerformanceEventData['metric'];\n\nconst THRESHOLDS: Record<Metric, [number, number]> = {\n LCP: [1000, 4000],\n FID: [100, 300],\n CLS: [0.1, 0.25],\n TTFB: [800, 1800],\n INP: [200, 500],\n};\n\nexport class PerformanceTracker {\n private observers: PerformanceObserver[] = [];\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n if (typeof PerformanceObserver === 'undefined') return;\n this.observeLCP();\n this.observeFID();\n this.observeCLS();\n this.observeTTFB();\n this.observeINP();\n }\n\n stop(): void {\n this.observers.forEach((o) => o.disconnect());\n this.observers = [];\n }\n\n handleMetric(metric: Metric, value: number): void {\n const [good, poor] = THRESHOLDS[metric];\n const rating: PerformanceEventData['rating'] =\n value <= good ? 'good' : value <= poor ? 'needs-improvement' : 'poor';\n this.emit({\n type: 'performance',\n timestamp: Date.now(),\n sessionId: this.sessionId,\n data: { metric, value, rating },\n });\n }\n\n private observeLCP(): void {\n try {\n const observer = new PerformanceObserver((list) => {\n const entries = list.getEntries();\n const last = entries[entries.length - 1];\n if (last) this.handleMetric('LCP', last.startTime);\n });\n observer.observe({ type: 'largest-contentful-paint', buffered: true });\n this.observers.push(observer);\n } catch {}\n }\n\n private observeFID(): void {\n try {\n const observer = new PerformanceObserver((list) => {\n const entries = list.getEntries();\n const first = entries[0] as any;\n if (first) this.handleMetric('FID', first.processingStart - first.startTime);\n });\n observer.observe({ type: 'first-input', buffered: true });\n this.observers.push(observer);\n } catch {}\n }\n\n private observeCLS(): void {\n let clsValue = 0;\n try {\n const observer = new PerformanceObserver((list) => {\n for (const entry of list.getEntries() as any[]) {\n if (!entry.hadRecentInput) clsValue += entry.value;\n }\n this.handleMetric('CLS', clsValue);\n });\n observer.observe({ type: 'layout-shift', buffered: true });\n this.observers.push(observer);\n } catch {}\n }\n\n private observeTTFB(): void {\n try {\n const observer = new PerformanceObserver((list) => {\n const entry = list.getEntries()[0] as any;\n if (entry) this.handleMetric('TTFB', entry.responseStart);\n });\n observer.observe({ type: 'navigation', buffered: true });\n this.observers.push(observer);\n } catch {}\n }\n\n private observeINP(): void {\n try {\n const observer = new PerformanceObserver((list) => {\n for (const entry of list.getEntries() as any[]) {\n this.handleMetric('INP', entry.duration);\n }\n });\n observer.observe({ type: 'event', buffered: true });\n this.observers.push(observer);\n } catch {}\n }\n}\n","import type { GhostplayEvent, RageClickEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\n\nconst RAGE_THRESHOLD = 3;\nconst RAGE_WINDOW_MS = 1000;\n\ninterface ClickRecord {\n element: Element;\n timestamps: number[];\n}\n\nexport class RageClickDetector {\n private clickHandler: ((e: MouseEvent) => void) | null = null;\n private recentClicks: ClickRecord[] = [];\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n this.clickHandler = (e: MouseEvent) => {\n const target = e.target as Element;\n if (!target) return;\n const now = Date.now();\n let record = this.recentClicks.find((r) => r.element === target);\n if (!record) {\n record = { element: target, timestamps: [] };\n this.recentClicks.push(record);\n }\n record.timestamps.push(now);\n record.timestamps = record.timestamps.filter((t) => now - t < RAGE_WINDOW_MS);\n if (record.timestamps.length >= RAGE_THRESHOLD) {\n const data: RageClickEventData = {\n selector: this.getSelector(target),\n clickCount: record.timestamps.length,\n x: e.clientX,\n y: e.clientY,\n };\n this.emit({\n type: 'rage-click',\n timestamp: now,\n sessionId: this.sessionId,\n data,\n });\n record.timestamps = [];\n }\n this.recentClicks = this.recentClicks.filter((r) => r.timestamps.length > 0);\n };\n document.addEventListener('click', this.clickHandler, true);\n }\n\n stop(): void {\n if (this.clickHandler) {\n document.removeEventListener('click', this.clickHandler, true);\n this.clickHandler = null;\n }\n this.recentClicks = [];\n }\n\n private getSelector(el: Element): string {\n if (el.id) return `#${el.id}`;\n const testId = el.getAttribute('data-testid');\n if (testId) return `[data-testid=\"${testId}\"]`;\n const tag = el.tagName.toLowerCase();\n const className = el.className\n ? `.${el.className.split(' ').filter(Boolean).join('.')}`\n : '';\n return `${tag}${className}`;\n }\n}\n","import type { BreadcrumbEventData } from '../types';\n\nexport class Breadcrumbs {\n private trail: BreadcrumbEventData[] = [];\n\n constructor(private maxSize: number = 50) {}\n\n add(\n category: BreadcrumbEventData['category'],\n message: string,\n data?: Record<string, unknown>\n ): void {\n const crumb: BreadcrumbEventData = { category, message };\n if (data) crumb.data = data;\n this.trail.push(crumb);\n if (this.trail.length > this.maxSize) {\n this.trail = this.trail.slice(-this.maxSize);\n }\n }\n\n getTrail(): BreadcrumbEventData[] {\n return [...this.trail];\n }\n\n clear(): void {\n this.trail = [];\n }\n}\n","import type { GhostplayEvent, NavigationEventData } from '../types';\n\ntype EventCallback = (event: GhostplayEvent) => void;\n\nexport class NavigationTracker {\n private currentUrl: string = '';\n private originalPushState: typeof history.pushState | null = null;\n private originalReplaceState: typeof history.replaceState | null = null;\n private popstateHandler: (() => void) | null = null;\n private hashchangeHandler: (() => void) | null = null;\n\n constructor(\n private sessionId: string,\n private emit: EventCallback\n ) {}\n\n start(): void {\n this.currentUrl = window.location.href;\n\n // Emit initial navigation event\n this.emitNavigation(null, this.currentUrl, 'initial');\n\n // Patch history.pushState\n this.originalPushState = history.pushState.bind(history);\n history.pushState = (...args: Parameters<typeof history.pushState>) => {\n this.originalPushState!(...args);\n this.handleUrlChange('pushState');\n };\n\n // Patch history.replaceState\n this.originalReplaceState = history.replaceState.bind(history);\n history.replaceState = (...args: Parameters<typeof history.replaceState>) => {\n this.originalReplaceState!(...args);\n this.handleUrlChange('replaceState');\n };\n\n // Listen for popstate (back/forward)\n this.popstateHandler = () => this.handleUrlChange('popstate');\n window.addEventListener('popstate', this.popstateHandler);\n\n // Listen for hashchange\n this.hashchangeHandler = () => this.handleUrlChange('hashchange');\n window.addEventListener('hashchange', this.hashchangeHandler);\n }\n\n stop(): void {\n if (this.originalPushState) {\n history.pushState = this.originalPushState;\n this.originalPushState = null;\n }\n if (this.originalReplaceState) {\n history.replaceState = this.originalReplaceState;\n this.originalReplaceState = null;\n }\n if (this.popstateHandler) {\n window.removeEventListener('popstate', this.popstateHandler);\n this.popstateHandler = null;\n }\n if (this.hashchangeHandler) {\n window.removeEventListener('hashchange', this.hashchangeHandler);\n this.hashchangeHandler = null;\n }\n }\n\n private handleUrlChange(trigger: NavigationEventData['trigger']): void {\n const newUrl = window.location.href;\n if (newUrl !== this.currentUrl) {\n const from = this.currentUrl;\n this.currentUrl = newUrl;\n this.emitNavigation(from, newUrl, trigger);\n }\n }\n\n private emitNavigation(from: string | null, to: string, trigger: NavigationEventData['trigger']): void {\n const data: NavigationEventData = { from, to, trigger };\n this.emit({\n type: 'navigation',\n timestamp: Date.now(),\n sessionId: this.sessionId,\n data,\n });\n }\n}\n","import type { GhostplayConfig, NetworkEventData } from './types';\n\nconst ALWAYS_DENY_RESPONSE_HEADERS = ['set-cookie'];\n\ninterface PrivacyOptions {\n networkSanitize?: GhostplayConfig['networkSanitize'];\n}\n\nexport class PrivacyFilter {\n constructor(private options: PrivacyOptions) {}\n\n sanitizeNetworkEvent(event: NetworkEventData): NetworkEventData {\n const result = { ...event };\n const config = this.options.networkSanitize;\n\n // Always remove sensitive response headers\n if (result.responseHeaders) {\n result.responseHeaders = this.filterHeaders(\n result.responseHeaders,\n ALWAYS_DENY_RESPONSE_HEADERS\n );\n }\n\n if (!config) return result;\n\n // Remove denied request headers\n if (result.requestHeaders && config.denyHeaders.length > 0) {\n result.requestHeaders = this.filterHeaders(\n result.requestHeaders,\n config.denyHeaders\n );\n }\n\n // Remove denied response headers\n if (result.responseHeaders && config.denyHeaders.length > 0) {\n result.responseHeaders = this.filterHeaders(\n result.responseHeaders,\n config.denyHeaders\n );\n }\n\n // Redact body for denied URLs\n if (config.denyBodyUrls.length > 0 && this.urlMatchesDeny(event.url, config.denyBodyUrls)) {\n if (result.requestBody) result.requestBody = '[REDACTED]';\n if (result.responseBody) result.responseBody = '[REDACTED]';\n }\n\n return result;\n }\n\n private filterHeaders(\n headers: Record<string, string>,\n denyList: string[]\n ): Record<string, string> {\n const denyLower = denyList.map((h) => h.toLowerCase());\n const filtered: Record<string, string> = {};\n for (const [key, value] of Object.entries(headers)) {\n if (!denyLower.includes(key.toLowerCase())) {\n filtered[key] = value;\n }\n }\n return filtered;\n }\n\n private urlMatchesDeny(url: string, patterns: string[]): boolean {\n return patterns.some((pattern) => {\n const regex = new RegExp(\n '^' + pattern.replace(/\\*/g, '.*') + '$'\n );\n return regex.test(url);\n });\n }\n}\n","import type { GhostplayEvent, EventBatch } from './types';\n\ninterface TransportConfig {\n apiUrl: string;\n projectId: string;\n sessionId: string;\n flushIntervalMs: number;\n flushMaxBytes: number;\n}\n\nconst KEEPALIVE_LIMIT = 60_000; // Stay under 64KB browser limit\n\nexport class Transport {\n private buffer: GhostplayEvent[] = [];\n private bufferBytes = 0;\n private flushTimer: ReturnType<typeof setInterval> | null = null;\n\n constructor(private config: TransportConfig) {}\n\n start(): void {\n this.flushTimer = setInterval(() => {\n this.flush();\n }, this.config.flushIntervalMs);\n }\n\n stop(): void {\n if (this.flushTimer) {\n clearInterval(this.flushTimer);\n this.flushTimer = null;\n }\n this.flush();\n }\n\n send(event: GhostplayEvent): void {\n const eventSize = JSON.stringify(event).length;\n this.buffer.push(event);\n this.bufferBytes += eventSize;\n if (this.bufferBytes >= this.config.flushMaxBytes) {\n this.flush();\n }\n }\n\n private flush(): void {\n if (this.buffer.length === 0) return;\n const events = this.buffer;\n this.buffer = [];\n this.bufferBytes = 0;\n const batch: EventBatch = {\n projectId: this.config.projectId,\n sessionId: this.config.sessionId,\n events,\n sentAt: Date.now(),\n };\n const body = JSON.stringify(batch);\n const url = `${this.config.apiUrl}/events`;\n\n // Use keepalive only for small payloads (Safari enforces 64KB limit strictly)\n const useKeepalive = body.length < KEEPALIVE_LIMIT;\n\n try {\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-project-id': this.config.projectId,\n },\n body,\n keepalive: useKeepalive,\n })\n .then((res) => {\n if (!res.ok) {\n console.warn(`[Ghostplay] Event batch rejected (${res.status})`);\n }\n })\n .catch(() => {\n // Fallback to sendBeacon\n this.sendBeacon(url, body);\n });\n } catch {\n this.sendBeacon(url, body);\n }\n }\n\n private sendBeacon(url: string, body: string): void {\n if (typeof navigator !== 'undefined' && navigator.sendBeacon) {\n navigator.sendBeacon(url, new Blob([body], { type: 'application/json' }));\n }\n }\n}\n","import { resolveConfig, type ResolvedConfig } from './config';\nimport { SessionManager } from './session';\nimport { Recorder } from './recorder';\nimport { ErrorTracker } from './modules/error-tracker';\nimport { NetworkInterceptor } from './modules/network-interceptor';\nimport { ConsoleInterceptor } from './modules/console-interceptor';\nimport { PerformanceTracker } from './modules/performance-tracker';\nimport { RageClickDetector } from './modules/rage-click-detector';\nimport { Breadcrumbs } from './modules/breadcrumbs';\nimport { NavigationTracker } from './modules/navigation-tracker';\nimport { PrivacyFilter } from './privacy';\nimport { Transport } from './transport';\nimport type { GhostplayConfig, GhostplayEvent } from './types';\n\nexport const VERSION = '0.1.0';\n\nlet config: ResolvedConfig | null = null;\nlet sessionManager: SessionManager | null = null;\nlet recorder: Recorder | null = null;\nlet errorTracker: ErrorTracker | null = null;\nlet networkInterceptor: NetworkInterceptor | null = null;\nlet consoleInterceptor: ConsoleInterceptor | null = null;\nlet performanceTracker: PerformanceTracker | null = null;\nlet rageClickDetector: RageClickDetector | null = null;\nlet breadcrumbs: Breadcrumbs | null = null;\nlet navigationTracker: NavigationTracker | null = null;\nlet privacyFilter: PrivacyFilter | null = null;\nlet transport: Transport | null = null;\n\nfunction ensureInitialized(): void {\n if (!sessionManager) {\n throw new Error('[Ghostplay] SDK not initialized. Call Ghostplay.init() first.');\n }\n}\n\nfunction handleEvent(event: GhostplayEvent): void {\n if (breadcrumbs && event.type !== 'rrweb') {\n breadcrumbs.add(\n event.type === 'error'\n ? 'error'\n : event.type === 'network'\n ? 'network'\n : event.type === 'rage-click'\n ? 'click'\n : 'custom',\n `${event.type}: ${JSON.stringify(event.data).substring(0, 100)}`\n );\n }\n transport?.send(event);\n}\n\nfunction init(userConfig: GhostplayConfig): void {\n stop();\n config = resolveConfig(userConfig);\n sessionManager = new SessionManager(config.projectId);\n const session = sessionManager.start();\n\n privacyFilter = new PrivacyFilter({\n networkSanitize: config.networkSanitize,\n });\n\n transport = new Transport({\n apiUrl: config.apiUrl,\n projectId: config.projectId,\n sessionId: session.id,\n flushIntervalMs: config.flushIntervalMs,\n flushMaxBytes: config.flushMaxBytes,\n });\n transport.start();\n\n breadcrumbs = new Breadcrumbs();\n\n recorder = new Recorder(session.id, handleEvent, {\n maskAllInputs: config.maskAllInputs,\n ...(config.maskInputSelector ? { maskInputSelector: config.maskInputSelector } : {}),\n ...(config.blockSelector ? { blockSelector: config.blockSelector } : {}),\n ...(config.ignoreSelector ? { ignoreSelector: config.ignoreSelector } : {}),\n ...config.rrwebConfig,\n });\n\n // Defer recording start so the initial FullSnapshot captures the\n // rendered DOM shell rather than an empty SPA root element.\n const startRecording = () => {\n recorder?.start();\n // One-time follow-up snapshot to capture async-loaded content\n // (data fetched via API after initial render). Runs once, not\n // periodically — avoids the storage overhead of checkoutEveryNms.\n setTimeout(() => recorder?.takeFullSnapshot(), 3000);\n };\n if (document.readyState === 'complete') {\n requestAnimationFrame(() => requestAnimationFrame(startRecording));\n } else {\n window.addEventListener('load', () =>\n requestAnimationFrame(startRecording), { once: true });\n }\n\n errorTracker = new ErrorTracker(session.id, handleEvent);\n errorTracker.start();\n\n if (config.recordNetwork) {\n networkInterceptor = new NetworkInterceptor(session.id, (event) => {\n const sanitized = privacyFilter!.sanitizeNetworkEvent(event.data as any);\n handleEvent({ ...event, data: sanitized });\n });\n networkInterceptor.start();\n }\n\n if (config.recordConsole) {\n consoleInterceptor = new ConsoleInterceptor(session.id, handleEvent);\n consoleInterceptor.start();\n }\n\n if (config.trackPerformance) {\n performanceTracker = new PerformanceTracker(session.id, handleEvent);\n performanceTracker.start();\n }\n\n if (config.trackRageClicks) {\n rageClickDetector = new RageClickDetector(session.id, handleEvent);\n rageClickDetector.start();\n }\n\n if (config.trackNavigation) {\n navigationTracker = new NavigationTracker(session.id, handleEvent);\n navigationTracker.start();\n }\n}\n\nfunction identify(userId: string, traits?: Record<string, unknown>): void {\n ensureInitialized();\n sessionManager!.identify(userId, traits);\n handleEvent({\n type: 'identify',\n timestamp: Date.now(),\n sessionId: sessionManager!.current().id,\n data: { userId, traits },\n });\n}\n\nfunction tag(tagName: string): void {\n ensureInitialized();\n sessionManager!.addTag(tagName);\n handleEvent({\n type: 'tag',\n timestamp: Date.now(),\n sessionId: sessionManager!.current().id,\n data: { tag: tagName },\n });\n}\n\nfunction setMetadata(data: Record<string, unknown>): void {\n ensureInitialized();\n sessionManager!.setMetadata(data);\n handleEvent({\n type: 'metadata',\n timestamp: Date.now(),\n sessionId: sessionManager!.current().id,\n data,\n });\n}\n\nfunction stop(): void {\n recorder?.stop();\n errorTracker?.stop();\n networkInterceptor?.stop();\n consoleInterceptor?.stop();\n performanceTracker?.stop();\n rageClickDetector?.stop();\n navigationTracker?.stop();\n transport?.stop();\n sessionManager?.end();\n\n recorder = null;\n errorTracker = null;\n networkInterceptor = null;\n consoleInterceptor = null;\n performanceTracker = null;\n rageClickDetector = null;\n navigationTracker = null;\n transport = null;\n sessionManager = null;\n breadcrumbs = null;\n privacyFilter = null;\n config = null;\n}\n\nexport const Ghostplay = {\n VERSION,\n init,\n identify,\n tag,\n setMetadata,\n stop,\n};\n\nexport default Ghostplay;\nexport type { GhostplayConfig, GhostplayEvent, Session } from './types';\n"]}
|