@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": ["NodeType", "NodeType2", "testableAccessors", "testableMethods", "untaintedBasePrototype", "angularZoneUnpatchedAlternative", "key", "_a", "_b", "angularUnpatchedVersionSymbol", "getUntaintedPrototype", "candidate", "defaultPrototype", "accessorNames", "isUntaintedAccessors", "accessor", "methodNames", "isUntaintedMethods", "method", "iframeEl", "win", "untaintedObject", "e", "untaintedAccessorCache", "getUntaintedAccessor", "instance", "cacheKey", "untaintedPrototype", "untaintedAccessor", "untaintedMethodCache", "getUntaintedMethod", "untaintedMethod", "childNodes", "n", "parentNode", "parentElement", "textContent", "contains", "other", "getRootNode", "host", "styleSheets", "shadowRoot", "querySelector", "selectors", "querySelectorAll", "mutationObserverCtor", "patch", "source", "name", "replacement", "original", "wrapped", "index", "isElement", "isShadowRoot", "hostEl", "dom", "isNativeShadowDom", "fixBrowserCompatibilityIssuesInCSS", "cssText", "escapeImportStatement", "rule", "statement", "stringifyStylesheet", "s", "rules", "sheetHref", "stringifiedRules", "stringifyRule", "error", "isCSSImportRule", "importStringified", "absolutifyURLs", "ruleStringified", "isCSSStyleRule", "fixSafariColons", "cssStringified", "regex", "Mirror", "__publicField", "id", "childNode", "node", "meta", "oldNode", "createMirror", "maskInputValue", "element", "maskInputOptions", "tagName", "type", "value", "maskInputFn", "text", "actualType", "toLowerCase", "str", "ORIGINAL_ATTRIBUTE_NAME", "is2DCanvasBlank", "canvas", "ctx", "chunkSize", "x", "y", "getImageData", "originalGetImageData", "pixel", "isNodeMetaEqual", "a", "b", "getInputType", "extractFileExtension", "path", "baseURL", "url", "err", "match", "extractOrigin", "origin", "URL_IN_CSS_REF", "URL_PROTOCOL_MATCH", "URL_WWW_MATCH", "DATA_URI", "href", "quote1", "path1", "quote2", "path2", "path3", "filePath", "maybeQuote", "stack", "parts", "part", "normalizationCache", "splitCache", "normalizeCssString", "normalized", "splitCssText", "style", "og", "splits", "iterLimit", "cssTextNorm", "normFactor", "i", "textContentNorm", "j", "bit", "bits", "splitNorm", "k", "normPart", "markCssSplits", "_id", "tagNameRegex", "IGNORED_NODE", "genId", "getValidTagName", "processedTagName", "canvasService", "canvasCtx", "SRCSET_NOT_SPACES", "SRCSET_COMMAS_OR_SPACES", "getAbsoluteSrcsetString", "doc", "attributeValue", "pos", "collectCharacters", "regEx", "chars", "output", "absoluteToDoc", "descriptorsStr", "inParens", "c", "cachedDocument", "getHref", "isSVGElement", "el", "customHref", "transformAttribute", "ignoreAttribute", "_value", "_isBlockedElement", "blockClass", "blockSelector", "eIndex", "className", "classMatchesRegex", "checkAncestors", "needMaskingText", "maskTextClass", "maskTextSelector", "onceIframeLoaded", "listener", "iframeLoadTimeout", "fired", "readyState", "timer", "blankUrl", "onceStylesheetLoaded", "link", "styleSheetLoadTimeout", "styleSheetLoaded", "serializeNode", "options", "mirror", "needsMask", "inlineStylesheet", "maskTextFn", "dataURLOptions", "inlineImages", "recordCanvas", "keepIframeSrcFn", "newlyAddedElement", "cssCaptured", "rootId", "getRootId", "serializeElementNode", "serializeTextNode", "docId", "parent", "parentTagName", "isStyle", "isScript", "findStylesheet", "hrefFrom", "needBlock", "attributes", "len", "attr", "stylesheet", "rootDomain", "stylesheetPath", "potentialStylesheetHref", "checked", "canvasDataURL", "blankCanvas", "blankCanvasDataURL", "image", "imageSrc", "priorCrossOrigin", "recordInlineImage", "mediaAttributes", "width", "height", "isCustomElement", "lowerIfExists", "maybeAttr", "slimDOMExcluded", "sn", "slimDOMOptions", "serializeNodeWithId", "skipChild", "onSerialize", "onIframeLoad", "onStylesheetLoad", "stylesheetLoadTimeout", "preserveWhiteSpace", "_serializedNode", "serializedNode", "recordChild", "shadowRootEl", "bypassOptions", "childN", "serializedChildNode", "iframeDoc", "serializedIframeNode", "serializedLinkNode", "snapshot", "maskAllInputs", "slimDOM", "visitSnapshot", "onVisit", "walk", "current", "cleanupSnapshot", "MEDIA_SELECTOR", "MEDIA_SELECTOR_GLOBAL", "mediaSelectorPlugin", "atrule", "pseudoClassPlugin", "fixed", "selector", "create", "picocolors_browserModule", "__viteBrowserExternal", "pico", "require$$0", "terminalHighlight", "require$$1", "CssSyntaxError", "message", "line", "column", "file", "plugin", "color", "css", "lines", "start", "end", "maxWidth", "mark", "aside", "bold", "gray", "red", "number", "gutter", "spacing", "code", "cssSyntaxError", "symbols", "DEFAULT_RAW", "capitalize", "Stringifier$2", "builder", "semicolon", "params", "detect", "buf", "depth", "indent", "step", "between", "after", "last", "child", "before", "left", "right", "string", "own", "root", "p", "prop", "raw", "stringifier", "Stringifier", "stringify", "stringify_1", "isClean", "my", "require$$2", "require$$3", "cloneNode", "obj", "cloned", "Node$4", "defaults", "add", "overrides", "keepBetween", "opts", "next", "stringRepresentation", "defaultType", "nodes", "bookmark", "foundSelf", "result", "_", "inputs", "emitInputs", "inputsNextIndex", "inputId", "input", "data", "Node", "__spreadProps", "__spreadValues", "declaration", "Declaration", "urlAlphabet", "customAlphabet", "alphabet", "defaultSize", "size", "nanoid", "nonSecure", "SourceMapConsumer", "SourceMapGenerator", "existsSync", "readFileSync", "dirname", "join", "fromBase64", "PreviousMap$2", "prev", "baseCharsetUri", "baseUri", "charsetUri", "uri", "encoding", "sourceMapString", "map", "comments", "prevPath", "previousMap", "PreviousMap", "fileURLToPath", "pathToFileURL", "isAbsolute", "resolve", "require$$4", "require$$5", "require$$6", "fromOffsetCache", "sourceMapAvailable", "pathAvailable", "Input$4", "endLine", "endColumn", "offset", "lastLine", "lineToIndex", "prevIndex", "l", "min", "max", "mid", "consumer", "from", "to", "fromUrl", "json", "Input", "relative", "sep", "MapGenerator$2", "cssString", "content", "eol", "noSource", "mapping", "annotation", "cached", "already", "fileURL", "mapGenerator", "MapGenerator", "comment", "Comment", "parse", "Rule", "AtRule", "Root", "cleanSource", "markDirtyUp", "Container", "children", "callback", "iterator", "condition", "args", "cb", "exist", "existIndex", "sample", "pattern", "decl", "dependant", "container", "LazyResult", "Processor", "Document", "document", "Warning$2", "text", "opts", "range", "opt", "warning", "Warning", "require$$0", "Result$3", "processor", "root", "i", "result", "Result", "SINGLE_QUOTE", "DOUBLE_QUOTE", "BACKSLASH", "SLASH", "NEWLINE", "SPACE", "FEED", "TAB", "CR", "OPEN_SQUARE", "CLOSE_SQUARE", "OPEN_PARENTHESES", "CLOSE_PARENTHESES", "OPEN_CURLY", "CLOSE_CURLY", "SEMICOLON", "ASTERISK", "COLON", "AT", "RE_AT_END", "RE_WORD_END", "RE_BAD_BRACKET", "RE_HEX_ESCAPE", "tokenize", "input", "options", "css", "ignore", "code", "next", "quote", "content", "escape", "escaped", "escapePos", "prev", "n", "currentToken", "length", "pos", "buffer", "returned", "position", "unclosed", "what", "endOfFile", "nextToken", "ignoreUnclosed", "controlChar", "back", "token", "Container", "defaults", "children", "atRule", "AtRule", "LazyResult", "Processor", "child", "sample", "type", "nodes", "node", "index", "Root", "dependant", "list", "string", "spaces", "separators", "last", "array", "current", "split", "func", "inQuote", "prevQuote", "letter", "list_1", "require$$1", "values", "match", "sep", "rule", "Rule", "Declaration", "tokenizer", "Comment", "require$$2", "require$$3", "require$$4", "require$$5", "SAFE_COMMENT_NEIGHBOR", "findLastWithPosition", "tokens", "Parser$1", "shift", "open", "params", "brackets", "colon", "founded", "j", "element", "customProperty", "firstSpaces", "cache", "str", "offset", "start", "end", "bracket", "prop", "value", "clean", "raw", "all", "lastTokenType", "from", "parser", "Parser", "Input", "parse", "e", "parse_1", "isClean", "my", "MapGenerator", "stringify", "Document", "Result", "require$$6", "parse", "require$$7", "Root", "require$$8", "TYPE_TO_CLASS_NAME", "PLUGIN_PROPS", "NOT_VISITORS", "CHILDREN", "isPromise", "obj", "getEvents", "node", "key", "type", "toStack", "events", "cleanMarks", "isClean", "i", "postcss", "LazyResult$2", "LazyResult", "processor", "css", "opts", "root", "parser", "error", "my", "Container", "__spreadProps", "__spreadValues", "plugin", "onRejected", "onFinally", "err", "add", "cb", "event", "filter", "promise", "stack", "e", "visitor", "roots", "subRoot", "str", "stringify", "data", "MapGenerator", "onFulfilled", "visitors", "visit", "iterator", "child", "dependant", "lazyResult", "Document", "require$$0", "require$$1", "parse", "require$$3", "Result", "require$$4", "NoWorkResult$1", "processor", "css", "opts", "root", "str", "stringify", "self", "map", "MapGenerator", "generatedCSS", "generatedMap", "onRejected", "onFinally", "onFulfilled", "parser", "error", "noWorkResult", "NoWorkResult", "require$$0", "LazyResult", "require$$1", "Document", "require$$2", "Root", "Processor$1", "plugins", "normalized", "i", "plugin", "Processor", "Declaration", "PreviousMap", "Comment", "AtRule", "Input", "require$$5", "Rule", "require$$6", "fromJSON", "json", "inputs", "_a", "ownInputs", "defaults", "__objRest", "input", "inputHydrated", "__spreadProps", "__spreadValues", "_b", "inputId", "source", "fromJSON_1", "CssSyntaxError", "Container", "require$$7", "Warning", "require$$8", "require$$9", "require$$10", "require$$11", "require$$12", "require$$13", "list", "require$$14", "require$$15", "require$$16", "Node", "require$$17", "postcss", "name", "initializer", "warningPrinted", "creator", "args", "transformer", "cache", "processOpts", "pluginOpts", "postcss_1", "tagMap", "getTagName", "n", "tagName", "adaptCssForReplay", "cssText", "cachedStyle", "result", "mediaSelectorPlugin", "pseudoClassPlugin", "createCache", "applyCssSplits", "hackCss", "childTextNodes", "scn", "NodeType", "cssTextSplits", "childTextNode", "cssTextSection", "buildStyleNode", "styleEl", "options", "doc", "buildNode", "node", "specialAttributes", "value", "image", "ctx", "e", "buildNodeWithSN", "mirror", "skipChild", "afterAppend", "nodeInMirror", "meta", "isNodeMetaEqual", "childN", "childNode", "isElement", "htmlElement", "body", "child", "visit", "onVisit", "walk", "id", "handleScroll", "el", "rebuild", "Mirror", "visitedNode"]
5
+ "mappings": "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",
6
+ "names": ["NodeType", "NodeType2", "testableAccessors", "testableMethods", "untaintedBasePrototype", "angularZoneUnpatchedAlternative", "key", "_a", "_b", "angularUnpatchedVersionSymbol", "getUntaintedPrototype", "candidate", "defaultPrototype", "accessorNames", "isUntaintedAccessors", "accessor", "methodNames", "isUntaintedMethods", "method", "iframeEl", "win", "untaintedObject", "e", "untaintedAccessorCache", "getUntaintedAccessor", "instance", "cacheKey", "untaintedPrototype", "untaintedAccessor", "untaintedMethodCache", "getUntaintedMethod", "untaintedMethod", "childNodes", "n", "parentNode", "parentElement", "textContent", "contains", "other", "getRootNode", "host", "styleSheets", "shadowRoot", "querySelector", "selectors", "querySelectorAll", "mutationObserverCtor", "patch", "source", "name", "replacement", "original", "wrapped", "index", "isElement", "isShadowRoot", "hostEl", "dom", "isNativeShadowDom", "fixBrowserCompatibilityIssuesInCSS", "cssText", "escapeImportStatement", "rule", "statement", "stringifyStylesheet", "s", "rules", "sheetHref", "stringifiedRules", "stringifyRule", "error", "isCSSImportRule", "importStringified", "absolutifyURLs", "ruleStringified", "isCSSStyleRule", "fixSafariColons", "cssStringified", "regex", "Mirror", "__publicField", "id", "childNode", "node", "meta", "oldNode", "createMirror", "maskInputValue", "element", "maskInputOptions", "tagName", "type", "value", "maskInputFn", "text", "actualType", "toLowerCase", "str", "ORIGINAL_ATTRIBUTE_NAME", "is2DCanvasBlank", "canvas", "ctx", "chunkSize", "x", "y", "getImageData", "originalGetImageData", "pixel", "isNodeMetaEqual", "a", "b", "getInputType", "extractFileExtension", "path", "baseURL", "url", "err", "match", "extractOrigin", "origin", "URL_IN_CSS_REF", "URL_PROTOCOL_MATCH", "URL_WWW_MATCH", "DATA_URI", "href", "quote1", "path1", "quote2", "path2", "path3", "filePath", "maybeQuote", "stack", "parts", "part", "normalizationCache", "splitCache", "normalizeCssString", "normalized", "splitCssText", "style", "og", "splits", "iterLimit", "cssTextNorm", "normFactor", "i", "textContentNorm", "j", "bit", "bits", "splitNorm", "k", "normPart", "markCssSplits", "_id", "tagNameRegex", "IGNORED_NODE", "genId", "getValidTagName", "processedTagName", "canvasService", "canvasCtx", "SRCSET_NOT_SPACES", "SRCSET_COMMAS_OR_SPACES", "getAbsoluteSrcsetString", "doc", "attributeValue", "pos", "collectCharacters", "regEx", "chars", "output", "absoluteToDoc", "descriptorsStr", "inParens", "c", "cachedDocument", "getHref", "isSVGElement", "el", "customHref", "transformAttribute", "ignoreAttribute", "_value", "_isBlockedElement", "blockClass", "blockSelector", "eIndex", "className", "classMatchesRegex", "checkAncestors", "needMaskingText", "maskTextClass", "maskTextSelector", "onceIframeLoaded", "listener", "iframeLoadTimeout", "fired", "readyState", "timer", "blankUrl", "onceStylesheetLoaded", "link", "styleSheetLoadTimeout", "styleSheetLoaded", "serializeNode", "options", "mirror", "needsMask", "inlineStylesheet", "maskTextFn", "dataURLOptions", "inlineImages", "recordCanvas", "keepIframeSrcFn", "newlyAddedElement", "cssCaptured", "rootId", "getRootId", "serializeElementNode", "serializeTextNode", "docId", "parent", "parentTagName", "isStyle", "isScript", "findStylesheet", "hrefFrom", "needBlock", "attributes", "len", "attr", "stylesheet", "rootDomain", "stylesheetPath", "potentialStylesheetHref", "checked", "canvasDataURL", "blankCanvas", "blankCanvasDataURL", "image", "imageSrc", "priorCrossOrigin", "recordInlineImage", "mediaAttributes", "width", "height", "isCustomElement", "lowerIfExists", "maybeAttr", "slimDOMExcluded", "sn", "slimDOMOptions", "serializeNodeWithId", "skipChild", "onSerialize", "onIframeLoad", "onStylesheetLoad", "stylesheetLoadTimeout", "preserveWhiteSpace", "_serializedNode", "serializedNode", "recordChild", "shadowRootEl", "bypassOptions", "childN", "serializedChildNode", "iframeDoc", "serializedIframeNode", "serializedLinkNode", "snapshot", "maskAllInputs", "slimDOM", "visitSnapshot", "onVisit", "walk", "current", "cleanupSnapshot", "MEDIA_SELECTOR", "MEDIA_SELECTOR_GLOBAL", "mediaSelectorPlugin", "atrule", "pseudoClassPlugin", "fixed", "selector", "create", "picocolors_browserModule", "__viteBrowserExternal", "pico", "require$$0", "terminalHighlight", "require$$1", "CssSyntaxError", "message", "line", "column", "file", "plugin", "color", "css", "lines", "start", "end", "maxWidth", "mark", "aside", "bold", "gray", "red", "number", "gutter", "spacing", "code", "cssSyntaxError", "symbols", "DEFAULT_RAW", "capitalize", "Stringifier", "builder", "semicolon", "params", "detect", "buf", "depth", "indent", "step", "between", "after", "last", "child", "before", "left", "right", "string", "own", "root", "p", "prop", "raw", "stringifier", "stringify", "stringify_1", "isClean", "my", "require$$2", "require$$3", "cloneNode", "obj", "cloned", "Node", "defaults", "add", "overrides", "keepBetween", "opts", "next", "stringRepresentation", "defaultType", "nodes", "bookmark", "foundSelf", "result", "_", "inputs", "emitInputs", "inputsNextIndex", "inputId", "input", "data", "Declaration", "__spreadProps", "__spreadValues", "declaration", "urlAlphabet", "nonSecure", "size", "alphabet", "defaultSize", "SourceMapConsumer", "SourceMapGenerator", "existsSync", "readFileSync", "dirname", "join", "fromBase64", "PreviousMap", "prev", "baseCharsetUri", "baseUri", "charsetUri", "uri", "encoding", "sourceMapString", "map", "comments", "prevPath", "previousMap", "fileURLToPath", "pathToFileURL", "isAbsolute", "resolve", "nanoid", "require$$4", "require$$5", "require$$6", "fromOffsetCache", "sourceMapAvailable", "pathAvailable", "Input", "endLine", "endColumn", "offset", "lastLine", "lineToIndex", "prevIndex", "l", "min", "max", "mid", "consumer", "from", "to", "fromUrl", "json", "relative", "sep", "MapGenerator", "cssString", "content", "eol", "noSource", "mapping", "annotation", "cached", "already", "fileURL", "mapGenerator", "Comment", "comment", "parse", "Rule", "AtRule", "Root", "cleanSource", "markDirtyUp", "Container", "children", "callback", "iterator", "condition", "args", "cb", "exist", "existIndex", "sample", "pattern", "decl", "dependant", "container", "LazyResult", "Processor", "Document", "document", "printed", "warnOnce", "Warning", "range", "opt", "warning", "Result", "processor", "SINGLE_QUOTE", "DOUBLE_QUOTE", "BACKSLASH", "SLASH", "NEWLINE", "SPACE", "FEED", "TAB", "CR", "OPEN_SQUARE", "CLOSE_SQUARE", "OPEN_PARENTHESES", "CLOSE_PARENTHESES", "OPEN_CURLY", "CLOSE_CURLY", "SEMICOLON", "ASTERISK", "COLON", "AT", "RE_AT_END", "RE_WORD_END", "RE_BAD_BRACKET", "RE_HEX_ESCAPE", "tokenize", "ignore", "quote", "escape", "escaped", "escapePos", "currentToken", "length", "buffer", "returned", "position", "unclosed", "what", "endOfFile", "nextToken", "ignoreUnclosed", "controlChar", "back", "token", "atRule", "list", "spaces", "separators", "array", "split", "func", "inQuote", "prevQuote", "letter", "list_1", "values", "tokenizer", "SAFE_COMMENT_NEIGHBOR", "findLastWithPosition", "tokens", "Parser", "shift", "open", "brackets", "colon", "founded", "customProperty", "firstSpaces", "cache", "bracket", "clean", "all", "lastTokenType", "parser", "parse_1", "require$$7", "require$$8", "TYPE_TO_CLASS_NAME", "PLUGIN_PROPS", "NOT_VISITORS", "CHILDREN", "isPromise", "getEvents", "toStack", "events", "cleanMarks", "postcss", "onRejected", "onFinally", "event", "filter", "promise", "visitor", "roots", "subRoot", "onFulfilled", "visitors", "visit", "lazyResult", "NoWorkResult", "self", "generatedCSS", "generatedMap", "noWorkResult", "plugins", "fromJSON", "ownInputs", "__objRest", "inputHydrated", "fromJSON_1", "require$$9", "require$$10", "require$$11", "require$$12", "require$$13", "require$$14", "require$$15", "require$$16", "require$$17", "initializer", "warningPrinted", "creator", "transformer", "processOpts", "pluginOpts", "postcss_1", "tagMap", "getTagName", "adaptCssForReplay", "cachedStyle", "createCache", "applyCssSplits", "hackCss", "childTextNodes", "scn", "cssTextSplits", "childTextNode", "cssTextSection", "buildStyleNode", "styleEl", "buildNode", "specialAttributes", "buildNodeWithSN", "afterAppend", "nodeInMirror", "htmlElement", "body", "handleScroll", "rebuild", "visitedNode"]
7
7
  }