@posthog/rrweb-snapshot 0.0.4 → 0.0.5

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../types/dist/rrweb-types.js", "../../utils/dist/rrweb-utils.js", "../src/utils.ts", "../src/snapshot.ts", "../src/css.ts", "../../../node_modules/picocolors/picocolors.browser.js", "../__vite-browser-external", "../../../node_modules/postcss/lib/css-syntax-error.js", "../../../node_modules/postcss/lib/symbols.js", "../../../node_modules/postcss/lib/stringifier.js", "../../../node_modules/postcss/lib/stringify.js", "../../../node_modules/postcss/lib/node.js", "../../../node_modules/postcss/lib/declaration.js", "../../../node_modules/postcss/node_modules/nanoid/non-secure/index.cjs", "../../../node_modules/postcss/lib/previous-map.js", "../../../node_modules/postcss/lib/input.js", "../../../node_modules/postcss/lib/map-generator.js", "../../../node_modules/postcss/lib/comment.js", "../../../node_modules/postcss/lib/container.js", "../../../node_modules/postcss/lib/document.js", "../../../node_modules/postcss/lib/warn-once.js", "../../../node_modules/postcss/lib/warning.js", "../../../node_modules/postcss/lib/result.js", "../../../node_modules/postcss/lib/tokenize.js", "../../../node_modules/postcss/lib/at-rule.js", "../../../node_modules/postcss/lib/root.js", "../../../node_modules/postcss/lib/list.js", "../../../node_modules/postcss/lib/rule.js", "../../../node_modules/postcss/lib/parser.js", "../../../node_modules/postcss/lib/parse.js", "../../../node_modules/postcss/lib/lazy-result.js", "../../../node_modules/postcss/lib/no-work-result.js", "../../../node_modules/postcss/lib/processor.js", "../../../node_modules/postcss/lib/fromJSON.js", "../../../node_modules/postcss/lib/postcss.js", "../../../node_modules/postcss/lib/postcss.mjs", "../src/rebuild.ts"],
3
+ "sources": ["../../types/dist/rrweb-types.js", "../../utils/dist/rrweb-utils.js", "../src/utils.ts", "../src/snapshot.ts", "../src/css.ts", "../../../node_modules/picocolors/picocolors.browser.js", "../__vite-browser-external", "../../../node_modules/postcss/lib/css-syntax-error.js", "../../../node_modules/postcss/lib/symbols.js", "../../../node_modules/postcss/lib/stringifier.js", "../../../node_modules/postcss/lib/stringify.js", "../../../node_modules/postcss/lib/node.js", "../../../node_modules/postcss/lib/declaration.js", "../../../node_modules/nanoid/non-secure/index.cjs", "../../../node_modules/postcss/lib/previous-map.js", "../../../node_modules/postcss/lib/input.js", "../../../node_modules/postcss/lib/map-generator.js", "../../../node_modules/postcss/lib/comment.js", "../../../node_modules/postcss/lib/container.js", "../../../node_modules/postcss/lib/document.js", "../../../node_modules/postcss/lib/warn-once.js", "../../../node_modules/postcss/lib/warning.js", "../../../node_modules/postcss/lib/result.js", "../../../node_modules/postcss/lib/tokenize.js", "../../../node_modules/postcss/lib/at-rule.js", "../../../node_modules/postcss/lib/root.js", "../../../node_modules/postcss/lib/list.js", "../../../node_modules/postcss/lib/rule.js", "../../../node_modules/postcss/lib/parser.js", "../../../node_modules/postcss/lib/parse.js", "../../../node_modules/postcss/lib/lazy-result.js", "../../../node_modules/postcss/lib/no-work-result.js", "../../../node_modules/postcss/lib/processor.js", "../../../node_modules/postcss/lib/fromJSON.js", "../../../node_modules/postcss/lib/postcss.js", "../../../node_modules/postcss/lib/postcss.mjs", "../src/rebuild.ts"],
4
4
  "sourcesContent": ["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=rrweb-types.js.map\n", "const testableAccessors = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\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 = {};\nfunction angularZoneUnpatchedAlternative(key) {\n var _a, _b;\n const angularUnpatchedVersionSymbol = (_b = (_a = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a.__symbol__) == null ? void 0 : _b.call(_a, key);\n if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {\n return globalThis[angularUnpatchedVersionSymbol];\n } else {\n return void 0;\n }\n}\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const candidate = angularZoneUnpatchedAlternative(key) || globalThis[key];\n const defaultPrototype = candidate.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) {\n untaintedBasePrototype[key] = candidate.prototype;\n return candidate.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return candidate.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 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 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 mutationObserverCtor,\n parentElement,\n parentNode,\n patch,\n querySelector,\n querySelectorAll,\n shadowRoot,\n styleSheets,\n textContent\n};\n//# sourceMappingURL=rrweb-utils.js.map\n", "import type {\n idNodeMap,\n MaskInputFn,\n MaskInputOptions,\n nodeMetaMap,\n} from './types';\n\nimport { NodeType } from '@posthog/rrweb-types';\nimport type {\n IMirror,\n serializedNodeWithId,\n serializedNode,\n documentNode,\n documentTypeNode,\n textNode,\n elementNode,\n} from '@posthog/rrweb-types';\nimport dom from '@posthog/rrweb-utils';\n\nexport function isElement(n: Node): n is Element {\n return n.nodeType === n.ELEMENT_NODE;\n}\n\nexport function isShadowRoot(n: Node): n is ShadowRoot {\n const hostEl: Element | null =\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 && dom.host(n as ShadowRoot)) || null;\n return Boolean(\n hostEl && 'shadowRoot' in hostEl && dom.shadowRoot(hostEl) === n,\n );\n}\n\n/**\n * To fix the issue https://github.com/rrweb-io/rrweb/issues/933.\n * Some websites use polyfilled shadow dom and this function is used to detect this situation.\n */\nexport function isNativeShadowDom(shadowRoot: ShadowRoot): boolean {\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\n}\n\n/**\n * Browsers sometimes destructively modify the css rules they receive.\n * This function tries to rectify the modifications the browser made to make it more cross platform compatible.\n * @param cssText - output of `CSSStyleRule.cssText`\n * @returns `cssText` with browser inconsistencies fixed.\n */\nfunction fixBrowserCompatibilityIssuesInCSS(cssText: string): string {\n /**\n * Chrome outputs `-webkit-background-clip` as `background-clip` in `CSSStyleRule.cssText`.\n * But then Chrome ignores `background-clip` as css input.\n * Re-introduce `-webkit-background-clip` to fix this issue.\n */\n if (\n cssText.includes(' background-clip: text;') &&\n !cssText.includes(' -webkit-background-clip: text;')\n ) {\n cssText = cssText.replace(\n /\\sbackground-clip:\\s*text;/g,\n ' -webkit-background-clip: text; background-clip: text;',\n );\n }\n return cssText;\n}\n\n// Remove this declaration once typescript has added `CSSImportRule.supportsText` to the lib.\ndeclare interface CSSImportRule extends CSSRule {\n readonly href: string;\n readonly layerName: string | null;\n readonly media: MediaList;\n readonly styleSheet: CSSStyleSheet;\n /**\n * experimental API, currently only supported in firefox\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule/supportsText\n */\n readonly supportsText?: string | null;\n}\n\n/**\n * Browsers sometimes incorrectly escape `@import` on `.cssText` statements.\n * This function tries to correct the escaping.\n * more info: https://bugs.chromium.org/p/chromium/issues/detail?id=1472259\n * @param cssImportRule\n * @returns `cssText` with browser inconsistencies fixed, or null if not applicable.\n */\nexport function escapeImportStatement(rule: CSSImportRule): string {\n const { cssText } = rule;\n if (cssText.split('\"').length < 3) return cssText;\n\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\n if (rule.layerName === '') {\n statement.push(`layer`);\n } else if (rule.layerName) {\n statement.push(`layer(${rule.layerName})`);\n }\n if (rule.supportsText) {\n statement.push(`supports(${rule.supportsText})`);\n }\n if (rule.media.length) {\n statement.push(rule.media.mediaText);\n }\n return statement.join(' ') + ';';\n}\n\n/*\n * serialize the css rules from the .sheet property\n * for <link rel=\"stylesheet\"> elements, this is the only way of getting the rules without a FETCH\n * for <style> elements, this is less preferable to looking at childNodes[0].textContent\n * (which will include vendor prefixed rules which may not be used or visible to the recorded browser,\n * but which might be needed by the replayer browser)\n * however, at snapshot time, we don't know whether the style element has suffered\n * any programmatic manipulation prior to the snapshot, in which case the .sheet would be more up to date\n */\nexport function stringifyStylesheet(s: CSSStyleSheet): string | null {\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 && s.ownerNode.ownerDocument) {\n // an inline <style> element\n sheetHref = s.ownerNode.ownerDocument.location.href;\n }\n const stringifiedRules = Array.from(rules, (rule: CSSRule) =>\n stringifyRule(rule, sheetHref),\n ).join('');\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\n\nexport function stringifyRule(rule: CSSRule, sheetHref: string | null): string {\n if (isCSSImportRule(rule)) {\n let importStringified;\n try {\n importStringified =\n // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule.styleSheet) ||\n // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule);\n } catch (error) {\n importStringified = rule.cssText;\n }\n if (rule.styleSheet.href) {\n // url()s within the imported stylesheet are relative to _that_ sheet's href\n return absolutifyURLs(importStringified, rule.styleSheet.href);\n }\n return importStringified;\n } else {\n let ruleStringified = rule.cssText;\n if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\n // Safari does not escape selectors with : properly\n // see https://bugs.webkit.org/show_bug.cgi?id=184604\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\n}\n\nexport function fixSafariColons(cssStringified: string): string {\n // Replace e.g. [aa:bb] with [aa\\\\:bb]\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, '$1\\\\$2');\n}\n\nexport function isCSSImportRule(rule: CSSRule): rule is CSSImportRule {\n return 'styleSheet' in rule;\n}\n\nexport function isCSSStyleRule(rule: CSSRule): rule is CSSStyleRule {\n return 'selectorText' in rule;\n}\n\nexport class Mirror implements IMirror<Node> {\n private idNodeMap: idNodeMap = new Map();\n private nodeMetaMap: nodeMetaMap = new WeakMap();\n\n getId(n: Node | undefined | null): number {\n if (!n) return -1;\n\n const id = this.getMeta(n)?.id;\n\n // if n is not a serialized Node, use -1 as its id.\n return id ?? -1;\n }\n\n getNode(id: number): Node | null {\n return this.idNodeMap.get(id) || null;\n }\n\n getIds(): number[] {\n return Array.from(this.idNodeMap.keys());\n }\n\n getMeta(n: Node): serializedNodeWithId | null {\n return this.nodeMetaMap.get(n) || null;\n }\n\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n: Node) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n\n if (n.childNodes) {\n n.childNodes.forEach((childNode) =>\n this.removeNodeFromMap(childNode as unknown as Node),\n );\n }\n }\n has(id: number): boolean {\n return this.idNodeMap.has(id);\n }\n\n hasNode(node: Node): boolean {\n return this.nodeMetaMap.has(node);\n }\n\n add(n: Node, meta: serializedNodeWithId) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n\n replace(id: number, n: Node) {\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\n reset() {\n this.idNodeMap = new Map();\n this.nodeMetaMap = new WeakMap();\n }\n}\n\nexport function createMirror(): Mirror {\n return new Mirror();\n}\n\nexport function maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn,\n}: {\n element: HTMLElement;\n maskInputOptions: MaskInputOptions;\n tagName: string;\n type: string | null;\n value: string | null;\n maskInputFn?: MaskInputFn;\n}): string {\n let text = value || '';\n const actualType = type && toLowerCase(type);\n\n if (\n maskInputOptions[tagName.toLowerCase() as keyof MaskInputOptions] ||\n (actualType && maskInputOptions[actualType as keyof MaskInputOptions])\n ) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = '*'.repeat(text.length);\n }\n }\n return text;\n}\n\nexport function toLowerCase<T extends string>(str: T): Lowercase<T> {\n return str.toLowerCase() as unknown as Lowercase<T>;\n}\n\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\ntype PatchedGetImageData = {\n [ORIGINAL_ATTRIBUTE_NAME]: CanvasImageData['getImageData'];\n} & CanvasImageData['getImageData'];\n\nexport function is2DCanvasBlank(canvas: HTMLCanvasElement): boolean {\n const ctx = canvas.getContext('2d');\n if (!ctx) return true;\n\n const chunkSize = 50;\n\n // get chunks of the canvas and check if it is blank\n for (let x = 0; x < canvas.width; x += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const getImageData = ctx.getImageData as PatchedGetImageData;\n const originalGetImageData =\n ORIGINAL_ATTRIBUTE_NAME in getImageData\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\n : getImageData;\n // by getting the canvas in chunks we avoid an expensive\n // `getImageData` call that retrieves everything\n // even if we can already tell from the first chunk(s) that\n // the canvas isn't blank\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 x,\n y,\n Math.min(chunkSize, canvas.width - x),\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}\n\nexport function isNodeMetaEqual(a: serializedNode, b: serializedNode): boolean {\n if (!a || !b || a.type !== b.type) return false;\n if (a.type === NodeType.Document)\n return a.compatMode === (b as documentNode).compatMode;\n else if (a.type === NodeType.DocumentType)\n return (\n a.name === (b as documentTypeNode).name &&\n a.publicId === (b as documentTypeNode).publicId &&\n a.systemId === (b as documentTypeNode).systemId\n );\n else if (\n a.type === NodeType.Comment ||\n a.type === NodeType.Text ||\n a.type === NodeType.CDATA\n )\n return a.textContent === (b as textNode).textContent;\n else if (a.type === NodeType.Element)\n return (\n a.tagName === (b as elementNode).tagName &&\n JSON.stringify(a.attributes) ===\n JSON.stringify((b as elementNode).attributes) &&\n a.isSVG === (b as elementNode).isSVG &&\n a.needBlock === (b as elementNode).needBlock\n );\n return false;\n}\n\n/**\n * Get the type of an input element.\n * This takes care of the case where a password input is changed to a text input.\n * In this case, we continue to consider this of type password, in order to avoid leaking sensitive data\n * where passwords should be masked.\n */\nexport function getInputType(element: HTMLElement): Lowercase<string> | null {\n // when omitting the type of input element(e.g. <input />), the type is treated as text\n const type = (element as HTMLInputElement).type;\n\n return element.hasAttribute('data-rr-is-password')\n ? 'password'\n : type\n ? // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n : null;\n}\n\n/**\n * Extracts the file extension from an a path, considering search parameters and fragments.\n * @param path - Path to file\n * @param baseURL - [optional] Base URL of the page, used to resolve relative paths. Defaults to current page URL.\n */\nexport function extractFileExtension(\n path: string,\n baseURL?: string,\n): string | null {\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?.[1] ?? null;\n}\n\nfunction extractOrigin(url: string): string {\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}\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;\nexport function absolutifyURLs(cssText: string | null, href: string): string {\n return (cssText || '').replace(\n URL_IN_CSS_REF,\n (\n origin: string,\n quote1: string,\n path1: string,\n quote2: string,\n path2: string,\n path3: string,\n ) => {\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}${\n extractOrigin(href) + filePath\n }${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}\n\nconst normalizationCache = new Map<string, string>();\nconst splitCache = new Map<string, string[]>();\n\n/**\n * Intention is to normalize by remove spaces, semicolons and CSS comments\n * so that we can compare css as authored vs. output of stringifyStylesheet\n */\nexport function normalizeCssString(cssText: string): string {\n if (!normalizationCache.has(cssText)) {\n const normalized = cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, '');\n normalizationCache.set(cssText, normalized);\n }\n\n // we know that the value is in the cache now\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return normalizationCache.get(cssText)!;\n}\n\n/**\n * Maps the output of stringifyStylesheet to individual text nodes of a <style> element\n * which occurs when javascript is used to append to the style element\n * and may also occur when browsers opt to break up large text nodes\n * performance needs to be considered, see e.g. #1603\n */\nexport function splitCssText(\n cssText: string,\n style: HTMLStyleElement,\n): string[] {\n const og = cssText;\n if (splitCache.has(cssText)) {\n // we know there's a result\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return splitCache.get(cssText)!;\n }\n const childNodes = Array.from(style.childNodes);\n const splits: string[] = [];\n let iterLimit = 0;\n if (childNodes.length > 1 && cssText && typeof cssText === 'string') {\n let cssTextNorm = normalizeCssString(cssText);\n const normFactor = cssTextNorm.length / cssText.length;\n for (let i = 1; i < childNodes.length; i++) {\n if (\n childNodes[i].textContent &&\n typeof childNodes[i].textContent === 'string'\n ) {\n const textContentNorm = normalizeCssString(childNodes[i].textContent!);\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]/) ||\n // 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 const bit = textContentNorm.substring(0, j);\n // this substring should appears only once in overall text too\n const bits = cssTextNorm.split(bit);\n let splitNorm = -1;\n if (bits.length === 2) {\n splitNorm = cssTextNorm.indexOf(bit);\n } else if (\n bits.length > 2 &&\n bits[0] === '' &&\n childNodes[i - 1].textContent !== ''\n ) {\n // this childNode has same starting content as previous\n splitNorm = cssTextNorm.indexOf(bit, 1);\n }\n if (splitNorm !== -1) {\n // find the split point in the original text\n let k = Math.floor(splitNorm / normFactor);\n for (; k > 0 && k < cssText.length; ) {\n iterLimit += 1;\n if (iterLimit > 50 * childNodes.length) {\n // quit for performance purposes\n splits.push(cssText);\n return splits;\n }\n const normPart = normalizeCssString(cssText.substring(0, k));\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); // either the full thing if no splits were found, or the last split\n if (og) {\n splitCache.set(og, splits);\n }\n return splits;\n}\n\nexport function markCssSplits(\n cssText: string,\n style: HTMLStyleElement,\n): string {\n return splitCssText(cssText, style).join('/* rr_split */');\n}\n", "import type {\n MaskInputOptions,\n SlimDOMOptions,\n MaskTextFn,\n MaskInputFn,\n KeepIframeSrcFn,\n ICanvas,\n DialogAttributes,\n} from './types';\nimport { NodeType } from '@posthog/rrweb-types';\nimport type {\n serializedNode,\n serializedNodeWithId,\n serializedElementNodeWithId,\n elementNode,\n attributes,\n mediaAttributes,\n DataURLOptions,\n} from '@posthog/rrweb-types';\nimport {\n Mirror,\n is2DCanvasBlank,\n isElement,\n isShadowRoot,\n maskInputValue,\n isNativeShadowDom,\n stringifyStylesheet,\n getInputType,\n toLowerCase,\n extractFileExtension,\n absolutifyURLs,\n markCssSplits,\n} from './utils';\nimport dom from '@posthog/rrweb-utils';\n\nlet _id = 1;\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\n\nexport const IGNORED_NODE = -2;\n\nexport function genId(): number {\n return _id++;\n}\n\nfunction getValidTagName(element: HTMLElement): Lowercase<string> {\n if (element instanceof HTMLFormElement) {\n return 'form';\n }\n\n const processedTagName = toLowerCase(element.tagName);\n\n if (tagNameRegex.test(processedTagName)) {\n // if the tag name is odd and we cannot extract\n // anything from the string, then we return a\n // generic div\n return 'div';\n }\n\n return processedTagName;\n}\n\nlet canvasService: HTMLCanvasElement | null;\nlet canvasCtx: CanvasRenderingContext2D | null;\n\n// eslint-disable-next-line no-control-regex\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/; // Don't use \\s, to avoid matching non-breaking space\n// eslint-disable-next-line no-control-regex\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\n\nfunction getAbsoluteSrcsetString(doc: Document, attributeValue: string) {\n /*\n run absoluteToDoc over every url in the srcset\n\n this is adapted from https://github.com/albell/parse-srcset/\n without the parsing of the descriptors (we return these as-is)\n parce-srcset is in turn based on\n https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n */\n if (attributeValue.trim() === '') {\n return attributeValue;\n }\n\n let pos = 0;\n\n function collectCharacters(regEx: RegExp) {\n let chars: string;\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\n const output = [];\n // eslint-disable-next-line no-constant-condition\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n // don't split on commas within urls\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === ',') {\n // aside: according to spec more than one comma at the end is a parse error, but we ignore that\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n // the trailing comma splits the srcset, so the interpretion is that\n // another url will follow, and the descriptor is empty\n output.push(url);\n } else {\n let descriptorsStr = '';\n url = absoluteToDoc(doc, url);\n let inParens = false;\n // eslint-disable-next-line no-constant-condition\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; // parse the next url\n } else if (c === '(') {\n inParens = true;\n }\n } else {\n // in parenthesis; ignore commas\n // (parenthesis may be supported by future additions to spec)\n if (c === ')') {\n inParens = false;\n }\n }\n descriptorsStr += c;\n pos += 1;\n }\n }\n }\n return output.join(', ');\n}\n\nconst cachedDocument = new WeakMap<Document, HTMLAnchorElement>();\n\nexport function absoluteToDoc(doc: Document, attributeValue: string): string {\n if (!attributeValue || attributeValue.trim() === '') {\n return attributeValue;\n }\n\n return getHref(doc, attributeValue);\n}\n\nfunction isSVGElement(el: Element): boolean {\n return Boolean(el.tagName === 'svg' || (el as SVGElement).ownerSVGElement);\n}\n\nfunction getHref(doc: Document, customHref?: string) {\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 // note: using `new URL` is slower. See #1434 or https://jsbench.me/uqlud17rxo/1\n a.setAttribute('href', customHref);\n return a.href;\n}\n\nexport function transformAttribute(\n doc: Document,\n tagName: Lowercase<string>,\n name: Lowercase<string>,\n value: string | null,\n): string | null {\n if (!value) {\n return value;\n }\n\n // relative path in attribute\n if (\n name === 'src' ||\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))\n ) {\n // href starts with a # is an id pointer for svg\n return absoluteToDoc(doc, value);\n } else if (name === 'xlink:href' && value[0] !== '#') {\n // xlink:href starts with # is an id pointer\n return absoluteToDoc(doc, value);\n } else if (\n name === 'background' &&\n (tagName === 'table' || tagName === 'td' || tagName === 'th')\n ) {\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\n return value;\n}\n\nexport function ignoreAttribute(\n tagName: string,\n name: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _value: unknown,\n): boolean {\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\n}\n\nexport function _isBlockedElement(\n element: HTMLElement,\n blockClass: string | RegExp,\n blockSelector: string | null,\n): boolean {\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 }\n\n return false;\n}\n\nexport function classMatchesRegex(\n node: Node | null,\n regex: RegExp,\n checkAncestors: boolean,\n): boolean {\n if (!node) return false;\n if (node.nodeType !== node.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(dom.parentNode(node), regex, checkAncestors);\n }\n\n for (let eIndex = (node as HTMLElement).classList.length; eIndex--; ) {\n const className = (node as HTMLElement).classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(dom.parentNode(node), regex, checkAncestors);\n}\n\nexport function needMaskingText(\n node: Node,\n maskTextClass: string | RegExp,\n maskTextSelector: string | null,\n checkAncestors: boolean,\n): boolean {\n let el: Element;\n if (isElement(node)) {\n el = node;\n if (!dom.childNodes(el).length) {\n // optimisation: we can avoid any of the below checks on leaf elements\n // as masking is applied to child text nodes only\n return false;\n }\n } else if (dom.parentElement(node) === null) {\n // should warn? maybe a text node isn't attached to a parent node yet?\n return false;\n } else {\n el = dom.parentElement(node)!;\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 }\n return false;\n}\n\n// https://stackoverflow.com/a/36155560\nfunction onceIframeLoaded(\n iframeEl: HTMLIFrameElement,\n listener: () => unknown,\n iframeLoadTimeout: number,\n) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n // document is loading\n let fired = false;\n\n let readyState: DocumentReadyState;\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 // check blank frame for Chrome\n const blankUrl = 'about:blank';\n if (\n win.location.href !== blankUrl ||\n iframeEl.src === blankUrl ||\n iframeEl.src === ''\n ) {\n // iframe was already loaded, make sure we wait to trigger the listener\n // till _after_ the mutation that found this iframe has had time to process\n setTimeout(listener, 0);\n\n return iframeEl.addEventListener('load', listener); // keep listing for future loads\n }\n // use default listener\n iframeEl.addEventListener('load', listener);\n}\n\nfunction onceStylesheetLoaded(\n link: HTMLLinkElement,\n listener: () => unknown,\n styleSheetLoadTimeout: number,\n) {\n let fired = false;\n let styleSheetLoaded: StyleSheet | null;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n\n if (styleSheetLoaded) return;\n\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n\n link.addEventListener('load', () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\n\nfunction serializeNode(\n n: Node,\n options: {\n doc: Document;\n mirror: Mirror;\n blockClass: string | RegExp;\n blockSelector: string | null;\n needsMask: boolean;\n inlineStylesheet: boolean;\n maskInputOptions: MaskInputOptions;\n maskTextFn: MaskTextFn | undefined;\n maskInputFn: MaskInputFn | undefined;\n dataURLOptions?: DataURLOptions;\n inlineImages: boolean;\n recordCanvas: boolean;\n keepIframeSrcFn: KeepIframeSrcFn;\n /**\n * `newlyAddedElement: true` skips scrollTop and scrollLeft check\n */\n newlyAddedElement?: boolean;\n cssCaptured?: boolean;\n },\n): serializedNode | false {\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 // Only record root id when document object is not the base document\n const rootId = getRootId(doc, mirror);\n switch (n.nodeType) {\n case n.DOCUMENT_NODE:\n if ((n as Document).compatMode !== 'CSS1Compat') {\n return {\n type: NodeType.Document,\n childNodes: [],\n compatMode: (n as Document).compatMode, // 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 as DocumentType).name,\n publicId: (n as DocumentType).publicId,\n systemId: (n as DocumentType).systemId,\n rootId,\n };\n case n.ELEMENT_NODE:\n return serializeElementNode(n as HTMLElement, {\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 as Text, {\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: dom.textContent(n as Comment) || '',\n rootId,\n };\n default:\n return false;\n }\n}\n\nfunction getRootId(doc: Document, mirror: Mirror): number | undefined {\n if (!mirror.hasNode(doc)) return undefined;\n const docId = mirror.getId(doc);\n return docId === 1 ? undefined : docId;\n}\n\nfunction serializeTextNode(\n n: Text,\n options: {\n doc: Document;\n needsMask: boolean;\n maskTextFn: MaskTextFn | undefined;\n rootId: number | undefined;\n cssCaptured?: boolean;\n },\n): serializedNode {\n const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n // The parent node may not be a html element which has a tagName attribute.\n // So just let it be undefined which is ok in this use case.\n const parent = dom.parentNode(n);\n const parentTagName = parent && (parent as HTMLElement).tagName;\n let textContent: string | null = '';\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\n if (isScript) {\n textContent = 'SCRIPT_PLACEHOLDER';\n } else if (!cssCaptured) {\n textContent = dom.textContent(n);\n if (isStyle && textContent) {\n // mutation only: we don't need to use stringifyStylesheet\n // as a <style> text node mutation obliterates any previous\n // programmatic rule manipulation (.insertRule etc.)\n // so the current textContent represents the most up to date state\n textContent = absolutifyURLs(textContent, getHref(options.doc));\n }\n }\n if (!isStyle && !isScript && textContent && needsMask) {\n textContent = maskTextFn\n ? maskTextFn(textContent, dom.parentElement(n))\n : textContent.replace(/[\\S]/g, '*');\n }\n\n return {\n type: NodeType.Text,\n textContent: textContent || '',\n rootId,\n };\n}\n\nfunction findStylesheet(doc: Document, href: string) {\n return Array.from(doc.styleSheets).find((s) => s.href === href);\n}\n\n/**\n * in production, we've seen elements like\n * `<link type=\"text/css\" rel=\"stylesheet\" id=\"dark-mode-custom-link\"></link>`\n * while HTMLLinkElement suggests an href is always present\n * the w3c spec is less specific\n * and regardless we've seen at least one instance of this in the wild\n * let's be defensive and make sure this is typed as possibly undefined\n */\nfunction hrefFrom(n: unknown): string | undefined {\n return (n as HTMLLinkElement).href;\n}\n\nfunction serializeElementNode(\n n: HTMLElement,\n options: {\n doc: Document;\n blockClass: string | RegExp;\n blockSelector: string | null;\n inlineStylesheet: boolean;\n maskInputOptions: MaskInputOptions;\n maskInputFn: MaskInputFn | undefined;\n dataURLOptions?: DataURLOptions;\n inlineImages: boolean;\n recordCanvas: boolean;\n keepIframeSrcFn: KeepIframeSrcFn;\n /**\n * `newlyAddedElement: true` skips scrollTop and scrollLeft check\n */\n newlyAddedElement?: boolean;\n rootId: number | undefined;\n },\n): serializedNode | false {\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: 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 // remote css\n if (tagName === 'link' && inlineStylesheet) {\n //TODO: maybe replace this `.styleSheets` with original one\n const href: string | undefined = hrefFrom(n);\n if (href) {\n let stylesheet = findStylesheet(doc, href);\n if (!stylesheet && href.includes('.css')) {\n const rootDomain = window.location.origin;\n const stylesheetPath = href.replace(window.location.href, '');\n const potentialStylesheetHref = rootDomain + '/' + stylesheetPath;\n stylesheet = findStylesheet(doc, potentialStylesheetHref);\n }\n let cssText: string | null = 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 }\n if (tagName === 'style' && (n as HTMLStyleElement).sheet) {\n let cssText = stringifyStylesheet(\n (n as HTMLStyleElement).sheet as CSSStyleSheet,\n );\n if (cssText) {\n if (n.childNodes.length > 1) {\n cssText = markCssSplits(cssText, n as HTMLStyleElement);\n }\n attributes._cssText = cssText;\n }\n }\n // form fields\n if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {\n const value = (n as HTMLInputElement | HTMLTextAreaElement).value;\n const checked = (n as HTMLInputElement).checked;\n if (\n attributes.type !== 'radio' &&\n attributes.type !== 'checkbox' &&\n attributes.type !== 'submit' &&\n attributes.type !== 'button' &&\n value\n ) {\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 as HTMLOptionElement).selected && !maskInputOptions['select']) {\n attributes.selected = true;\n } else {\n // ignore the html attribute (which corresponds to DOM (n as HTMLOptionElement).defaultSelected)\n // if it's already been changed\n delete attributes.selected;\n }\n }\n\n if (tagName === 'dialog' && (n as HTMLDialogElement).open) {\n // register what type of dialog is this\n // `modal` or `non-modal`\n // this is used to trigger `showModal()` or `show()` on replay (outside of rrweb-snapshot, in rrweb)\n try {\n (attributes as DialogAttributes).rr_open_mode = n.matches('dialog:modal')\n ? 'modal'\n : 'non-modal';\n } catch {\n // likely this is safari not able to deal with the `:modal` selector\n // we can't detect whether the dialog is modal or non-modal open, so have to guess\n // hopefully this is only safari 15.4 and 15.5\n attributes.rr_open_mode = 'modal';\n attributes.ph_rr_could_not_detect_modal = true;\n }\n }\n\n // canvas image data\n if (tagName === 'canvas' && recordCanvas) {\n if ((n as ICanvas).__context === '2d') {\n // only record this on 2d canvas\n if (!is2DCanvasBlank(n as HTMLCanvasElement)) {\n attributes.rr_dataURL = (n as HTMLCanvasElement).toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality,\n );\n }\n } else if (!('__context' in n)) {\n // context is unknown, better not call getContext to trigger it\n const canvasDataURL = (n as HTMLCanvasElement).toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality,\n );\n\n // create blank canvas of same dimensions\n const blankCanvas = doc.createElement('canvas');\n blankCanvas.width = (n as HTMLCanvasElement).width;\n blankCanvas.height = (n as HTMLCanvasElement).height;\n const blankCanvasDataURL = blankCanvas.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality,\n );\n\n // no need to save dataURL if it's the same as blank canvas\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n // save image offline\n if (tagName === 'img' && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement('canvas');\n canvasCtx = canvasService.getContext('2d');\n }\n const image = n as HTMLImageElement;\n const imageSrc: string =\n 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(); // too early due to image reload\n else image.addEventListener('load', recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err as string}`,\n );\n }\n }\n if (image.crossOrigin === 'anonymous') {\n priorCrossOrigin\n ? (attributes.crossOrigin = priorCrossOrigin)\n : image.removeAttribute('crossorigin');\n }\n };\n // The image content may not have finished loading yet.\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener('load', recordInlineImage);\n }\n // media elements\n if (tagName === 'audio' || tagName === 'video') {\n const mediaAttributes = attributes as mediaAttributes;\n mediaAttributes.rr_mediaState = (n as HTMLMediaElement).paused\n ? 'paused'\n : 'played';\n mediaAttributes.rr_mediaCurrentTime = (n as HTMLMediaElement).currentTime;\n mediaAttributes.rr_mediaPlaybackRate = (n as HTMLMediaElement).playbackRate;\n mediaAttributes.rr_mediaMuted = (n as HTMLMediaElement).muted;\n mediaAttributes.rr_mediaLoop = (n as HTMLMediaElement).loop;\n mediaAttributes.rr_mediaVolume = (n as HTMLMediaElement).volume;\n }\n // Scroll\n if (!newlyAddedElement) {\n // `scrollTop` and `scrollLeft` are expensive calls because they trigger reflow.\n // Since `scrollTop` & `scrollLeft` are always 0 when an element is added to the DOM.\n // And scrolls also get picked up by rrweb's ScrollObserver\n // So we can safely skip the `scrollTop/Left` calls for newly added elements\n if (n.scrollLeft) {\n attributes.rr_scrollLeft = n.scrollLeft;\n }\n if (n.scrollTop) {\n attributes.rr_scrollTop = n.scrollTop;\n }\n }\n // block element\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 // iframe\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src as string)) {\n if (!(n 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 attributes.rr_src = attributes.src;\n }\n delete attributes.src; // prevent auto loading\n }\n\n let isCustomElement: true | undefined;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e) {\n // In case old browsers don't support customElements\n }\n\n return {\n type: NodeType.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n as Element) || undefined,\n needBlock,\n rootId,\n isCustom: isCustomElement,\n };\n}\n\nfunction lowerIfExists(\n maybeAttr: string | number | boolean | undefined | null,\n): string {\n if (maybeAttr === undefined || maybeAttr === null) {\n return '';\n } else {\n return (maybeAttr as string).toLowerCase();\n }\n}\n\nfunction slimDOMExcluded(\n sn: serializedNode,\n slimDOMOptions: SlimDOMOptions,\n): boolean {\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\n // TODO: convert IE conditional comments to real nodes\n return true;\n } else if (sn.type === NodeType.Element) {\n if (\n slimDOMOptions.script &&\n // script tag\n (sn.tagName === 'script' ||\n // (module)preload link\n (sn.tagName === 'link' &&\n (sn.attributes.rel === 'preload' ||\n sn.attributes.rel === 'modulepreload') &&\n sn.attributes.as === 'script') ||\n // prefetch link\n (sn.tagName === 'link' &&\n sn.attributes.rel === 'prefetch' &&\n typeof sn.attributes.href === 'string' &&\n extractFileExtension(sn.attributes.href) === 'js'))\n ) {\n return true;\n } else if (\n slimDOMOptions.headFavicon &&\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\n (sn.tagName === 'meta' &&\n (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/,\n ) ||\n lowerIfExists(sn.attributes.name) === 'application-name' ||\n lowerIfExists(sn.attributes.rel) === 'icon' ||\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))\n ) {\n return true;\n } else if (sn.tagName === 'meta') {\n if (\n slimDOMOptions.headMetaDescKeywords &&\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)\n ) {\n return true;\n } else if (\n slimDOMOptions.headMetaSocial &&\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\n lowerIfExists(sn.attributes.name) === 'pinterest')\n ) {\n return true;\n } else if (\n slimDOMOptions.headMetaRobots &&\n (lowerIfExists(sn.attributes.name) === 'robots' ||\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\n lowerIfExists(sn.attributes.name) === 'bingbot')\n ) {\n return true;\n } else if (\n slimDOMOptions.headMetaHttpEquiv &&\n sn.attributes['http-equiv'] !== undefined\n ) {\n // e.g. X-UA-Compatible, Content-Type, Content-Language,\n // cache-control, X-Translated-By\n return true;\n } else if (\n slimDOMOptions.headMetaAuthorship &&\n (lowerIfExists(sn.attributes.name) === 'author' ||\n lowerIfExists(sn.attributes.name) === 'generator' ||\n lowerIfExists(sn.attributes.name) === 'framework' ||\n lowerIfExists(sn.attributes.name) === 'publisher' ||\n lowerIfExists(sn.attributes.name) === 'progid' ||\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\n lowerIfExists(sn.attributes.property).match(/^product:/))\n ) {\n return true;\n } else if (\n slimDOMOptions.headMetaVerification &&\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\n lowerIfExists(sn.attributes.name) === 'verification' ||\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')\n ) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport function serializeNodeWithId(\n n: Node,\n options: {\n doc: Document;\n mirror: Mirror;\n blockClass: string | RegExp;\n blockSelector: string | null;\n maskTextClass: string | RegExp;\n maskTextSelector: string | null;\n skipChild: boolean;\n inlineStylesheet: boolean;\n newlyAddedElement?: boolean;\n maskInputOptions?: MaskInputOptions;\n needsMask?: boolean;\n maskTextFn: MaskTextFn | undefined;\n maskInputFn: MaskInputFn | undefined;\n slimDOMOptions: SlimDOMOptions;\n dataURLOptions?: DataURLOptions;\n keepIframeSrcFn?: KeepIframeSrcFn;\n inlineImages?: boolean;\n recordCanvas?: boolean;\n preserveWhiteSpace?: boolean;\n onSerialize?: (n: Node) => unknown;\n onIframeLoad?: (\n iframeNode: HTMLIFrameElement,\n node: serializedElementNodeWithId,\n ) => unknown;\n iframeLoadTimeout?: number;\n onStylesheetLoad?: (\n linkNode: HTMLLinkElement,\n node: serializedElementNodeWithId,\n ) => unknown;\n stylesheetLoadTimeout?: number;\n cssCaptured?: boolean;\n },\n): serializedNodeWithId | null {\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 = 5000,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5000,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n cssCaptured = false,\n } = options;\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n\n if (!needsMask) {\n // perf: if needsMask = true, children won't also need to check\n const checkAncestors = needsMask === undefined; // if false, we've already checked ancestors\n needsMask = needMaskingText(\n n as Element,\n maskTextClass,\n maskTextSelector,\n checkAncestors,\n );\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 // TODO: dev only\n console.warn(n, 'not serialized');\n return null;\n }\n\n let id: number | undefined;\n if (mirror.hasNode(n)) {\n // Reuse the previous id\n id = mirror.getId(n);\n } else if (\n slimDOMExcluded(_serializedNode, slimDOMOptions) ||\n (!preserveWhiteSpace &&\n _serializedNode.type === NodeType.Text &&\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)\n ) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n\n const serializedNode = Object.assign(_serializedNode, { id });\n // add IGNORED_NODE to mirror to track nextSiblings\n mirror.add(n, serializedNode);\n\n if (id === IGNORED_NODE) {\n return null; // slimDOM\n }\n\n if (onSerialize) {\n onSerialize(n);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n // this property was not needed in replay side\n delete serializedNode.needBlock;\n const shadowRootEl = dom.shadowRoot(n);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl))\n serializedNode.isShadowHost = true;\n }\n if (\n (serializedNode.type === NodeType.Document ||\n serializedNode.type === NodeType.Element) &&\n recordChild\n ) {\n if (\n slimDOMOptions.headWhitespace &&\n serializedNode.type === NodeType.Element &&\n serializedNode.tagName === 'head'\n // would impede performance: || getComputedStyle(n)['white-space'] === 'normal'\n ) {\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\n if (\n serializedNode.type === NodeType.Element &&\n serializedNode.tagName === 'textarea' &&\n (serializedNode as elementNode).attributes.value !== undefined\n ) {\n // value parameter in DOM reflects the correct value, so ignore childNode\n } else {\n if (\n serializedNode.type === NodeType.Element &&\n (serializedNode as elementNode).attributes._cssText !== undefined &&\n typeof serializedNode.attributes._cssText === 'string'\n ) {\n bypassOptions.cssCaptured = true;\n }\n for (const childN of Array.from(dom.childNodes(n))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n\n let shadowRootEl: ShadowRoot | null = null;\n if (isElement(n) && (shadowRootEl = dom.shadowRoot(n))) {\n for (const childN of Array.from(dom.childNodes(shadowRootEl))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(shadowRootEl) &&\n (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n\n const parent = dom.parentNode(n);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n\n if (\n serializedNode.type === NodeType.Element &&\n serializedNode.tagName === 'iframe'\n ) {\n onceIframeLoaded(\n n as HTMLIFrameElement,\n () => {\n const iframeDoc = (n as HTMLIFrameElement).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\n if (serializedIframeNode) {\n onIframeLoad(\n n as HTMLIFrameElement,\n serializedIframeNode as serializedElementNodeWithId,\n );\n }\n }\n },\n iframeLoadTimeout,\n );\n }\n\n // <link rel=stylesheet href=...>\n if (\n serializedNode.type === NodeType.Element &&\n serializedNode.tagName === 'link' &&\n typeof serializedNode.attributes.rel === 'string' &&\n (serializedNode.attributes.rel === 'stylesheet' ||\n (serializedNode.attributes.rel === 'preload' &&\n typeof serializedNode.attributes.href === 'string' &&\n extractFileExtension(serializedNode.attributes.href) === 'css'))\n ) {\n onceStylesheetLoaded(\n n as HTMLLinkElement,\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\n if (serializedLinkNode) {\n onStylesheetLoad(\n n as HTMLLinkElement,\n serializedLinkNode as serializedElementNodeWithId,\n );\n }\n }\n },\n stylesheetLoadTimeout,\n );\n }\n\n return serializedNode;\n}\n\nfunction snapshot(\n n: Document,\n options?: {\n mirror?: Mirror;\n blockClass?: string | RegExp;\n blockSelector?: string | null;\n maskTextClass?: string | RegExp;\n maskTextSelector?: string | null;\n inlineStylesheet?: boolean;\n maskAllInputs?: boolean | MaskInputOptions;\n maskTextFn?: MaskTextFn;\n maskInputFn?: MaskInputFn;\n slimDOM?: 'all' | boolean | SlimDOMOptions;\n dataURLOptions?: DataURLOptions;\n inlineImages?: boolean;\n recordCanvas?: boolean;\n preserveWhiteSpace?: boolean;\n onSerialize?: (n: Node) => unknown;\n onIframeLoad?: (\n iframeNode: HTMLIFrameElement,\n node: serializedElementNodeWithId,\n ) => unknown;\n iframeLoadTimeout?: number;\n onStylesheetLoad?: (\n linkNode: HTMLLinkElement,\n node: serializedElementNodeWithId,\n ) => unknown;\n stylesheetLoadTimeout?: number;\n keepIframeSrcFn?: KeepIframeSrcFn;\n },\n): serializedNodeWithId | null {\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: 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 : maskAllInputs === false\n ? {\n password: true,\n }\n : maskAllInputs;\n const slimDOMOptions: SlimDOMOptions =\n slimDOM === true || slimDOM === 'all'\n ? // if true: set of sensible options that should not throw away any information\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === 'all', // destructive\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true,\n }\n : slimDOM === false\n ? {}\n : 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}\n\nexport function visitSnapshot(\n node: serializedNodeWithId,\n onVisit: (node: serializedNodeWithId) => unknown,\n) {\n function walk(current: serializedNodeWithId) {\n onVisit(current);\n if (\n current.type === NodeType.Document ||\n current.type === NodeType.Element\n ) {\n current.childNodes.forEach(walk);\n }\n }\n\n walk(node);\n}\n\nexport function cleanupSnapshot() {\n // allow a new recording to start numbering nodes from scratch\n _id = 1;\n}\n\nexport default snapshot;\n", "import type { AcceptedPlugin, Rule } from 'postcss';\n\nconst MEDIA_SELECTOR = /(max|min)-device-(width|height)/;\nconst MEDIA_SELECTOR_GLOBAL = new RegExp(MEDIA_SELECTOR.source, 'g');\n\nconst mediaSelectorPlugin: AcceptedPlugin = {\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};\n\n// Simplified from https://github.com/giuseppeg/postcss-pseudo-classes/blob/master/index.js\nconst pseudoClassPlugin: AcceptedPlugin = {\n postcssPlugin: 'postcss-hover-classes',\n prepare: function () {\n const fixed: Rule[] = [];\n return {\n Rule: function (rule) {\n if (fixed.indexOf(rule) !== -1) {\n return;\n }\n fixed.push(rule);\n rule.selectors.forEach(function (selector) {\n if (selector.includes(':hover')) {\n rule.selector += ',\\n' + selector.replace(/:hover/g, '.\\\\:hover');\n }\n });\n },\n };\n },\n};\n\nexport { mediaSelectorPlugin, pseudoClassPlugin };\n", "var x=String;\nvar create=function() {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}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n", "export default {}", "'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\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\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\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\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\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\n let maxWidth = String(end).length\n\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\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n 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 })\n .join('\\n')\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}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n", "'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n", "'use strict'\n\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}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.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\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n document(node) {\n this.body(node)\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.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\n rawBeforeComment(root, node) {\n let value\n root.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(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.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(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.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\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.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\n rawColon(root) {\n let value\n root.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\n rawEmptyBody(root) {\n let value\n root.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\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\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\n rawSemicolon(root) {\n let value\n root.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\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n", "'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n", "'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\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\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\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\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\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\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\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(message)\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\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 index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index, stringRepresentation)\n }\n return pos\n }\n\n positionInside(index, stringRepresentation) {\n let string = stringRepresentation || this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { column, line }\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\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 ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n }\n : {\n column: start.column + 1,\n line: start.line\n }\n\n if (opts.word) {\n let stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index, stringRepresentation)\n end = this.positionInside(index + 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\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\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { column: start.column + 1, line: start.line }\n }\n\n return { end, start }\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\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\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n", "'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n", "let urlAlphabet =\n '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 = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n", "'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\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(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\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\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\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) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\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(file), map)\n return this.loadFile(map)\n }\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n", "'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { isAbsolute, resolve } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(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\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\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\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { column: origin.column, line: origin.line },\n origin.endLine === undefined\n ? origin.column\n : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { column, line },\n endLine === undefined ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { column, endColumn, endLine, line, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\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\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\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\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ column, line })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\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 = undefined\n }\n }\n return json\n }\n\n get from() {\n return this.file || this.id\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n", "'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, relative, resolve, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.originalCSS = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n this.memoizedFileURLs = new Map()\n this.memoizedPaths = new Map()\n this.memoizedURLs = new Map()\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n '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\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\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\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.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\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\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\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n })\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\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.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\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\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.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\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\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\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\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\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\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n let path = relative(from, file)\n this.memoizedPaths.set(file, path)\n\n return path\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.originalCSS, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\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\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path)\n if (cached) return cached\n\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString()\n this.memoizedFileURLs.set(path, fileURL)\n\n return fileURL\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n toUrl(path) {\n let cached = this.memoizedURLs.get(path)\n if (cached) return cached\n\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n this.memoizedURLs.set(path, url)\n\n return url\n }\n}\n\nmodule.exports = MapGenerator\n", "'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n", "'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\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}\n\nfunction markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(i)\n }\n }\n}\n\nclass Container extends Node {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n }\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\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 node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\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 node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(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(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) 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\n return processed\n }\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 node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\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\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\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\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\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\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\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\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n", "'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n", "/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n", "'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\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\n for (let opt in opts) this[opt] = opts[opt]\n }\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\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n", "'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\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\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n", "'use strict'\n\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)\n\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\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\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 (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\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\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\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\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\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\n break\n }\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\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\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\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\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 (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\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\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\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\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\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n endOfFile,\n nextToken,\n position\n }\n}\n", "'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n", "'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\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 node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n", "'use strict'\n\nlet list = {\n comma(string) {\n return list.split(string, [','], true)\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\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\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n }\n}\n\nmodule.exports = list\nlist.default = list\n", "'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n", "'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\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}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n\n this.createTokenizer()\n this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\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\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n node.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 node.source.end = this.getPosition(prev[3] || prev[2])\n node.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\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\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 // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\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\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\n prev = token\n }\n return false\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n node.source.end.offset++\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\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\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.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 node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\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\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\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\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\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\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\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\n // Helpers\n\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\n init(node, offset) {\n this.current.push(node)\n node.source = {\n input: this.input,\n start: this.getPosition(offset)\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\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\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\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\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\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\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\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 node.raws[prop] = { raw, value }\n }\n node[prop] = value\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\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\n // Errors\n\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\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\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\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\n unnamedAtrule(node, 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}\n\nmodule.exports = Parser\n", "'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.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 +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n", "'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n atrule: 'AtRule',\n comment: 'Comment',\n decl: 'Declaration',\n document: 'Document',\n root: 'Root',\n rule: 'Rule'\n}\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}\n\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.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 (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node,\n visitorIndex: 0,\n visitors: []\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = 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 parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, postcss, result: this.result }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\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\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\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 node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(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\n return this.result\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this.css\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.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, node.toProxy())) return\n }\n }\n }\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n get content() {\n return this.stringify().content\n }\n\n get css() {\n return this.stringify().css\n }\n\n get map() {\n return this.stringify().map\n }\n\n get messages() {\n return this.sync().messages\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n return this.sync().root\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n", "'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, 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\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this._css\n }\n\n warnings() {\n return []\n }\n\n get content() {\n return this.result.css\n }\n\n get css() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get messages() {\n return []\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n", "'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.38'\n this.plugins = this.normalize(plugins)\n }\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\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 ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n '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\n process(css, opts = {}) {\n if (\n !this.plugins.length &&\n !opts.parser &&\n !opts.stringifier &&\n !opts.syntax\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n", "'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(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(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n", "'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n", "import postcss from './postcss.js'\n\nexport default postcss\n\nexport const stringify = postcss.stringify\nexport const fromJSON = postcss.fromJSON\nexport const plugin = postcss.plugin\nexport const parse = postcss.parse\nexport const list = postcss.list\n\nexport const document = postcss.document\nexport const comment = postcss.comment\nexport const atRule = postcss.atRule\nexport const rule = postcss.rule\nexport const decl = postcss.decl\nexport const root = postcss.root\n\nexport const CssSyntaxError = postcss.CssSyntaxError\nexport const Declaration = postcss.Declaration\nexport const Container = postcss.Container\nexport const Processor = postcss.Processor\nexport const Document = postcss.Document\nexport const Comment = postcss.Comment\nexport const Warning = postcss.Warning\nexport const AtRule = postcss.AtRule\nexport const Result = postcss.Result\nexport const Input = postcss.Input\nexport const Rule = postcss.Rule\nexport const Root = postcss.Root\nexport const Node = postcss.Node\n", "import { mediaSelectorPlugin, pseudoClassPlugin } from './css';\nimport {\n type serializedNodeWithId,\n type serializedElementNodeWithId,\n NodeType,\n type elementNode,\n type legacyAttributes,\n} from '@posthog/rrweb-types';\nimport { type tagMap, type BuildCache } from './types';\nimport { isElement, Mirror, isNodeMetaEqual } from './utils';\nimport postcss from 'postcss';\n\nconst tagMap: 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: elementNode): string {\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}\n\nexport function adaptCssForReplay(cssText: string, cache: BuildCache): string {\n const cachedStyle = cache?.stylesWithHoverClass.get(cssText);\n if (cachedStyle) return cachedStyle;\n\n const ast: { css: string } = postcss([\n mediaSelectorPlugin,\n pseudoClassPlugin,\n ]).process(cssText);\n const result = ast.css;\n cache?.stylesWithHoverClass.set(cssText, result);\n return result;\n}\n\nexport function createCache(): BuildCache {\n const stylesWithHoverClass: Map<string, string> = new Map();\n return {\n stylesWithHoverClass,\n };\n}\n\n/**\n * undo splitCssText/markCssSplits\n * (would move to utils.ts but uses `adaptCssForReplay`)\n */\nexport function applyCssSplits(\n n: serializedElementNodeWithId,\n cssText: string,\n hackCss: boolean,\n cache: BuildCache,\n): void {\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 (\n cssTextSplits.length > 1 &&\n cssTextSplits.length > childTextNodes.length\n ) {\n // unexpected: remerge the last two so that we don't discard any css\n cssTextSplits.splice(-2, 2, cssTextSplits.slice(-2).join(''));\n }\n for (let i = 0; i < childTextNodes.length; i++) {\n const childTextNode = childTextNodes[i];\n const cssTextSection = cssTextSplits[i];\n if (childTextNode && cssTextSection) {\n // id will be assigned when these child nodes are\n // iterated over in buildNodeWithSN\n childTextNode.textContent = hackCss\n ? adaptCssForReplay(cssTextSection, cache)\n : cssTextSection;\n }\n }\n}\n\n/**\n * Normally a <style> element has a single textNode containing the rules.\n * During serialization, we bypass this (`styleEl.sheet`) to get the rules the\n * browser sees and serialize this to a special _cssText attribute, blanking\n * out any text nodes. This function reverses that and also handles cases where\n * there were no textNode children present (dynamic css/or a <link> element) as\n * well as multiple textNodes, which need to be repopulated (based on presence of\n * a special `rr_split` marker in case they are modified by subsequent mutations.\n */\nexport function buildStyleNode(\n n: serializedElementNodeWithId,\n styleEl: HTMLStyleElement, // when inlined, a <link type=\"stylesheet\"> also gets rebuilt as a <style>\n cssText: string,\n options: {\n doc: Document;\n hackCss: boolean;\n cache: BuildCache;\n },\n) {\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 /**\n <link> element or dynamic <style> are serialized without any child nodes\n we create the text node without an ID or presence in mirror as it can't\n */\n styleEl.appendChild(doc.createTextNode(cssText));\n }\n}\n\nfunction buildNode(\n n: serializedNodeWithId,\n options: {\n doc: Document;\n hackCss: boolean;\n cache: BuildCache;\n },\n): Node | null {\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 node: Element;\n if (n.isSVG) {\n node = 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 &&\n // If the browser supports custom elements\n doc.defaultView?.customElements &&\n // 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 node = doc.createElement(tagName);\n }\n /**\n * Attribute names start with `rr_` are internal attributes added by rrweb.\n * They often overwrite other attributes on the element.\n * We need to parse them last so they can overwrite conflicting attributes.\n */\n const specialAttributes: { [key: string]: string | number } = {};\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 (\n tagName === 'option' &&\n name === 'selected' &&\n (value as legacyAttributes[typeof name]) === false\n ) {\n // legacy fix (TODO: if `value === false` can be generated for other attrs,\n // should we also omit those other attrs from build ?)\n continue;\n }\n\n // null values mean the attribute was removed\n if (value === null) {\n continue;\n }\n\n /**\n * Boolean attributes are considered to be true if they're present on the element at all.\n * We should set value to the empty string (\"\") or the attribute's name, with no leading or trailing whitespace.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute#parameters\n */\n if (value === true) value = '';\n\n if (name.startsWith('rr_')) {\n specialAttributes[name] = value;\n continue;\n }\n\n if (typeof value !== 'string') {\n // pass\n } else if (tagName === 'style' && name === '_cssText') {\n buildStyleNode(n, node as HTMLStyleElement, value, options);\n continue; // no need to set _cssText as attribute\n } else if (tagName === 'textarea' && name === 'value') {\n // create without an ID or presence in mirror\n node.appendChild(doc.createTextNode(value));\n n.childNodes = []; // value overrides childNodes\n continue;\n }\n\n try {\n if (n.isSVG && name === 'xlink:href') {\n node.setAttributeNS(\n 'http://www.w3.org/1999/xlink',\n name,\n value.toString(),\n );\n } else if (\n name === 'onload' ||\n name === 'onclick' ||\n name.substring(0, 7) === 'onmouse'\n ) {\n // Rename some of the more common atttributes from https://www.w3schools.com/tags/ref_eventattributes.asp\n // as setting them triggers a console.error (which shows up despite the try/catch)\n // Assumption: these attributes are not used to css\n node.setAttribute('_' + name, value.toString());\n } else if (\n tagName === 'meta' &&\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\n name === 'content'\n ) {\n // If CSP contains style-src and inline-style is disabled, there will be an error \"Refused to apply inline style because it violates the following Content Security Policy directive: style-src '*'\".\n // And the function insertStyleRules in rrweb replayer will throw an error \"Uncaught TypeError: Cannot read property 'insertRule' of null\".\n node.setAttribute('csp-content', value.toString());\n continue;\n } else if (\n tagName === 'link' &&\n (n.attributes.rel === 'preload' ||\n n.attributes.rel === 'modulepreload') &&\n n.attributes.as === 'script'\n ) {\n // ignore\n } else if (\n tagName === 'link' &&\n n.attributes.rel === 'prefetch' &&\n typeof n.attributes.href === 'string' &&\n n.attributes.href.endsWith('.js')\n ) {\n // ignore\n } else if (\n tagName === 'img' &&\n n.attributes.srcset &&\n n.attributes.rr_dataURL\n ) {\n // backup original img srcset\n node.setAttribute(\n 'rrweb-original-srcset',\n n.attributes.srcset as string,\n );\n } else {\n node.setAttribute(name, value.toString());\n }\n } catch (error) {\n // skip invalid attribute\n }\n }\n\n for (const name in specialAttributes) {\n const value = specialAttributes[name];\n // handle internal attributes\n if (tagName === 'canvas' && name === 'rr_dataURL') {\n const image = doc.createElement('img');\n image.onload = () => {\n const ctx = (node as HTMLCanvasElement).getContext('2d');\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = value.toString();\n type RRCanvasElement = {\n RRNodeType: NodeType;\n rr_dataURL: string;\n };\n // If the canvas element is created in RRDom runtime (seeking to a time point), the canvas context isn't supported. So the data has to be stored and not handled until diff process. https://github.com/rrweb-io/rrweb/pull/944\n if ((node as unknown as RRCanvasElement).RRNodeType)\n (node as unknown as RRCanvasElement).rr_dataURL = value.toString();\n } else if (tagName === 'img' && name === 'rr_dataURL') {\n const image = node as HTMLImageElement;\n if (!image.currentSrc.startsWith('data:')) {\n // Backup original img src. It may not have been set yet.\n image.setAttribute(\n 'rrweb-original-src',\n n.attributes.src as string,\n );\n image.src = value.toString();\n }\n }\n\n if (name === 'rr_width') {\n (node as HTMLElement).style.setProperty('width', value.toString());\n } else if (name === 'rr_height') {\n (node as HTMLElement).style.setProperty('height', value.toString());\n } else if (\n name === 'rr_mediaCurrentTime' &&\n typeof value === 'number'\n ) {\n (node as HTMLMediaElement).currentTime = value;\n } else if (name === 'rr_mediaState') {\n switch (value) {\n case 'played':\n (node as HTMLMediaElement)\n .play()\n .catch((e) => console.warn('media playback error', e));\n break;\n case 'paused':\n (node as HTMLMediaElement).pause();\n break;\n default:\n }\n } else if (\n name === 'rr_mediaPlaybackRate' &&\n typeof value === 'number'\n ) {\n (node as HTMLMediaElement).playbackRate = value;\n } else if (name === 'rr_mediaMuted' && typeof value === 'boolean') {\n (node as HTMLMediaElement).muted = value;\n } else if (name === 'rr_mediaLoop' && typeof value === 'boolean') {\n (node as HTMLMediaElement).loop = value;\n } else if (name === 'rr_mediaVolume' && typeof value === 'number') {\n (node as HTMLMediaElement).volume = value;\n } else if (name === 'rr_open_mode') {\n (node as HTMLDialogElement).setAttribute(\n 'rr_open_mode',\n value as string,\n ); // keep this attribute for rrweb to trigger showModal\n }\n }\n\n if (n.isShadowHost) {\n /**\n * Since node is newly rebuilt, it should be a normal element\n * without shadowRoot.\n * But if there are some weird situations that has defined\n * custom element in the scope before we rebuild node, it may\n * register the shadowRoot earlier.\n * The logic in the 'else' block is just a try-my-best solution\n * for the corner case, please let we know if it is wrong and\n * we can remove it.\n */\n if (!node.shadowRoot) {\n node.attachShadow({ mode: 'open' });\n } else {\n while (node.shadowRoot.firstChild) {\n node.shadowRoot.removeChild(node.shadowRoot.firstChild);\n }\n }\n }\n return node;\n }\n case NodeType.Text:\n if (n.isStyle && hackCss) {\n // support legacy style\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}\n\nexport function buildNodeWithSN(\n n: serializedNodeWithId,\n options: {\n doc: Document;\n mirror: Mirror;\n skipChild?: boolean;\n hackCss: boolean;\n /**\n * This callback will be called for each of this nodes' `.childNodes` after they are appended to _this_ node.\n * Caveat: This callback _doesn't_ get called when this node is appended to the DOM.\n */\n afterAppend?: (n: Node, id: number) => unknown;\n cache: BuildCache;\n },\n): Node | null {\n const {\n doc,\n mirror,\n skipChild = false,\n hackCss = true,\n afterAppend,\n cache,\n } = options;\n /**\n * Add a check to see if the node is already in the mirror. If it is, we can skip the whole process.\n * This situation (duplicated nodes) can happen when recorder has some unfixed bugs and the same node is recorded twice. Or something goes wrong when saving or transferring event data.\n * Duplicated node creation may cause unexpected errors in replayer. This check tries best effort to prevent the errors.\n */\n if (mirror.has(n.id)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const nodeInMirror = mirror.getNode(n.id)!;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const meta = mirror.getMeta(nodeInMirror)!;\n // For safety concern, check if the node in mirror is the same as the node we are trying to build\n if (isNodeMetaEqual(meta, n)) return mirror.getNode(n.id);\n }\n let node = buildNode(n, { doc, hackCss, cache });\n if (!node) {\n return null;\n }\n // If the snapshot is created by checkout, the rootId doesn't change but the iframe's document can be changed automatically when a new iframe element is created.\n if (n.rootId && (mirror.getNode(n.rootId) as Document) !== doc) {\n mirror.replace(n.rootId, doc);\n }\n // use target document as root document\n if (n.type === NodeType.Document) {\n // close before open to make sure document was closed\n doc.close();\n doc.open();\n if (\n n.compatMode === 'BackCompat' &&\n n.childNodes &&\n n.childNodes[0].type !== NodeType.DocumentType // there isn't one already defined\n ) {\n // Trigger compatMode in the iframe\n // this is needed as document.createElement('iframe') otherwise inherits a CSS1Compat mode from the parent replayer environment\n if (\n n.childNodes[0].type === NodeType.Element &&\n 'xmlns' in n.childNodes[0].attributes &&\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml'\n ) {\n // might as well use an xhtml doctype if we've got an xhtml namespace\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 node = doc;\n }\n\n mirror.add(node, n);\n\n if (\n (n.type === NodeType.Document || n.type === NodeType.Element) &&\n !skipChild\n ) {\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\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\n node.shadowRoot.appendChild(childNode);\n } else if (\n n.type === NodeType.Document &&\n childN.type == NodeType.Element\n ) {\n const htmlElement = childNode as HTMLElement;\n let body: HTMLBodyElement | null = null;\n htmlElement.childNodes.forEach((child) => {\n if (child.nodeName === 'BODY') body = child as HTMLBodyElement;\n });\n if (body) {\n // this branch solves a problem in Firefox where css transitions are incorrectly\n // being applied upon rebuild. Presumably FF doesn't finished parsing the styles\n // in time, and applies e.g. a default margin:0 to elements which have a non-zero\n // margin set in CSS, along with a transition on them\n htmlElement.removeChild(body);\n // append <head> and <style>s\n node.appendChild(childNode);\n // now append <body>\n htmlElement.appendChild(body);\n } else {\n node.appendChild(childNode);\n }\n } else {\n node.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode, childN.id);\n }\n }\n }\n\n return node;\n}\n\nfunction visit(mirror: Mirror, onVisit: (node: Node) => void) {\n function walk(node: Node) {\n onVisit(node);\n }\n\n for (const id of mirror.getIds()) {\n if (mirror.has(id)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n walk(mirror.getNode(id)!);\n }\n }\n}\n\nfunction handleScroll(node: Node, mirror: Mirror) {\n const n = mirror.getMeta(node);\n if (n?.type !== NodeType.Element) {\n return;\n }\n const el = node as HTMLElement;\n for (const name in n.attributes) {\n if (\n !(\n Object.prototype.hasOwnProperty.call(n.attributes, name) &&\n name.startsWith('rr_')\n )\n ) {\n continue;\n }\n const value = n.attributes[name];\n if (name === 'rr_scrollLeft') {\n el.scrollLeft = value as number;\n }\n if (name === 'rr_scrollTop') {\n el.scrollTop = value as number;\n }\n }\n}\n\nfunction rebuild(\n n: serializedNodeWithId,\n options: {\n doc: Document;\n onVisit?: (node: Node) => unknown;\n hackCss?: boolean;\n afterAppend?: (n: Node, id: number) => unknown;\n cache: BuildCache;\n mirror: Mirror;\n },\n): Node | null {\n const {\n doc,\n onVisit,\n hackCss = true,\n afterAppend,\n cache,\n mirror = new Mirror(),\n } = options;\n const node = 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 node;\n}\n\nexport default rebuild;\n"],
5
- "mappings": "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",
6
- "names": ["dom", "shadowRoot", "rule", "node", "x", "childNodes", "textContent", "picocolors_browserModule", "require$$0", "terminalHighlight", "require$$1", "plugin", "index", "CssSyntaxError", "root", "Stringifier", "stringify", "isClean", "my", "require$$2", "require$$3", "result", "input", "stringifier", "Node", "Declaration", "nanoid", "SourceMapConsumer", "SourceMapGenerator", "dirname", "PreviousMap", "pathToFileURL", "resolve", "require$$4", "require$$5", "require$$6", "sourceMapAvailable", "pathAvailable", "Input", "MapGenerator", "Comment", "parse", "Rule", "AtRule", "Root", "Container", "LazyResult", "Processor", "Document", "document", "warnOnce", "Warning", "processor", "warning", "Result", "list", "sep", "tokenizer", "Parser", "parser", "require$$7", "require$$8", "postcss", "visit", "NoWorkResult", "fromJSON", "require$$9", "require$$10", "require$$11", "require$$12", "require$$13", "require$$14", "require$$15", "require$$16", "require$$17"]
5
+ "mappings": "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",
6
+ "names": ["dom", "shadowRoot", "rule", "node", "childNodes", "textContent", "picocolors_browserModule", "require$$0", "require$$1", "index", "root", "require$$2", "require$$3", "result", "input", "stringifier", "require$$4", "require$$5", "require$$6", "document", "warnOnce", "processor", "warning", "parser", "require$$7", "require$$8", "postcss", "visit", "require$$9", "require$$10", "require$$11", "require$$12", "require$$13", "require$$14", "require$$15", "require$$16", "require$$17"]
7
7
  }