humanbehavior-js 0.7.0 → 0.8.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/packages/browser/dist/cjs/index.js +6 -6
- package/packages/browser/dist/cjs/index.js.map +1 -1
- package/packages/browser/dist/esm/index.js +4 -4
- package/packages/browser/dist/esm/index.js.map +1 -1
- package/packages/browser/dist/index.min.js +1 -1
- package/packages/browser/dist/index.min.js.map +1 -1
- package/packages/core/dist/index.js +1 -1
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/index.mjs +1 -1
- package/packages/core/dist/index.mjs.map +1 -1
- package/packages/core/dist/tracker.d.ts +12 -0
- package/packages/core/dist/tracker.d.ts.map +1 -1
- package/packages/react/dist/index.js +1 -1
- package/packages/react/dist/index.js.map +1 -1
- package/packages/react/dist/index.mjs +1 -1
- package/packages/react/dist/index.mjs.map +1 -1
- package/packages/wizard/dist/agent/claude-agent-installer.d.ts +17 -0
- package/packages/wizard/dist/agent/claude-agent-installer.d.ts.map +1 -0
- package/packages/wizard/dist/ai/ai-install-wizard.d.ts +2 -2
- package/packages/wizard/dist/ai/ai-install-wizard.d.ts.map +1 -1
- package/packages/wizard/dist/ai/manual-framework-wizard.d.ts +2 -2
- package/packages/wizard/dist/ai/manual-framework-wizard.d.ts.map +1 -1
- package/packages/wizard/dist/cli/ai-auto-install.d.ts +6 -0
- package/packages/wizard/dist/cli/ai-auto-install.d.ts.map +1 -1
- package/packages/wizard/dist/cli/ai-auto-install.js +641 -81
- package/packages/wizard/dist/cli/ai-auto-install.js.map +1 -1
- package/packages/wizard/dist/cli/auto-install.d.ts +4 -0
- package/packages/wizard/dist/cli/auto-install.d.ts.map +1 -1
- package/packages/wizard/dist/cli/auto-install.js +314 -56
- package/packages/wizard/dist/cli/auto-install.js.map +1 -1
- package/packages/wizard/dist/core/install-wizard.d.ts +51 -3
- package/packages/wizard/dist/core/install-wizard.d.ts.map +1 -1
- package/packages/wizard/dist/index.d.ts +2 -0
- package/packages/wizard/dist/index.d.ts.map +1 -1
- package/packages/wizard/dist/index.js +1 -1
- package/packages/wizard/dist/index.js.map +1 -1
- package/packages/wizard/dist/index.mjs +1 -1
- package/packages/wizard/dist/index.mjs.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../browser/dist/esm/index.js","../src/index.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar _a;\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$3 = /* @__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$3 || {});\nconst testableAccessors$1 = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\",\n \"ownerDocument\"\n ],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods$1 = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype$1 = {};\nconst isAngularZonePresent$1 = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype$1(key) {\n if (untaintedBasePrototype$1[key])\n return untaintedBasePrototype$1[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods$1 ? testableMethods$1[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent$1()) {\n untaintedBasePrototype$1[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype$1[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache$1 = {};\nfunction getUntaintedAccessor$1(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache$1[cacheKey])\n return untaintedAccessorCache$1[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache$1[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache$1 = {};\nfunction getUntaintedMethod$1(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache$1[cacheKey])\n return untaintedMethodCache$1[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache$1[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction ownerDocument$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"ownerDocument\");\n}\nfunction childNodes$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentElement\");\n}\nfunction textContent$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"textContent\");\n}\nfunction contains$1(n2, other) {\n return getUntaintedMethod$1(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode$1(n2) {\n return getUntaintedMethod$1(\"Node\", n2, \"getRootNode\")();\n}\nfunction host$1(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor$1(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets$1(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot$1(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor$1(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor$1() {\n return getUntaintedPrototype$1(\"MutationObserver\").constructor;\n}\nfunction patch$1(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$1 = {\n ownerDocument: ownerDocument$1,\n childNodes: childNodes$1,\n parentNode: parentNode$1,\n parentElement: parentElement$1,\n textContent: textContent$1,\n contains: contains$1,\n getRootNode: getRootNode$1,\n host: host$1,\n styleSheets: styleSheets$1,\n shadowRoot: shadowRoot$1,\n querySelector: querySelector$1,\n querySelectorAll: querySelectorAll$1,\n mutationObserver: mutationObserverCtor$1,\n patch: patch$1\n};\nfunction isElement(n2) {\n return n2.nodeType === n2.ELEMENT_NODE;\n}\nfunction isShadowRoot(n2) {\n const hostEl = (\n // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n2 && \"host\" in n2 && \"mode\" in n2 && index$1.host(n2) || null\n );\n return Boolean(\n hostEl && \"shadowRoot\" in hostEl && index$1.shadowRoot(hostEl) === n2\n );\n}\nfunction isNativeShadowDom(shadowRoot2) {\n return Object.prototype.toString.call(shadowRoot2) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n cssText = cssText.replace(\n /\\sbackground-clip:\\s*text;/g,\n \" -webkit-background-clip: text; background-clip: text;\"\n );\n }\n return cssText;\n}\nfunction escapeImportStatement(rule2) {\n const { cssText } = rule2;\n if (cssText.split('\"').length < 3) return cssText;\n const statement = [\"@import\", `url(${JSON.stringify(rule2.href)})`];\n if (rule2.layerName === \"\") {\n statement.push(`layer`);\n } else if (rule2.layerName) {\n statement.push(`layer(${rule2.layerName})`);\n }\n if (rule2.supportsText) {\n statement.push(`supports(${rule2.supportsText})`);\n }\n if (rule2.media.length) {\n statement.push(rule2.media.mediaText);\n }\n return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s2) {\n try {\n const rules2 = s2.rules || s2.cssRules;\n if (!rules2) {\n return null;\n }\n let sheetHref = s2.href;\n if (!sheetHref && s2.ownerNode) {\n sheetHref = s2.ownerNode.baseURI;\n }\n const stringifiedRules = Array.from(\n rules2,\n (rule2) => stringifyRule(rule2, sheetHref)\n ).join(\"\");\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule2, sheetHref) {\n if (isCSSImportRule(rule2)) {\n let importStringified;\n try {\n importStringified = // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule2.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule2);\n } catch (error) {\n importStringified = rule2.cssText;\n }\n if (rule2.styleSheet.href) {\n return absolutifyURLs(importStringified, rule2.styleSheet.href);\n }\n return importStringified;\n } else {\n let ruleStringified = rule2.cssText;\n if (isCSSStyleRule(rule2) && rule2.selectorText.includes(\":\")) {\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule2) {\n return \"styleSheet\" in rule2;\n}\nfunction isCSSStyleRule(rule2) {\n return \"selectorText\" in rule2;\n}\nclass Mirror {\n constructor() {\n __publicField$1(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror$2() {\n return new Mirror();\n}\nfunction maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn\n}) {\n let text = value || \"\";\n const actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n const chunkSize = 50;\n for (let x2 = 0; x2 < canvas.width; x2 += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n const pixelBuffer = new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(\n ctx,\n x2,\n y,\n Math.min(chunkSize, canvas.width - x2),\n Math.min(chunkSize, canvas.height - y)\n ).data.buffer\n );\n if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n }\n }\n return true;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n ) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, baseURL ?? window.location.href);\n } catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return (match == null ? void 0 : match[1]) ?? null;\n}\nfunction extractOrigin(url) {\n let origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absolutifyURLs(cssText, href) {\n return (cssText || \"\").replace(\n URL_IN_CSS_REF,\n (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === \"/\") {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split(\"/\");\n const parts = filePath.split(\"/\");\n stack.pop();\n for (const part of parts) {\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n }\n );\n}\nfunction normalizeCssString(cssText, _testNoPxNorm = false) {\n if (_testNoPxNorm) {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n } else {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\").replace(/0px/g, \"0\");\n }\n}\nfunction splitCssText(cssText, style, _testNoPxNorm = false) {\n const childNodes2 = Array.from(style.childNodes);\n const splits = [];\n let iterCount = 0;\n if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n let cssTextNorm = normalizeCssString(cssText, _testNoPxNorm);\n const normFactor = cssTextNorm.length / cssText.length;\n for (let i2 = 1; i2 < childNodes2.length; i2++) {\n if (childNodes2[i2].textContent && typeof childNodes2[i2].textContent === \"string\") {\n const textContentNorm = normalizeCssString(\n childNodes2[i2].textContent,\n _testNoPxNorm\n );\n const jLimit = 100;\n let j = 3;\n for (; j < textContentNorm.length; j++) {\n if (\n // keep consuming css identifiers (to get a decent chunk more quickly)\n textContentNorm[j].match(/[a-zA-Z0-9]/) || // substring needs to be unique to this section\n textContentNorm.indexOf(textContentNorm.substring(0, j), 1) !== -1\n ) {\n continue;\n }\n break;\n }\n for (; j < textContentNorm.length; j++) {\n let startSubstring = textContentNorm.substring(0, j);\n let cssNormSplits = cssTextNorm.split(startSubstring);\n let splitNorm = -1;\n if (cssNormSplits.length === 2) {\n splitNorm = cssNormSplits[0].length;\n } else if (cssNormSplits.length > 2 && cssNormSplits[0] === \"\" && childNodes2[i2 - 1].textContent !== \"\") {\n splitNorm = cssTextNorm.indexOf(startSubstring, 1);\n } else if (cssNormSplits.length === 1) {\n startSubstring = startSubstring.substring(\n 0,\n startSubstring.length - 1\n );\n cssNormSplits = cssTextNorm.split(startSubstring);\n if (cssNormSplits.length <= 1) {\n splits.push(cssText);\n return splits;\n }\n j = jLimit + 1;\n } else if (j === textContentNorm.length - 1) {\n splitNorm = cssTextNorm.indexOf(startSubstring);\n }\n if (cssNormSplits.length >= 2 && j > jLimit) {\n const prevTextContent = childNodes2[i2 - 1].textContent;\n if (prevTextContent && typeof prevTextContent === \"string\") {\n const prevMinLength = normalizeCssString(prevTextContent).length;\n splitNorm = cssTextNorm.indexOf(startSubstring, prevMinLength);\n }\n if (splitNorm === -1) {\n splitNorm = cssNormSplits[0].length;\n }\n }\n if (splitNorm !== -1) {\n let k = Math.floor(splitNorm / normFactor);\n for (; k > 0 && k < cssText.length; ) {\n iterCount += 1;\n if (iterCount > 50 * childNodes2.length) {\n splits.push(cssText);\n return splits;\n }\n const normPart = normalizeCssString(\n cssText.substring(0, k),\n _testNoPxNorm\n );\n if (normPart.length === splitNorm) {\n splits.push(cssText.substring(0, k));\n cssText = cssText.substring(k);\n cssTextNorm = cssTextNorm.substring(splitNorm);\n break;\n } else if (normPart.length < splitNorm) {\n k += Math.max(\n 1,\n Math.floor((splitNorm - normPart.length) / normFactor)\n );\n } else {\n k -= Math.max(\n 1,\n Math.floor((normPart.length - splitNorm) * normFactor)\n );\n }\n }\n break;\n }\n }\n }\n }\n }\n splits.push(cssText);\n return splits;\n}\nfunction markCssSplits(cssText, style) {\n return splitCssText(cssText, style).join(\"/* rr_split */\");\n}\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName$1(element) {\n if (element instanceof HTMLFormElement) {\n return \"form\";\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return \"div\";\n }\n return processedTagName;\n}\nlet canvasService;\nlet canvasCtx;\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === \"\") {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars2;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars2 = match[0];\n pos += chars2.length;\n return chars2;\n }\n return \"\";\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === \",\") {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n let descriptorsStr = \"\";\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c2 = attributeValue.charAt(pos);\n if (c2 === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c2 === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c2 === \"(\") {\n inParens = true;\n }\n } else {\n if (c2 === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c2;\n pos += 1;\n }\n }\n }\n return output.join(\", \");\n}\nconst cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === \"\") {\n return attributeValue;\n }\n return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n let a2 = cachedDocument.get(doc);\n if (!a2) {\n a2 = doc.createElement(\"a\");\n cachedDocument.set(doc, a2);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a2.setAttribute(\"href\", customHref);\n return a2.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && [\"table\", \"td\", \"th\"].includes(tagName)) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return [\"video\", \"audio\"].includes(tagName) && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e2) {\n }\n return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n if (!node2) return false;\n if (node2.nodeType !== node2.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n }\n for (let eIndex = node2.classList.length; eIndex--; ) {\n const className = node2.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node2)) {\n el = node2;\n if (!index$1.childNodes(el).length) {\n return false;\n }\n } else if (index$1.parentElement(node2) === null) {\n return false;\n } else {\n el = index$1.parentElement(node2);\n }\n try {\n if (typeof maskTextClass === \"string\") {\n if (checkAncestors) {\n if (el.closest(`.${maskTextClass}`)) return true;\n } else {\n if (el.classList.contains(maskTextClass)) return true;\n }\n } else {\n if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true;\n }\n if (maskTextSelector) {\n if (checkAncestors) {\n if (el.closest(maskTextSelector)) return true;\n } else {\n if (el.matches(maskTextSelector)) return true;\n }\n }\n } catch (e2) {\n }\n return false;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== \"complete\") {\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = \"about:blank\";\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n setTimeout(listener, 0);\n return iframeEl.addEventListener(\"load\", listener);\n }\n iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n if (styleSheetLoaded) return;\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n const rootId = getRootId(doc, mirror2);\n switch (n2.nodeType) {\n case n2.DOCUMENT_NODE:\n if (n2.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType$3.Document,\n childNodes: [],\n compatMode: n2.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType$3.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$3.DocumentType,\n name: n2.name,\n publicId: n2.publicId,\n systemId: n2.systemId,\n rootId\n };\n case n2.ELEMENT_NODE:\n return serializeElementNode(n2, {\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 n2.TEXT_NODE:\n return serializeTextNode(n2, {\n doc,\n needsMask,\n maskTextFn,\n rootId,\n cssCaptured\n });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$3.CDATA,\n textContent: \"\",\n rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$3.Comment,\n textContent: index$1.textContent(n2) || \"\",\n rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror2) {\n if (!mirror2.hasNode(doc)) return void 0;\n const docId = mirror2.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n2, options) {\n const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n const parent = index$1.parentNode(n2);\n const parentTagName = parent && parent.tagName;\n let textContent2 = \"\";\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isScript) {\n textContent2 = \"SCRIPT_PLACEHOLDER\";\n } else if (!cssCaptured) {\n textContent2 = index$1.textContent(n2);\n if (isStyle && textContent2) {\n textContent2 = absolutifyURLs(textContent2, getHref(options.doc));\n }\n }\n if (!isStyle && !isScript && textContent2 && needsMask) {\n textContent2 = maskTextFn ? maskTextFn(textContent2, index$1.parentElement(n2)) : textContent2.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$3.Text,\n textContent: textContent2 || \"\",\n rootId\n };\n}\nfunction serializeElementNode(n2, options) {\n const {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions = {},\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n rootId\n } = options;\n const needBlock = _isBlockedElement(n2, blockClass, blockSelector);\n const tagName = getValidTagName$1(n2);\n let attributes = {};\n const len = n2.attributes.length;\n for (let i2 = 0; i2 < len; i2++) {\n const attr = n2.attributes[i2];\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(\n doc,\n tagName,\n toLowerCase(attr.name),\n attr.value\n );\n }\n }\n if (tagName === \"link\" && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s2) => {\n return s2.href === n2.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"style\" && n2.sheet) {\n let cssText = stringifyStylesheet(\n n2.sheet\n );\n if (cssText) {\n if (n2.childNodes.length > 1) {\n cssText = markCssSplits(cssText, n2);\n }\n attributes._cssText = cssText;\n }\n }\n if ([\"input\", \"textarea\", \"select\"].includes(tagName)) {\n const value = n2.value;\n const checked = n2.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n attributes.value = maskInputValue({\n element: n2,\n type: getInputType(n2),\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 (n2.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"dialog\" && n2.open) {\n attributes.rr_open_mode = n2.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n2.__context === \"2d\") {\n if (!is2DCanvasBlank(n2)) {\n attributes.rr_dataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n } else if (!(\"__context\" in n2)) {\n const canvasDataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n const blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n2.width;\n blankCanvas.height = n2.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === \"img\" && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement(\"canvas\");\n canvasCtx = canvasService.getContext(\"2d\");\n }\n const image = n2;\n const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"<unknown-src>\";\n const priorCrossOrigin = image.crossOrigin;\n const recordInlineImage = () => {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err}`\n );\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if ([\"audio\", \"video\"].includes(tagName)) {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n2.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n2.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate;\n mediaAttributes.rr_mediaMuted = n2.muted;\n mediaAttributes.rr_mediaLoop = n2.loop;\n mediaAttributes.rr_mediaVolume = n2.volume;\n }\n if (!newlyAddedElement) {\n if (n2.scrollLeft) {\n attributes.rr_scrollLeft = n2.scrollLeft;\n }\n if (n2.scrollTop) {\n attributes.rr_scrollTop = n2.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n2.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n2.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e2) {\n }\n return {\n type: NodeType$3.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n2) || void 0,\n needBlock,\n rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMDefaults(_slimDOMOptions) {\n if (_slimDOMOptions === true || _slimDOMOptions === \"all\") {\n return {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n };\n } else if (_slimDOMOptions) {\n return _slimDOMOptions;\n }\n return {};\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$3.Comment) {\n return true;\n } else if (sn.type === NodeType$3.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" && sn.attributes.as === \"script\" || sn.attributes.rel === \"modulepreload\") || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n if (!needsMask) {\n const checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(\n n2,\n maskTextClass,\n maskTextSelector,\n checkAncestors\n );\n }\n const _serializedNode = serializeNode(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n cssCaptured\n });\n if (!_serializedNode) {\n console.warn(n2, \"not serialized\");\n return null;\n }\n let id;\n if (mirror2.hasNode(n2)) {\n id = mirror2.getId(n2);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$3.Text && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, \"\").length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror2.add(n2, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n2);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType$3.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRootEl = index$1.shadowRoot(n2);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType$3.Document || serializedNode.type === NodeType$3.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n cssCaptured: false\n };\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n if (serializedNode.type === NodeType$3.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n bypassOptions.cssCaptured = true;\n }\n for (const childN of Array.from(index$1.childNodes(n2))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n let shadowRootEl = null;\n if (isElement(n2) && (shadowRootEl = index$1.shadowRoot(n2))) {\n for (const childN of Array.from(index$1.childNodes(shadowRootEl))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(shadowRootEl) && (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n const parent = index$1.parentNode(n2);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(\n n2,\n () => {\n const iframeDoc = n2.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(\n n2,\n serializedIframeNode\n );\n }\n }\n },\n iframeLoadTimeout\n );\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"link\" && typeof serializedNode.attributes.rel === \"string\" && (serializedNode.attributes.rel === \"stylesheet\" || serializedNode.attributes.rel === \"preload\" && typeof serializedNode.attributes.href === \"string\" && extractFileExtension(serializedNode.attributes.href) === \"css\")) {\n onceStylesheetLoaded(\n n2,\n () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedLinkNode) {\n onStylesheetLoad(\n n2,\n serializedLinkNode\n );\n }\n }\n },\n stylesheetLoadTimeout\n );\n }\n return serializedNode;\n}\nfunction snapshot(n2, options) {\n const {\n mirror: mirror2 = new Mirror(),\n blockClass = \"rr-block\",\n blockSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n inlineImages = false,\n recordCanvas = false,\n maskAllInputs = false,\n maskTextFn,\n maskInputFn,\n slimDOM = false,\n dataURLOptions,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn = () => false\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOMDefaults(slimDOM);\n return serializeNodeWithId(n2, {\n doc: n2,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false\n });\n}\nfunction getDefaultExportFromCjs$1(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace$1(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser$1 = { exports: {} };\nvar x$1 = String;\nvar create$1 = function() {\n return { isColorSupported: false, reset: x$1, bold: x$1, dim: x$1, italic: x$1, underline: x$1, inverse: x$1, hidden: x$1, strikethrough: x$1, black: x$1, red: x$1, green: x$1, yellow: x$1, blue: x$1, magenta: x$1, cyan: x$1, white: x$1, gray: x$1, bgBlack: x$1, bgRed: x$1, bgGreen: x$1, bgYellow: x$1, bgBlue: x$1, bgMagenta: x$1, bgCyan: x$1, bgWhite: x$1 };\n};\npicocolors_browser$1.exports = create$1();\npicocolors_browser$1.exports.createColors = create$1;\nvar picocolors_browserExports$1 = picocolors_browser$1.exports;\nconst __viteBrowserExternal$2 = {};\nconst __viteBrowserExternal$1$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal$2\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2$1 = /* @__PURE__ */ getAugmentedNamespace$1(__viteBrowserExternal$1$1);\nlet pico$1 = picocolors_browserExports$1;\nlet terminalHighlight$1$1 = require$$2$1;\nlet CssSyntaxError$3$1 = class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico$1.isColorSupported;\n if (terminalHighlight$1$1) {\n if (color) css = terminalHighlight$1$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico$1.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError$1 = CssSyntaxError$3$1;\nCssSyntaxError$3$1.default = CssSyntaxError$3$1;\nvar symbols$1 = {};\nsymbols$1.isClean = Symbol(\"isClean\");\nsymbols$1.my = Symbol(\"my\");\nconst DEFAULT_RAW$1 = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize$1(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2$1 = class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW$1[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize$1(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW$1[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier$1 = Stringifier$2$1;\nStringifier$2$1.default = Stringifier$2$1;\nlet Stringifier$1$1 = stringifier$1;\nfunction stringify$4$1(node2, builder) {\n let str = new Stringifier$1$1(builder);\n str.stringify(node2);\n}\nvar stringify_1$1 = stringify$4$1;\nstringify$4$1.default = stringify$4$1;\nlet { isClean: isClean$2$1, my: my$2$1 } = symbols$1;\nlet CssSyntaxError$2$1 = cssSyntaxError$1;\nlet Stringifier2$1 = stringifier$1;\nlet stringify$3$1 = stringify_1$1;\nfunction cloneNode$1(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode$1(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode$1(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4$1 = class Node2 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2$1] = false;\n this[my$2$1] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode$1(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2$1(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2$1]) {\n this[isClean$2$1] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2$1] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier2$1();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3$1) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node$1 = Node$4$1;\nNode$4$1.default = Node$4$1;\nlet Node$3$1 = node$1;\nlet Declaration$4$1 = class Declaration extends Node$3$1 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration$1 = Declaration$4$1;\nDeclaration$4$1.default = Declaration$4$1;\nlet urlAlphabet$1 = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet nanoid$1$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet$1[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure$1 = { nanoid: nanoid$1$1};\nlet { SourceMapConsumer: SourceMapConsumer$2$1, SourceMapGenerator: SourceMapGenerator$2$1 } = require$$2$1;\nlet { existsSync: existsSync$1, readFileSync: readFileSync$1 } = require$$2$1;\nlet { dirname: dirname$1$1, join: join$1 } = require$$2$1;\nfunction fromBase64$1(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2$1 = class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2$1(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64$1(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1$1(path);\n if (existsSync$1(path)) {\n this.mapFile = path;\n return readFileSync$1(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2$1) {\n return SourceMapGenerator$2$1.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2$1) {\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$1(dirname$1$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap$1 = PreviousMap$2$1;\nPreviousMap$2$1.default = PreviousMap$2$1;\nlet { SourceMapConsumer: SourceMapConsumer$1$1, SourceMapGenerator: SourceMapGenerator$1$1 } = require$$2$1;\nlet { fileURLToPath: fileURLToPath$1, pathToFileURL: pathToFileURL$1$1 } = require$$2$1;\nlet { isAbsolute: isAbsolute$1, resolve: resolve$1$1 } = require$$2$1;\nlet { nanoid: nanoid$2 } = nonSecure$1;\nlet terminalHighlight$2 = require$$2$1;\nlet CssSyntaxError$1$1 = cssSyntaxError$1;\nlet PreviousMap$1$1 = previousMap$1;\nlet fromOffsetCache$1 = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1$1 = Boolean(SourceMapConsumer$1$1 && SourceMapGenerator$1$1);\nlet pathAvailable$1$1 = Boolean(resolve$1$1 && isAbsolute$1);\nlet Input$4$1 = class Input {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute$1(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1$1(opts.from);\n }\n }\n if (pathAvailable$1$1 && sourceMapAvailable$1$1) {\n let map = new PreviousMap$1$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid$2(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1$1) {\n result2.input.url = pathToFileURL$1$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache$1]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache$1] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache$1];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute$1(from.source)) {\n fromUrl = pathToFileURL$1$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath$1) {\n result2.file = fileURLToPath$1(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input$1 = Input$4$1;\nInput$4$1.default = Input$4$1;\nif (terminalHighlight$2 && terminalHighlight$2.registerInput) {\n terminalHighlight$2.registerInput(Input$4$1);\n}\nlet { SourceMapConsumer: SourceMapConsumer$3, SourceMapGenerator: SourceMapGenerator$3 } = require$$2$1;\nlet { dirname: dirname$2, relative: relative$1, resolve: resolve$2, sep: sep$1 } = require$$2$1;\nlet { pathToFileURL: pathToFileURL$2 } = require$$2$1;\nlet Input$3$1 = input$1;\nlet sourceMapAvailable$2 = Boolean(SourceMapConsumer$3 && SourceMapGenerator$3);\nlet pathAvailable$2 = Boolean(dirname$2 && resolve$2 && relative$1 && sep$1);\nlet MapGenerator$2$1 = class MapGenerator {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname$2(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer$3(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable$2 && sourceMapAvailable$2 && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator$3.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname$2(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname$2(resolve$2(from, this.mapOpts.annotation));\n }\n let path = relative$1(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3$1(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL$2) {\n let fileURL = pathToFileURL$2(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep$1 === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator$1 = MapGenerator$2$1;\nlet Node$2$1 = node$1;\nlet Comment$4$1 = class Comment extends Node$2$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment$1 = Comment$4$1;\nComment$4$1.default = Comment$4$1;\nlet { isClean: isClean$1$1, my: my$1$1 } = symbols$1;\nlet Declaration$3$1 = declaration$1;\nlet Comment$3$1 = comment$1;\nlet Node$1$1 = node$1;\nlet parse$4$1, Rule$4$1, AtRule$4$1, Root$6$1;\nfunction cleanSource$1(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource$1(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp$1(node2) {\n node2[isClean$1$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp$1(i2);\n }\n }\n}\nlet Container$7$1 = class Container extends Node$1$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource$1(parse$4$1(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3$1(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4$1(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4$1(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3$1(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1$1]) Container.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1$1]) markDirtyUp$1(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7$1.registerParse = (dependant) => {\n parse$4$1 = dependant;\n};\nContainer$7$1.registerRule = (dependant) => {\n Rule$4$1 = dependant;\n};\nContainer$7$1.registerAtRule = (dependant) => {\n AtRule$4$1 = dependant;\n};\nContainer$7$1.registerRoot = (dependant) => {\n Root$6$1 = dependant;\n};\nvar container$1 = Container$7$1;\nContainer$7$1.default = Container$7$1;\nContainer$7$1.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4$1.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4$1.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3$1.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3$1.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6$1.prototype);\n }\n node2[my$1$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7$1.rebuild(child);\n });\n }\n};\nlet Container$6$1 = container$1;\nlet LazyResult$4$1, Processor$3$1;\nlet Document$3$1 = class Document2 extends Container$6$1 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4$1(new Processor$3$1(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3$1.registerLazyResult = (dependant) => {\n LazyResult$4$1 = dependant;\n};\nDocument$3$1.registerProcessor = (dependant) => {\n Processor$3$1 = dependant;\n};\nvar document$1$1 = Document$3$1;\nDocument$3$1.default = Document$3$1;\nlet printed$1 = {};\nvar warnOnce$2$1 = function warnOnce(message) {\n if (printed$1[message]) return;\n printed$1[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2$1 = class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning$1 = Warning$2$1;\nWarning$2$1.default = Warning$2$1;\nlet Warning$1$1 = warning$1;\nlet Result$3$1 = class Result {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result$1 = Result$3$1;\nResult$3$1.default = Result$3$1;\nconst SINGLE_QUOTE$1 = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE$1 = '\"'.charCodeAt(0);\nconst BACKSLASH$1 = \"\\\\\".charCodeAt(0);\nconst SLASH$1 = \"/\".charCodeAt(0);\nconst NEWLINE$1 = \"\\n\".charCodeAt(0);\nconst SPACE$1 = \" \".charCodeAt(0);\nconst FEED$1 = \"\\f\".charCodeAt(0);\nconst TAB$1 = \"\t\".charCodeAt(0);\nconst CR$1 = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE$1 = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE$1 = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES$1 = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES$1 = \")\".charCodeAt(0);\nconst OPEN_CURLY$1 = \"{\".charCodeAt(0);\nconst CLOSE_CURLY$1 = \"}\".charCodeAt(0);\nconst SEMICOLON$1 = \";\".charCodeAt(0);\nconst ASTERISK$1 = \"*\".charCodeAt(0);\nconst COLON$1 = \":\".charCodeAt(0);\nconst AT$1 = \"@\".charCodeAt(0);\nconst RE_AT_END$1 = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END$1 = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET$1 = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE$1 = /[\\da-f]/i;\nvar tokenize$1 = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE$1:\n case SPACE$1:\n case TAB$1:\n case CR$1:\n case FEED$1: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE$1 || code === NEWLINE$1 || code === TAB$1 || code === CR$1 || code === FEED$1);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE$1:\n case CLOSE_SQUARE$1:\n case OPEN_CURLY$1:\n case CLOSE_CURLY$1:\n case COLON$1:\n case SEMICOLON$1:\n case CLOSE_PARENTHESES$1: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES$1: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE$1 && n2 !== DOUBLE_QUOTE$1 && n2 !== SPACE$1 && n2 !== NEWLINE$1 && n2 !== TAB$1 && n2 !== FEED$1 && n2 !== CR$1) {\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$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET$1.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE$1:\n case DOUBLE_QUOTE$1: {\n quote = code === SINGLE_QUOTE$1 ? \"'\" : '\"';\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$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT$1: {\n RE_AT_END$1.lastIndex = pos + 1;\n RE_AT_END$1.test(css);\n if (RE_AT_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END$1.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH$1: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH$1) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH$1 && code !== SPACE$1 && code !== NEWLINE$1 && code !== TAB$1 && code !== CR$1 && code !== FEED$1) {\n next += 1;\n if (RE_HEX_ESCAPE$1.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE$1.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE$1) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH$1 && css.charCodeAt(pos + 1) === ASTERISK$1) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END$1.lastIndex = pos + 1;\n RE_WORD_END$1.test(css);\n if (RE_WORD_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END$1.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5$1 = container$1;\nlet AtRule$3$1 = class AtRule extends Container$5$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule$1 = AtRule$3$1;\nAtRule$3$1.default = AtRule$3$1;\nContainer$5$1.registerAtRule(AtRule$3$1);\nlet Container$4$1 = container$1;\nlet LazyResult$3$1, Processor$2$1;\nlet Root$5$1 = class Root extends Container$4$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3$1(new Processor$2$1(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5$1.registerLazyResult = (dependant) => {\n LazyResult$3$1 = dependant;\n};\nRoot$5$1.registerProcessor = (dependant) => {\n Processor$2$1 = dependant;\n};\nvar root$1 = Root$5$1;\nRoot$5$1.default = Root$5$1;\nContainer$4$1.registerRoot(Root$5$1);\nlet list$2$1 = {\n comma(string) {\n return list$2$1.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2$1.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1$1 = list$2$1;\nlist$2$1.default = list$2$1;\nlet Container$3$1 = container$1;\nlet list$1$1 = list_1$1;\nlet Rule$3$1 = class Rule extends Container$3$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule$1 = Rule$3$1;\nRule$3$1.default = Rule$3$1;\nContainer$3$1.registerRule(Rule$3$1);\nlet Declaration$2$1 = declaration$1;\nlet tokenizer2$1 = tokenize$1;\nlet Comment$2$1 = comment$1;\nlet AtRule$2$1 = atRule$1;\nlet Root$4$1 = root$1;\nlet Rule$2$1 = rule$1;\nconst SAFE_COMMENT_NEIGHBOR$1 = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition$1(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1$1 = class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4$1();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2$1();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2$1();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer2$1(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2$1();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition$1(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2$1();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR$1[prev] && !SAFE_COMMENT_NEIGHBOR$1[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, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2$1();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser$1 = Parser$1$1;\nlet Container$2$1 = container$1;\nlet Parser2$1 = parser$1;\nlet Input$2$1 = input$1;\nfunction parse$3$1(css, opts) {\n let input2 = new Input$2$1(css, opts);\n let parser2 = new Parser2$1(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1$1 = parse$3$1;\nparse$3$1.default = parse$3$1;\nContainer$2$1.registerParse(parse$3$1);\nlet { isClean: isClean$3, my: my$3 } = symbols$1;\nlet MapGenerator$1$1 = mapGenerator$1;\nlet stringify$2$1 = stringify_1$1;\nlet Container$1$1 = container$1;\nlet Document$2$1 = document$1$1;\nlet warnOnce$1$1 = warnOnce$2$1;\nlet Result$2$1 = result$1;\nlet parse$2$1 = parse_1$1;\nlet Root$3$1 = root$1;\nconst TYPE_TO_CLASS_NAME$1 = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS$1 = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS$1 = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN$1 = 0;\nfunction isPromise$1(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents$1(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME$1[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN$1,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN$1, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack$1(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN$1, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN$1, \"RootExit\"];\n } else {\n events = getEvents$1(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks$1(node2) {\n node2[isClean$3] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks$1(i2));\n return node2;\n}\nlet postcss$2$1 = {};\nlet LazyResult$2$1 = class LazyResult {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks$1(css);\n } else if (css instanceof LazyResult || css instanceof Result$2$1) {\n root2 = cleanMarks$1(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2$1;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my$3]) {\n Container$1$1.rebuild(root2);\n }\n }\n this.result = new Result$2$1(processor2, root2, opts);\n this.helpers = { ...postcss$2$1, postcss: postcss$2$1, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS$1[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS$1[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n let stack = [toStack$1(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise$1(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2$1;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean$3]) {\n child[isClean$3] = true;\n stack.push(toStack$1(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN$1) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean$3] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean$3] = true;\n let events = getEvents$1(node2);\n for (let event of events) {\n if (event === CHILDREN$1) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean$3]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2$1.registerPostcss = (dependant) => {\n postcss$2$1 = dependant;\n};\nvar lazyResult$1 = LazyResult$2$1;\nLazyResult$2$1.default = LazyResult$2$1;\nRoot$3$1.registerLazyResult(LazyResult$2$1);\nDocument$2$1.registerLazyResult(LazyResult$2$1);\nlet MapGenerator2$1 = mapGenerator$1;\nlet stringify$1$1 = stringify_1$1;\nlet warnOnce2$1 = warnOnce$2$1;\nlet parse$1$1 = parse_1$1;\nconst Result$1$1 = result$1;\nlet NoWorkResult$1$1 = class NoWorkResult {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1$1;\n this.result = new Result$1$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator2$1(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult$1 = NoWorkResult$1$1;\nNoWorkResult$1$1.default = NoWorkResult$1$1;\nlet NoWorkResult2$1 = noWorkResult$1;\nlet LazyResult$1$1 = lazyResult$1;\nlet Document$1$1 = document$1$1;\nlet Root$2$1 = root$1;\nlet Processor$1$1 = class Processor {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult2$1(this, css, opts);\n } else {\n return new LazyResult$1$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor$1 = Processor$1$1;\nProcessor$1$1.default = Processor$1$1;\nRoot$2$1.registerProcessor(Processor$1$1);\nDocument$1$1.registerProcessor(Processor$1$1);\nlet Declaration$1$1 = declaration$1;\nlet PreviousMap2$1 = previousMap$1;\nlet Comment$1$1 = comment$1;\nlet AtRule$1$1 = atRule$1;\nlet Input$1$1 = input$1;\nlet Root$1$1 = root$1;\nlet Rule$1$1 = rule$1;\nfunction fromJSON$1$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap2$1.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1$1 = fromJSON$1$1;\nfromJSON$1$1.default = fromJSON$1$1;\nlet CssSyntaxError2$1 = cssSyntaxError$1;\nlet Declaration2$1 = declaration$1;\nlet LazyResult2$1 = lazyResult$1;\nlet Container2$1 = container$1;\nlet Processor2$1 = processor$1;\nlet stringify$5 = stringify_1$1;\nlet fromJSON$2 = fromJSON_1$1;\nlet Document22 = document$1$1;\nlet Warning2$1 = warning$1;\nlet Comment2$1 = comment$1;\nlet AtRule2$1 = atRule$1;\nlet Result2$1 = result$1;\nlet Input2$1 = input$1;\nlet parse$5 = parse_1$1;\nlet list$3 = list_1$1;\nlet Rule2$1 = rule$1;\nlet Root2$1 = root$1;\nlet Node2$1 = node$1;\nfunction postcss$3(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor2$1(plugins);\n}\npostcss$3.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor2$1().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss$3([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss$3.stringify = stringify$5;\npostcss$3.parse = parse$5;\npostcss$3.fromJSON = fromJSON$2;\npostcss$3.list = list$3;\npostcss$3.comment = (defaults) => new Comment2$1(defaults);\npostcss$3.atRule = (defaults) => new AtRule2$1(defaults);\npostcss$3.decl = (defaults) => new Declaration2$1(defaults);\npostcss$3.rule = (defaults) => new Rule2$1(defaults);\npostcss$3.root = (defaults) => new Root2$1(defaults);\npostcss$3.document = (defaults) => new Document22(defaults);\npostcss$3.CssSyntaxError = CssSyntaxError2$1;\npostcss$3.Declaration = Declaration2$1;\npostcss$3.Container = Container2$1;\npostcss$3.Processor = Processor2$1;\npostcss$3.Document = Document22;\npostcss$3.Comment = Comment2$1;\npostcss$3.Warning = Warning2$1;\npostcss$3.AtRule = AtRule2$1;\npostcss$3.Result = Result2$1;\npostcss$3.Input = Input2$1;\npostcss$3.Rule = Rule2$1;\npostcss$3.Root = Root2$1;\npostcss$3.Node = Node2$1;\nLazyResult2$1.registerPostcss(postcss$3);\nvar postcss_1$1 = postcss$3;\npostcss$3.default = postcss$3;\nconst postcss$1$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(postcss_1$1);\npostcss$1$1.stringify;\npostcss$1$1.fromJSON;\npostcss$1$1.plugin;\npostcss$1$1.parse;\npostcss$1$1.list;\npostcss$1$1.document;\npostcss$1$1.comment;\npostcss$1$1.atRule;\npostcss$1$1.rule;\npostcss$1$1.decl;\npostcss$1$1.root;\npostcss$1$1.CssSyntaxError;\npostcss$1$1.Declaration;\npostcss$1$1.Container;\npostcss$1$1.Processor;\npostcss$1$1.Document;\npostcss$1$1.Comment;\npostcss$1$1.Warning;\npostcss$1$1.AtRule;\npostcss$1$1.Result;\npostcss$1$1.Input;\npostcss$1$1.Rule;\npostcss$1$1.Root;\npostcss$1$1.Node;\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nfunction getDefaultExportFromCjs(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser = { exports: {} };\nvar x = String;\nvar create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x };\n};\npicocolors_browser.exports = create();\npicocolors_browser.exports.createColors = create;\nvar picocolors_browserExports = picocolors_browser.exports;\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nlet pico = picocolors_browserExports;\nlet terminalHighlight$1 = require$$2;\nlet CssSyntaxError$3 = class CssSyntaxError2 extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError2);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n if (terminalHighlight$1) {\n if (color) css = terminalHighlight$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError = CssSyntaxError$3;\nCssSyntaxError$3.default = CssSyntaxError$3;\nvar symbols = {};\nsymbols.isClean = Symbol(\"isClean\");\nsymbols.my = Symbol(\"my\");\nconst DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2 = class Stringifier2 {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier = Stringifier$2;\nStringifier$2.default = Stringifier$2;\nlet Stringifier$1 = stringifier;\nfunction stringify$4(node2, builder) {\n let str = new Stringifier$1(builder);\n str.stringify(node2);\n}\nvar stringify_1 = stringify$4;\nstringify$4.default = stringify$4;\nlet { isClean: isClean$2, my: my$2 } = symbols;\nlet CssSyntaxError$2 = cssSyntaxError;\nlet Stringifier22 = stringifier;\nlet stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4 = class Node3 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2] = false;\n this[my$2] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2]) {\n this[isClean$2] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier22();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node = Node$4;\nNode$4.default = Node$4;\nlet Node$3 = node;\nlet Declaration$4 = class Declaration2 extends Node$3 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration = Declaration$4;\nDeclaration$4.default = Declaration$4;\nlet urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet nanoid$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure = { nanoid: nanoid$1};\nlet { SourceMapConsumer: SourceMapConsumer$2, SourceMapGenerator: SourceMapGenerator$2 } = require$$2;\nlet { existsSync, readFileSync } = require$$2;\nlet { dirname: dirname$1, join } = require$$2;\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2 = class PreviousMap2 {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2) {\n return SourceMapGenerator$2.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap = PreviousMap$2;\nPreviousMap$2.default = PreviousMap$2;\nlet { SourceMapConsumer: SourceMapConsumer$1, SourceMapGenerator: SourceMapGenerator$1 } = require$$2;\nlet { fileURLToPath, pathToFileURL: pathToFileURL$1 } = require$$2;\nlet { isAbsolute, resolve: resolve$1 } = require$$2;\nlet { nanoid } = nonSecure;\nlet terminalHighlight = require$$2;\nlet CssSyntaxError$1 = cssSyntaxError;\nlet PreviousMap$1 = previousMap;\nlet fromOffsetCache = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1 = Boolean(SourceMapConsumer$1 && SourceMapGenerator$1);\nlet pathAvailable$1 = Boolean(resolve$1 && isAbsolute);\nlet Input$4 = class Input2 {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1(opts.from);\n }\n }\n if (pathAvailable$1 && sourceMapAvailable$1) {\n let map = new PreviousMap$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1) {\n result2.input.url = pathToFileURL$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input = Input$4;\nInput$4.default = Input$4;\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input$4);\n}\nlet { SourceMapConsumer, SourceMapGenerator } = require$$2;\nlet { dirname, relative, resolve, sep } = require$$2;\nlet { pathToFileURL } = require$$2;\nlet Input$3 = input;\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\nlet pathAvailable = Boolean(dirname && resolve && relative && sep);\nlet MapGenerator$2 = class MapGenerator2 {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator = MapGenerator$2;\nlet Node$2 = node;\nlet Comment$4 = class Comment2 extends Node$2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment = Comment$4;\nComment$4.default = Comment$4;\nlet { isClean: isClean$1, my: my$1 } = symbols;\nlet Declaration$3 = declaration;\nlet Comment$3 = comment;\nlet Node$1 = node;\nlet parse$4, Rule$4, AtRule$4, Root$6;\nfunction cleanSource(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp(node2) {\n node2[isClean$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp(i2);\n }\n }\n}\nlet Container$7 = class Container2 extends Node$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse$4(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1]) Container2.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1]) markDirtyUp(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7.registerParse = (dependant) => {\n parse$4 = dependant;\n};\nContainer$7.registerRule = (dependant) => {\n Rule$4 = dependant;\n};\nContainer$7.registerAtRule = (dependant) => {\n AtRule$4 = dependant;\n};\nContainer$7.registerRoot = (dependant) => {\n Root$6 = dependant;\n};\nvar container = Container$7;\nContainer$7.default = Container$7;\nContainer$7.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6.prototype);\n }\n node2[my$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7.rebuild(child);\n });\n }\n};\nlet Container$6 = container;\nlet LazyResult$4, Processor$3;\nlet Document$3 = class Document23 extends Container$6 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4(new Processor$3(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3.registerLazyResult = (dependant) => {\n LazyResult$4 = dependant;\n};\nDocument$3.registerProcessor = (dependant) => {\n Processor$3 = dependant;\n};\nvar document$1 = Document$3;\nDocument$3.default = Document$3;\nlet printed = {};\nvar warnOnce$2 = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2 = class Warning2 {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning = Warning$2;\nWarning$2.default = Warning$2;\nlet Warning$1 = warning;\nlet Result$3 = class Result2 {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result = Result$3;\nResult$3.default = Result$3;\nconst SINGLE_QUOTE = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0);\nconst BACKSLASH = \"\\\\\".charCodeAt(0);\nconst SLASH = \"/\".charCodeAt(0);\nconst NEWLINE = \"\\n\".charCodeAt(0);\nconst SPACE = \" \".charCodeAt(0);\nconst FEED = \"\\f\".charCodeAt(0);\nconst TAB = \"\t\".charCodeAt(0);\nconst CR = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES = \")\".charCodeAt(0);\nconst OPEN_CURLY = \"{\".charCodeAt(0);\nconst CLOSE_CURLY = \"}\".charCodeAt(0);\nconst SEMICOLON = \";\".charCodeAt(0);\nconst ASTERISK = \"*\".charCodeAt(0);\nconst COLON = \":\".charCodeAt(0);\nconst AT = \"@\".charCodeAt(0);\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE = /[\\da-f]/i;\nvar tokenize = function tokenizer2(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5 = container;\nlet AtRule$3 = class AtRule2 extends Container$5 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule = AtRule$3;\nAtRule$3.default = AtRule$3;\nContainer$5.registerAtRule(AtRule$3);\nlet Container$4 = container;\nlet LazyResult$3, Processor$2;\nlet Root$5 = class Root2 extends Container$4 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3(new Processor$2(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5.registerLazyResult = (dependant) => {\n LazyResult$3 = dependant;\n};\nRoot$5.registerProcessor = (dependant) => {\n Processor$2 = dependant;\n};\nvar root = Root$5;\nRoot$5.default = Root$5;\nContainer$4.registerRoot(Root$5);\nlet list$2 = {\n comma(string) {\n return list$2.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1 = list$2;\nlist$2.default = list$2;\nlet Container$3 = container;\nlet list$1 = list_1;\nlet Rule$3 = class Rule2 extends Container$3 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule = Rule$3;\nRule$3.default = Rule$3;\nContainer$3.registerRule(Rule$3);\nlet Declaration$2 = declaration;\nlet tokenizer22 = tokenize;\nlet Comment$2 = comment;\nlet AtRule$2 = atRule;\nlet Root$4 = root;\nlet Rule$2 = rule;\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1 = class Parser2 {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer22(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 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, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser = Parser$1;\nlet Container$2 = container;\nlet Parser22 = parser;\nlet Input$2 = input;\nfunction parse$3(css, opts) {\n let input2 = new Input$2(css, opts);\n let parser2 = new Parser22(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1 = parse$3;\nparse$3.default = parse$3;\nContainer$2.registerParse(parse$3);\nlet { isClean, my } = symbols;\nlet MapGenerator$1 = mapGenerator;\nlet stringify$2 = stringify_1;\nlet Container$1 = container;\nlet Document$2 = document$1;\nlet warnOnce$1 = warnOnce$2;\nlet Result$2 = result;\nlet parse$2 = parse_1;\nlet Root$3 = root;\nconst TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN = 0;\nfunction isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks(i2));\n return node2;\n}\nlet postcss$2 = {};\nlet LazyResult$2 = class LazyResult2 {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult2 || css instanceof Result$2) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container$1.rebuild(root2);\n }\n }\n this.result = new Result$2(processor2, root2, opts);\n this.helpers = { ...postcss$2, postcss: postcss$2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2.registerPostcss = (dependant) => {\n postcss$2 = dependant;\n};\nvar lazyResult = LazyResult$2;\nLazyResult$2.default = LazyResult$2;\nRoot$3.registerLazyResult(LazyResult$2);\nDocument$2.registerLazyResult(LazyResult$2);\nlet MapGenerator22 = mapGenerator;\nlet stringify$1 = stringify_1;\nlet warnOnce22 = warnOnce$2;\nlet parse$1 = parse_1;\nconst Result$1 = result;\nlet NoWorkResult$1 = class NoWorkResult2 {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1;\n this.result = new Result$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator22(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce22(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult = NoWorkResult$1;\nNoWorkResult$1.default = NoWorkResult$1;\nlet NoWorkResult22 = noWorkResult;\nlet LazyResult$1 = lazyResult;\nlet Document$1 = document$1;\nlet Root$2 = root;\nlet Processor$1 = class Processor2 {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult22(this, css, opts);\n } else {\n return new LazyResult$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor = Processor$1;\nProcessor$1.default = Processor$1;\nRoot$2.registerProcessor(Processor$1);\nDocument$1.registerProcessor(Processor$1);\nlet Declaration$1 = declaration;\nlet PreviousMap22 = previousMap;\nlet Comment$1 = comment;\nlet AtRule$1 = atRule;\nlet Input$1 = input;\nlet Root$1 = root;\nlet Rule$1 = rule;\nfunction fromJSON$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap22.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1 = fromJSON$1;\nfromJSON$1.default = fromJSON$1;\nlet CssSyntaxError22 = cssSyntaxError;\nlet Declaration22 = declaration;\nlet LazyResult22 = lazyResult;\nlet Container22 = container;\nlet Processor22 = processor;\nlet stringify = stringify_1;\nlet fromJSON = fromJSON_1;\nlet Document222 = document$1;\nlet Warning22 = warning;\nlet Comment22 = comment;\nlet AtRule22 = atRule;\nlet Result22 = result;\nlet Input22 = input;\nlet parse = parse_1;\nlet list = list_1;\nlet Rule22 = rule;\nlet Root22 = root;\nlet Node22 = node;\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor22(plugins);\n}\npostcss.plugin = function plugin2(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor22().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss.stringify = stringify;\npostcss.parse = parse;\npostcss.fromJSON = fromJSON;\npostcss.list = list;\npostcss.comment = (defaults) => new Comment22(defaults);\npostcss.atRule = (defaults) => new AtRule22(defaults);\npostcss.decl = (defaults) => new Declaration22(defaults);\npostcss.rule = (defaults) => new Rule22(defaults);\npostcss.root = (defaults) => new Root22(defaults);\npostcss.document = (defaults) => new Document222(defaults);\npostcss.CssSyntaxError = CssSyntaxError22;\npostcss.Declaration = Declaration22;\npostcss.Container = Container22;\npostcss.Processor = Processor22;\npostcss.Document = Document222;\npostcss.Comment = Comment22;\npostcss.Warning = Warning22;\npostcss.AtRule = AtRule22;\npostcss.Result = Result22;\npostcss.Input = Input22;\npostcss.Rule = Rule22;\npostcss.Root = Root22;\npostcss.Node = Node22;\nLazyResult22.registerPostcss(postcss);\nvar postcss_1 = postcss;\npostcss.default = postcss;\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs(postcss_1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nclass BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(..._args) {\n __publicField2(this, \"parentElement\", null);\n __publicField2(this, \"parentNode\", null);\n __publicField2(this, \"ownerDocument\");\n __publicField2(this, \"firstChild\", null);\n __publicField2(this, \"lastChild\", null);\n __publicField2(this, \"previousSibling\", null);\n __publicField2(this, \"nextSibling\", null);\n __publicField2(this, \"ELEMENT_NODE\", 1);\n __publicField2(this, \"TEXT_NODE\", 3);\n __publicField2(this, \"nodeType\");\n __publicField2(this, \"nodeName\");\n __publicField2(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes2 = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes2.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes2;\n }\n contains(node2) {\n if (!(node2 instanceof BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while (node2.parentNode) {\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nconst testableAccessors = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\",\n \"ownerDocument\"\n ],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nconst isAngularZonePresent = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.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 _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n untaintedBasePrototype[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a2;\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 = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction ownerDocument(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"ownerDocument\");\n}\nfunction childNodes(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentElement\");\n}\nfunction textContent(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"textContent\");\n}\nfunction contains(n2, other) {\n return getUntaintedMethod(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode(n2) {\n return getUntaintedMethod(\"Node\", n2, \"getRootNode\")();\n}\nfunction host(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nconst index = {\n ownerDocument,\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch\n};\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === \"map\") {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction throttle(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function(...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked ? d : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n }\n );\n return () => hookSetter(target, key, original || {}, true);\n}\nlet nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();\n}\nfunction getWindowScroll(win) {\n var _a2, _b, _c, _d;\n const doc = win.document;\n return {\n left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc.documentElement.scrollLeft || (doc == null ? void 0 : doc.body) && ((_a2 = index.parentElement(doc.body)) == null ? void 0 : _a2.scrollLeft) || ((_b = doc == null ? void 0 : doc.body) == null ? void 0 : _b.scrollLeft) || 0,\n top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.scrollTop) || 0\n };\n}\nfunction getWindowHeight() {\n return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction closestElementOfNode(node2) {\n if (!node2) {\n return null;\n }\n const el = node2.nodeType === node2.ELEMENT_NODE ? node2 : index.parentElement(node2);\n return el;\n}\nfunction isBlocked(node2, blockClass, blockSelector, checkAncestors) {\n if (!node2) {\n return false;\n }\n const el = closestElementOfNode(node2);\n if (!el) {\n return false;\n }\n try {\n if (typeof blockClass === \"string\") {\n if (el.classList.contains(blockClass)) return true;\n if (checkAncestors && el.closest(\".\" + blockClass) !== null) return true;\n } else {\n if (classMatchesRegex(el, blockClass, checkAncestors)) return true;\n }\n } catch (e2) {\n }\n if (blockSelector) {\n if (el.matches(blockSelector)) return true;\n if (checkAncestors && el.closest(blockSelector) !== null) return true;\n }\n return false;\n}\nfunction isSerialized(n2, mirror2) {\n return mirror2.getId(n2) !== -1;\n}\nfunction isIgnored(n2, mirror2, slimDOMOptions) {\n if (n2.tagName === \"TITLE\" && slimDOMOptions.headTitleMutations) {\n return true;\n }\n return mirror2.getId(n2) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror2) {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror2.getId(target);\n if (!mirror2.has(id)) {\n return true;\n }\n const parent = index.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, mirror2);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill$1(win = window) {\n if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype.forEach;\n }\n if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n }\n}\nfunction isSerializedIframe(n2, mirror2) {\n return Boolean(n2.nodeName === \"IFRAME\" && mirror2.getMeta(n2));\n}\nfunction isSerializedStylesheet(n2, mirror2) {\n return Boolean(\n n2.nodeName === \"LINK\" && n2.nodeType === n2.ELEMENT_NODE && n2.getAttribute && n2.getAttribute(\"rel\") === \"stylesheet\" && mirror2.getMeta(n2)\n );\n}\nfunction hasShadowRoot(n2) {\n if (!n2) return false;\n if (n2 instanceof BaseRRNode && \"shadowRoot\" in n2) {\n return Boolean(n2.shadowRoot);\n }\n return Boolean(index.shadowRoot(n2));\n}\nclass StyleSheetMirror {\n constructor() {\n __publicField(this, \"id\", 1);\n __publicField(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n }\n getId(stylesheet) {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(stylesheet, id) {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n let newId;\n if (id === void 0) {\n newId = this.id++;\n } else newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = /* @__PURE__ */ new WeakMap();\n this.idStyleMap = /* @__PURE__ */ new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction getShadowHost(n2) {\n var _a2;\n let shadowHost = null;\n if (\"getRootNode\" in n2 && ((_a2 = index.getRootNode(n2)) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && index.host(index.getRootNode(n2)))\n shadowHost = index.host(index.getRootNode(n2));\n return shadowHost;\n}\nfunction getRootShadowHost(n2) {\n let rootShadowHost = n2;\n let shadowHost;\n while (shadowHost = getShadowHost(rootShadowHost))\n rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n2) {\n const doc = index.ownerDocument(n2);\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n2);\n return index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n const doc = index.ownerDocument(n2);\n if (!doc) return false;\n return index.contains(doc, n2) || shadowHostInDom(n2);\n}\nvar 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 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 || {});\nfunction isNodeInLinkedList(n2) {\n return \"__ln\" in n2;\n}\nclass DoubleLinkedList {\n constructor() {\n __publicField(this, \"length\", 0);\n __publicField(this, \"head\", null);\n __publicField(this, \"tail\", null);\n }\n get(position) {\n if (position >= this.length) {\n throw new Error(\"Position outside of list range\");\n }\n let current = this.head;\n for (let index2 = 0; index2 < position; index2++) {\n current = (current == null ? void 0 : current.next) || null;\n }\n return current;\n }\n addNode(n2) {\n const node2 = {\n value: n2,\n previous: null,\n next: null\n };\n n2.__ln = node2;\n if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) {\n const current = n2.previousSibling.__ln.next;\n node2.next = current;\n node2.previous = n2.previousSibling.__ln;\n n2.previousSibling.__ln.next = node2;\n if (current) {\n current.previous = node2;\n }\n } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) {\n const current = n2.nextSibling.__ln.previous;\n node2.previous = current;\n node2.next = n2.nextSibling.__ln;\n n2.nextSibling.__ln.previous = node2;\n if (current) {\n current.next = node2;\n }\n } else {\n if (this.head) {\n this.head.previous = node2;\n }\n node2.next = this.head;\n this.head = node2;\n }\n if (node2.next === null) {\n this.tail = node2;\n }\n this.length++;\n }\n removeNode(n2) {\n const current = n2.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n } else {\n this.tail = null;\n }\n } else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n } else {\n this.tail = current.previous;\n }\n }\n if (n2.__ln) {\n delete n2.__ln;\n }\n this.length--;\n }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n constructor() {\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"texts\", []);\n __publicField(this, \"attributes\", []);\n __publicField(this, \"attributeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"removes\", []);\n __publicField(this, \"mapRemoves\", []);\n __publicField(this, \"movedMap\", {});\n __publicField(this, \"addedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"movedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"droppedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"removesSubTreeCache\", /* @__PURE__ */ new Set());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"blockClass\");\n __publicField(this, \"blockSelector\");\n __publicField(this, \"maskTextClass\");\n __publicField(this, \"maskTextSelector\");\n __publicField(this, \"inlineStylesheet\");\n __publicField(this, \"maskInputOptions\");\n __publicField(this, \"maskTextFn\");\n __publicField(this, \"maskInputFn\");\n __publicField(this, \"keepIframeSrcFn\");\n __publicField(this, \"recordCanvas\");\n __publicField(this, \"inlineImages\");\n __publicField(this, \"slimDOMOptions\");\n __publicField(this, \"dataURLOptions\");\n __publicField(this, \"doc\");\n __publicField(this, \"mirror\");\n __publicField(this, \"iframeManager\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"shadowDomManager\");\n __publicField(this, \"canvasManager\");\n __publicField(this, \"processedNodeManager\");\n __publicField(this, \"unattachedDoc\");\n __publicField(this, \"processMutations\", (mutations) => {\n mutations.forEach(this.processMutation);\n this.emit();\n });\n __publicField(this, \"emit\", () => {\n if (this.frozen || this.locked) {\n return;\n }\n const adds = [];\n const addedIds = /* @__PURE__ */ new Set();\n const addList = new DoubleLinkedList();\n const getNextId = (n2) => {\n let ns = n2;\n let nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n2) => {\n const parent = index.parentNode(n2);\n if (!parent || !inDom(n2)) {\n return;\n }\n let cssCaptured = false;\n if (n2.nodeType === Node.TEXT_NODE) {\n const parentTag = parent.tagName;\n if (parentTag === \"TEXTAREA\") {\n return;\n } else if (parentTag === \"STYLE\" && this.addedSet.has(parent)) {\n cssCaptured = true;\n }\n }\n const parentId = isShadowRoot(parent) ? this.mirror.getId(getShadowHost(n2)) : this.mirror.getId(parent);\n const nextId = getNextId(n2);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n2);\n }\n const sn = serializeNodeWithId(n2, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskTextClass: this.maskTextClass,\n maskTextSelector: this.maskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror)) {\n this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(\n currentN\n );\n }\n if (hasShadowRoot(n2)) {\n this.shadowDomManager.addShadowRoot(index.shadowRoot(n2), this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n this.iframeManager.attachIframe(iframe, childSn);\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n cssCaptured\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn\n });\n addedIds.add(sn.id);\n }\n };\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n }\n for (const n2 of this.movedSet) {\n if (isParentRemoved(this.removesSubTreeCache, n2, this.mirror) && !this.movedSet.has(index.parentNode(n2))) {\n continue;\n }\n pushAdd(n2);\n }\n for (const n2 of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n2) && !isParentRemoved(this.removesSubTreeCache, n2, this.mirror)) {\n pushAdd(n2);\n } else if (isAncestorInSet(this.movedSet, n2)) {\n pushAdd(n2);\n } else {\n this.droppedSet.add(n2);\n }\n }\n let candidate = null;\n while (addList.length) {\n let node2 = null;\n if (candidate) {\n const parentId = this.mirror.getId(index.parentNode(candidate.value));\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node2 = candidate;\n }\n }\n if (!node2) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n const parentId = this.mirror.getId(index.parentNode(_node.value));\n const nextId = getNextId(_node.value);\n if (nextId === -1) continue;\n else if (parentId !== -1) {\n node2 = _node;\n break;\n } else {\n const unhandledNode = _node.value;\n const parent = index.parentNode(unhandledNode);\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = index.host(parent);\n const parentId2 = this.mirror.getId(shadowHost);\n if (parentId2 !== -1) {\n node2 = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node2) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node2.previous;\n addList.removeNode(node2.value);\n pushAdd(node2.value);\n }\n const payload = {\n texts: this.texts.map((text) => {\n const n2 = text.node;\n const parent = index.parentNode(n2);\n if (parent && parent.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(parent);\n }\n return {\n id: this.mirror.getId(n2),\n value: text.value\n };\n }).filter((text) => !addedIds.has(text.id)).filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes.map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === \"string\") {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split(\"var(\").length === attributes.style.split(\"var(\").length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes\n };\n }).filter((attribute) => !addedIds.has(attribute.id)).filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds\n };\n if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) {\n return;\n }\n this.texts = [];\n this.attributes = [];\n this.attributeMap = /* @__PURE__ */ new WeakMap();\n this.removes = [];\n this.addedSet = /* @__PURE__ */ new Set();\n this.movedSet = /* @__PURE__ */ new Set();\n this.droppedSet = /* @__PURE__ */ new Set();\n this.removesSubTreeCache = /* @__PURE__ */ new Set();\n this.movedMap = {};\n this.mutationCb(payload);\n });\n __publicField(this, \"genTextAreaValueMutation\", (textarea) => {\n let item = this.attributeMap.get(textarea);\n if (!item) {\n item = {\n node: textarea,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(textarea, item);\n }\n const value = Array.from(\n index.childNodes(textarea),\n (cn) => index.textContent(cn) || \"\"\n ).join(\"\");\n item.attributes.value = maskInputValue({\n element: textarea,\n maskInputOptions: this.maskInputOptions,\n tagName: textarea.tagName,\n type: getInputType(textarea),\n value,\n maskInputFn: this.maskInputFn\n });\n });\n __publicField(this, \"processMutation\", (m) => {\n if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n return;\n }\n switch (m.type) {\n case \"characterData\": {\n const value = index.textContent(m.target);\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) && value !== m.oldValue) {\n this.texts.push({\n value: needMaskingText(\n m.target,\n this.maskTextClass,\n this.maskTextSelector,\n true\n // checkAncestors\n ) && value ? this.maskTextFn ? this.maskTextFn(value, closestElementOfNode(m.target)) : value.replace(/[\\S]/g, \"*\") : value,\n node: m.target\n });\n }\n break;\n }\n case \"attributes\": {\n const target = m.target;\n let attributeName = m.attributeName;\n let value = m.target.getAttribute(attributeName);\n if (attributeName === \"value\") {\n const type = getInputType(target);\n value = maskInputValue({\n element: target,\n maskInputOptions: this.maskInputOptions,\n tagName: target.tagName,\n type,\n value,\n maskInputFn: this.maskInputFn\n });\n }\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || value === m.oldValue) {\n return;\n }\n let item = this.attributeMap.get(m.target);\n if (target.tagName === \"IFRAME\" && attributeName === \"src\" && !this.keepIframeSrcFn(value)) {\n if (!target.contentDocument) {\n attributeName = \"rr_src\";\n } else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n if (attributeName === \"type\" && target.tagName === \"INPUT\" && (m.oldValue || \"\").toLowerCase() === \"password\") {\n target.setAttribute(\"data-rr-is-password\", \"true\");\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(\n this.doc,\n toLowerCase(target.tagName),\n toLowerCase(attributeName),\n value\n );\n if (attributeName === \"style\") {\n if (!this.unattachedDoc) {\n try {\n this.unattachedDoc = document.implementation.createHTMLDocument();\n } catch (e2) {\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement(\"span\");\n if (m.oldValue) {\n old.setAttribute(\"style\", m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) || newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === \"\") {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n } else {\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === \"\") {\n item.styleDiff[pname] = false;\n }\n }\n } else if (attributeName === \"open\" && target.tagName === \"DIALOG\") {\n if (target.matches(\"dialog:modal\")) {\n item.attributes[\"rr_open_mode\"] = \"modal\";\n } else {\n item.attributes[\"rr_open_mode\"] = \"non-modal\";\n }\n }\n }\n break;\n }\n case \"childList\": {\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n return;\n if (m.target.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(m.target);\n return;\n }\n m.addedNodes.forEach((n2) => this.genAdds(n2, m.target));\n m.removedNodes.forEach((n2) => {\n const nodeId = this.mirror.getId(n2);\n const parentId = isShadowRoot(m.target) ? this.mirror.getId(index.host(m.target)) : this.mirror.getId(m.target);\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || isIgnored(n2, this.mirror, this.slimDOMOptions) || !isSerialized(n2, this.mirror)) {\n return;\n }\n if (this.addedSet.has(n2)) {\n deepDelete(this.addedSet, n2);\n this.droppedSet.add(n2);\n } else if (this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, this.mirror)) ;\n else if (this.movedSet.has(n2) && this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(this.movedSet, n2);\n } else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0\n });\n processRemoves(n2, this.removesSubTreeCache);\n }\n this.mapRemoves.push(n2);\n });\n break;\n }\n }\n });\n __publicField(this, \"genAdds\", (n2, target) => {\n if (this.processedNodeManager.inOtherBuffer(n2, this)) return;\n if (this.addedSet.has(n2) || this.movedSet.has(n2)) return;\n if (this.mirror.hasNode(n2)) {\n if (isIgnored(n2, this.mirror, this.slimDOMOptions)) {\n return;\n }\n this.movedSet.add(n2);\n let targetId = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n2), targetId)] = true;\n }\n } else {\n this.addedSet.add(n2);\n this.droppedSet.delete(n2);\n }\n if (!isBlocked(n2, this.blockClass, this.blockSelector, false)) {\n index.childNodes(n2).forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n2)) {\n index.childNodes(index.shadowRoot(n2)).forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n2);\n });\n }\n }\n });\n }\n init(options) {\n [\n \"mutationCb\",\n \"blockClass\",\n \"blockSelector\",\n \"maskTextClass\",\n \"maskTextSelector\",\n \"inlineStylesheet\",\n \"maskInputOptions\",\n \"maskTextFn\",\n \"maskInputFn\",\n \"keepIframeSrcFn\",\n \"recordCanvas\",\n \"inlineImages\",\n \"slimDOMOptions\",\n \"dataURLOptions\",\n \"doc\",\n \"mirror\",\n \"iframeManager\",\n \"stylesheetManager\",\n \"shadowDomManager\",\n \"canvasManager\",\n \"processedNodeManager\"\n ].forEach((key) => {\n this[key] = options[key];\n });\n }\n freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n}\nfunction deepDelete(addsSet, n2) {\n addsSet.delete(n2);\n index.childNodes(n2).forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction processRemoves(n2, cache) {\n const queue = [n2];\n while (queue.length) {\n const next = queue.pop();\n if (cache.has(next)) continue;\n cache.add(next);\n index.childNodes(next).forEach((n22) => queue.push(n22));\n }\n return;\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n2);\n}\nfunction _isParentRemoved(removes, n2, _mirror2) {\n const node2 = index.parentNode(n2);\n if (!node2) return false;\n return removes.has(node2);\n}\nfunction isAncestorInSet(set, n2) {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n const parent = index.parentNode(n2);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = void 0;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = (...rest) => {\n try {\n return cb(...rest);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n throw error;\n }\n };\n return rrwebWrapped;\n};\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if (\"composedPath\" in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n } else if (\"path\" in event && event.path.length) {\n return event.path[0];\n }\n } catch {\n }\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n const observer = new (mutationObserverCtor())(\n callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer))\n );\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction initMoveObserver({\n mousemoveCb,\n sampling,\n doc,\n mirror: mirror2\n}) {\n if (sampling.mousemove === false) {\n return () => {\n };\n }\n const threshold = typeof sampling.mousemove === \"number\" ? sampling.mousemove : 50;\n const callbackThreshold = typeof sampling.mousemoveCallback === \"number\" ? sampling.mousemoveCallback : 500;\n let positions = [];\n let timeBaseline;\n const wrappedCb = throttle(\n callbackWrapper(\n (source) => {\n const totalOffset = Date.now() - timeBaseline;\n mousemoveCb(\n positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }),\n source\n );\n positions = [];\n timeBaseline = null;\n }\n ),\n callbackThreshold\n );\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n const { clientX, clientY } = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror2.getId(target),\n timeOffset: nowTimestamp() - timeBaseline\n });\n wrappedCb(\n typeof DragEvent !== \"undefined\" && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove : IncrementalSource.TouchMove\n );\n }),\n threshold,\n {\n trailing: false\n }\n )\n );\n const handlers = [\n on(\"mousemove\", updatePosition, doc),\n on(\"touchmove\", updatePosition, doc),\n on(\"drag\", updatePosition, doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initMouseInteractionObserver({\n mouseInteractionCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n if (sampling.mouseInteraction === false) {\n return () => {\n };\n }\n const disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction;\n const handlers = [];\n let currentPointerType = null;\n const getHandler = (eventKey) => {\n return (event) => {\n const target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n let pointerType = null;\n let thisEventKey = eventKey;\n if (\"pointerType\" in event) {\n switch (event.pointerType) {\n case \"mouse\":\n pointerType = PointerTypes.Mouse;\n break;\n case \"touch\":\n pointerType = PointerTypes.Touch;\n break;\n case \"pen\":\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = \"TouchStart\";\n } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = \"TouchEnd\";\n }\n } else if (pointerType === PointerTypes.Pen) ;\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (thisEventKey.startsWith(\"Touch\") && pointerType === PointerTypes.Touch || thisEventKey.startsWith(\"Mouse\") && pointerType === PointerTypes.Mouse) {\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n const e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e2) {\n return;\n }\n const id = mirror2.getId(target);\n const { clientX, clientY } = e2;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...pointerType !== null && { pointerType }\n });\n };\n };\n Object.keys(MouseInteractions).filter(\n (key) => Number.isNaN(Number(key)) && !key.endsWith(\"_Departed\") && disableMap[key] !== false\n ).forEach((eventKey) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace(\n \"mouse\",\n \"pointer\"\n );\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initScrollObserver({\n scrollCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const id = mirror2.getId(target);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top\n });\n } else {\n scrollCb({\n id,\n x: target.scrollLeft,\n y: target.scrollTop\n });\n }\n }),\n sampling.scroll || 100\n )\n );\n return on(\"scroll\", updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(\n throttle(\n callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height)\n });\n lastH = height;\n lastW = width;\n }\n }),\n 200\n )\n );\n return on(\"resize\", updateDimension, win);\n}\nconst INPUT_TAGS = [\"INPUT\", \"TEXTAREA\", \"SELECT\"];\nconst lastInputValueMap = /* @__PURE__ */ new WeakMap();\nfunction initInputObserver({\n inputCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n ignoreClass,\n ignoreSelector,\n maskInputOptions,\n maskInputFn,\n sampling,\n userTriggeredOnInput\n}) {\n function eventHandler(event) {\n let target = getEventTarget(event);\n const userTriggered = event.isTrusted;\n const tagName = target && target.tagName;\n if (target && tagName === \"OPTION\") {\n target = index.parentElement(target);\n }\n if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n if (target.classList.contains(ignoreClass) || ignoreSelector && target.matches(ignoreSelector)) {\n return;\n }\n let text = target.value;\n let isChecked = false;\n const type = getInputType(target) || \"\";\n if (type === \"radio\" || type === \"checkbox\") {\n isChecked = target.checked;\n } else if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) {\n text = maskInputValue({\n element: target,\n maskInputOptions,\n tagName,\n type,\n value: text,\n maskInputFn\n });\n }\n cbWithDedup(\n target,\n userTriggeredOnInput ? { text, isChecked, userTriggered } : { text, isChecked }\n );\n const name = target.name;\n if (type === \"radio\" && name && isChecked) {\n doc.querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`).forEach((el) => {\n if (el !== target) {\n const text2 = el.value;\n cbWithDedup(\n el,\n userTriggeredOnInput ? { text: text2, isChecked: !isChecked, userTriggered: false } : { text: text2, isChecked: !isChecked }\n );\n }\n });\n }\n }\n function cbWithDedup(target, v2) {\n const lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked) {\n lastInputValueMap.set(target, v2);\n const id = mirror2.getId(target);\n callbackWrapper(inputCb)({\n ...v2,\n id\n });\n }\n }\n const events = sampling.input === \"last\" ? [\"change\"] : [\"input\", \"change\"];\n const handlers = events.map(\n (eventName) => on(eventName, callbackWrapper(eventHandler), doc)\n );\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(\n currentWindow.HTMLInputElement.prototype,\n \"value\"\n );\n const hookProperties = [\n [currentWindow.HTMLInputElement.prototype, \"value\"],\n [currentWindow.HTMLInputElement.prototype, \"checked\"],\n [currentWindow.HTMLSelectElement.prototype, \"value\"],\n [currentWindow.HTMLTextAreaElement.prototype, \"value\"],\n // Some UI library use selectedIndex to set select value\n [currentWindow.HTMLSelectElement.prototype, \"selectedIndex\"],\n [currentWindow.HTMLOptionElement.prototype, \"selected\"]\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(\n ...hookProperties.map(\n (p) => hookSetter(\n p[0],\n p[1],\n {\n set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false\n // userTriggered to false as this could well be programmatic\n });\n }\n },\n false,\n currentWindow\n )\n )\n );\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction getNestedCSSRulePositions(rule2) {\n const positions = [];\n function recurse(childRule, pos) {\n if (hasNestedCSSRule(\"CSSGroupingRule\") && childRule.parentRule instanceof CSSGroupingRule || hasNestedCSSRule(\"CSSMediaRule\") && childRule.parentRule instanceof CSSMediaRule || hasNestedCSSRule(\"CSSSupportsRule\") && childRule.parentRule instanceof CSSSupportsRule || hasNestedCSSRule(\"CSSConditionRule\") && childRule.parentRule instanceof CSSConditionRule) {\n const rules2 = Array.from(\n childRule.parentRule.cssRules\n );\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n } else if (childRule.parentStyleSheet) {\n const rules2 = Array.from(childRule.parentStyleSheet.cssRules);\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n }\n return pos;\n }\n return recurse(rule2, positions);\n}\nfunction getIdAndStyleId(sheet, mirror2, styleMirror) {\n let id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id\n };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror: mirror2, stylesheetManager }, { win }) {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return () => {\n };\n }\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule: rule2, index: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.addRule = function(selector, styleBlock, index2 = this.cssRules.length) {\n const rule2 = `${selector} { ${styleBlock} }`;\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule2, index2]);\n };\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.removeRule = function(index2) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index2]);\n };\n let replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n let replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n const supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule(\"CSSGroupingRule\")) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n if (canMonkeyPatchNestedCSSRule(\"CSSMediaRule\")) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSConditionRule\")) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSSupportsRule\")) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n const unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: type.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: type.prototype.deleteRule\n };\n type.prototype.insertRule = new Proxy(\n unmodifiedFunctions[typeKey].insertRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule: rule2,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index2 || 0\n // defaults to 0\n ]\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n type.prototype.deleteRule = new Proxy(\n unmodifiedFunctions[typeKey].deleteRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index2] }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n });\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver({\n mirror: mirror2,\n stylesheetManager\n}, host2) {\n var _a2, _b, _c;\n let hostId = null;\n if (host2.nodeName === \"#document\") hostId = mirror2.getId(host2);\n else hostId = mirror2.getId(index.host(host2));\n const patchTarget = host2.nodeName === \"#document\" ? (_a2 = host2.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host2.ownerDocument) == null ? void 0 : _b.defaultView) == null ? void 0 : _c.ShadowRoot;\n const originalPropertyDescriptor = (patchTarget == null ? void 0 : patchTarget.prototype) ? Object.getOwnPropertyDescriptor(\n patchTarget == null ? void 0 : patchTarget.prototype,\n \"adoptedStyleSheets\"\n ) : void 0;\n if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor)\n return () => {\n };\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get() {\n var _a3;\n return (_a3 = originalPropertyDescriptor.get) == null ? void 0 : _a3.call(this);\n },\n set(sheets) {\n var _a3;\n const result2 = (_a3 = originalPropertyDescriptor.set) == null ? void 0 : _a3.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e2) {\n }\n }\n return result2;\n }\n });\n return callbackWrapper(() => {\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set\n });\n });\n}\nfunction initStyleDeclarationObserver({\n styleDeclarationCb,\n mirror: mirror2,\n ignoreCSSAttributes,\n stylesheetManager\n}, { win }) {\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property, value, priority] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver({\n mediaInteractionCb,\n blockClass,\n blockSelector,\n mirror: mirror2,\n sampling,\n doc\n}) {\n const handler = callbackWrapper(\n (type) => throttle(\n callbackWrapper((event) => {\n const target = getEventTarget(event);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const { currentTime, volume, muted, playbackRate, loop } = target;\n mediaInteractionCb({\n type,\n id: mirror2.getId(target),\n currentTime,\n volume,\n muted,\n playbackRate,\n loop\n });\n }),\n sampling.media || 500\n )\n );\n const handlers = [\n on(\"play\", handler(MediaInteractions.Play), doc),\n on(\"pause\", handler(MediaInteractions.Pause), doc),\n on(\"seeked\", handler(MediaInteractions.Seeked), doc),\n on(\"volumechange\", handler(MediaInteractions.VolumeChange), doc),\n on(\"ratechange\", handler(MediaInteractions.RateChange), doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initFontObserver({ fontCb, doc }) {\n const win = doc.defaultView;\n if (!win) {\n return () => {\n };\n }\n const handlers = [];\n const fontMap = /* @__PURE__ */ new WeakMap();\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace2(family, source, descriptors) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== \"string\",\n descriptors,\n fontSource: typeof source === \"string\" ? source : JSON.stringify(Array.from(new Uint8Array(source)))\n });\n return fontFace;\n };\n const restoreHandler = patch(\n doc.fonts,\n \"add\",\n function(original) {\n return function(fontFace) {\n setTimeout(\n callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }),\n 0\n );\n return original.apply(this, [fontFace]);\n };\n }\n );\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initSelectionObserver(param) {\n const { doc, mirror: mirror2, blockClass, blockSelector, selectionCb } = param;\n let collapsed = true;\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n if (!selection || collapsed && (selection == null ? void 0 : selection.isCollapsed)) return;\n collapsed = selection.isCollapsed || false;\n const ranges = [];\n const count = selection.rangeCount || 0;\n for (let i2 = 0; i2 < count; i2++) {\n const range = selection.getRangeAt(i2);\n const { startContainer, startOffset, endContainer, endOffset } = range;\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) || isBlocked(endContainer, blockClass, blockSelector, true);\n if (blocked) continue;\n ranges.push({\n start: mirror2.getId(startContainer),\n startOffset,\n end: mirror2.getId(endContainer),\n endOffset\n });\n }\n selectionCb({ ranges });\n });\n updateSelection();\n return on(\"selectionchange\", updateSelection);\n}\nfunction initCustomElementObserver({\n doc,\n customElementCb\n}) {\n const win = doc.defaultView;\n if (!win || !win.customElements) return () => {\n };\n const restoreHandler = patch(\n win.customElements,\n \"define\",\n function(original) {\n return function(name, constructor, options) {\n try {\n customElementCb({\n define: {\n name\n }\n });\n } catch (e2) {\n console.warn(`Custom element callback failed for ${name}`);\n }\n return original.apply(this, [name, constructor, options]);\n };\n }\n );\n return restoreHandler;\n}\nfunction mergeHooks(o2, hooks) {\n const {\n mutationCb,\n mousemoveCb,\n mouseInteractionCb,\n scrollCb,\n viewportResizeCb,\n inputCb,\n mediaInteractionCb,\n styleSheetRuleCb,\n styleDeclarationCb,\n canvasMutationCb,\n fontCb,\n selectionCb,\n customElementCb\n } = o2;\n o2.mutationCb = (...p) => {\n if (hooks.mutation) {\n hooks.mutation(...p);\n }\n mutationCb(...p);\n };\n o2.mousemoveCb = (...p) => {\n if (hooks.mousemove) {\n hooks.mousemove(...p);\n }\n mousemoveCb(...p);\n };\n o2.mouseInteractionCb = (...p) => {\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction(...p);\n }\n mouseInteractionCb(...p);\n };\n o2.scrollCb = (...p) => {\n if (hooks.scroll) {\n hooks.scroll(...p);\n }\n scrollCb(...p);\n };\n o2.viewportResizeCb = (...p) => {\n if (hooks.viewportResize) {\n hooks.viewportResize(...p);\n }\n viewportResizeCb(...p);\n };\n o2.inputCb = (...p) => {\n if (hooks.input) {\n hooks.input(...p);\n }\n inputCb(...p);\n };\n o2.mediaInteractionCb = (...p) => {\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction(...p);\n }\n mediaInteractionCb(...p);\n };\n o2.styleSheetRuleCb = (...p) => {\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule(...p);\n }\n styleSheetRuleCb(...p);\n };\n o2.styleDeclarationCb = (...p) => {\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration(...p);\n }\n styleDeclarationCb(...p);\n };\n o2.canvasMutationCb = (...p) => {\n if (hooks.canvasMutation) {\n hooks.canvasMutation(...p);\n }\n canvasMutationCb(...p);\n };\n o2.fontCb = (...p) => {\n if (hooks.font) {\n hooks.font(...p);\n }\n fontCb(...p);\n };\n o2.selectionCb = (...p) => {\n if (hooks.selection) {\n hooks.selection(...p);\n }\n selectionCb(...p);\n };\n o2.customElementCb = (...c2) => {\n if (hooks.customElement) {\n hooks.customElement(...c2);\n }\n customElementCb(...c2);\n };\n}\nfunction initObservers(o2, hooks = {}) {\n const currentWindow = o2.doc.defaultView;\n if (!currentWindow) {\n return () => {\n };\n }\n mergeHooks(o2, hooks);\n let mutationObserver;\n if (o2.recordDOM) {\n mutationObserver = initMutationObserver(o2, o2.doc);\n }\n const mousemoveHandler = initMoveObserver(o2);\n const mouseInteractionHandler = initMouseInteractionObserver(o2);\n const scrollHandler = initScrollObserver(o2);\n const viewportResizeHandler = initViewportResizeObserver(o2, {\n win: currentWindow\n });\n const inputHandler = initInputObserver(o2);\n const mediaInteractionHandler = initMediaInteractionObserver(o2);\n let styleSheetObserver = () => {\n };\n let adoptedStyleSheetObserver = () => {\n };\n let styleDeclarationObserver = () => {\n };\n let fontObserver = () => {\n };\n if (o2.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o2, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o2, {\n win: currentWindow\n });\n if (o2.collectFonts) {\n fontObserver = initFontObserver(o2);\n }\n }\n const selectionObserver = initSelectionObserver(o2);\n const customElementObserver = initCustomElementObserver(o2);\n const pluginHandlers = [];\n for (const plugin3 of o2.plugins) {\n pluginHandlers.push(\n plugin3.observer(plugin3.callback, currentWindow, plugin3.options)\n );\n }\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== \"undefined\";\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(\n typeof window[prop] !== \"undefined\" && // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[prop].prototype && \"insertRule\" in window[prop].prototype && \"deleteRule\" in window[prop].prototype\n );\n}\nclass CrossOriginIframeMirror {\n constructor(generateIdFn) {\n __publicField(this, \"iframeIdToRemoteIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"iframeRemoteIdToIdMap\", /* @__PURE__ */ new WeakMap());\n this.generateIdFn = generateIdFn;\n }\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n getIds(iframe, remoteId) {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map(\n (id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap)\n );\n }\n getRemoteId(iframe, id, map) {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== \"number\") return id;\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n }\n getRemoteIds(iframe, ids) {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n getIdToRemoteIdMap(iframe) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = /* @__PURE__ */ new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n getRemoteIdToIdMap(iframe) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = /* @__PURE__ */ new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\nclass IframeManager {\n constructor(options) {\n __publicField(this, \"iframes\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMirror\", new CrossOriginIframeMirror(genId));\n __publicField(this, \"crossOriginIframeStyleMirror\");\n __publicField(this, \"crossOriginIframeRootIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"wrappedEmit\");\n __publicField(this, \"loadListener\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"recordCrossOriginIframes\");\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(\n this.stylesheetManager.styleMirror.generateId.bind(\n this.stylesheetManager.styleMirror\n )\n );\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener(\"message\", this.handleMessage.bind(this));\n }\n }\n addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n addLoadListener(cb) {\n this.loadListener = cb;\n }\n attachIframe(iframeEl, childSn) {\n var _a2, _b;\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n });\n if (this.recordCrossOriginIframes)\n (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener(\n \"message\",\n this.handleMessage.bind(this)\n );\n (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl);\n if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n this.stylesheetManager.adoptStyleSheets(\n iframeEl.contentDocument.adoptedStyleSheets,\n this.mirror.getId(iframeEl.contentDocument)\n );\n }\n handleMessage(message) {\n const crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== \"rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n const transformedEvent = this.transformCrossOriginEvent(\n iframeEl,\n crossOriginMessageEvent.data.event\n );\n if (transformedEvent)\n this.wrappedEmit(\n transformedEvent,\n crossOriginMessageEvent.data.isCheckout\n );\n }\n transformCrossOriginEvent(iframeEl, e2) {\n var _a2;\n switch (e2.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e2.data.node, iframeEl);\n const rootId = e2.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e2.data.node, rootId);\n return {\n timestamp: e2.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e2.data.node\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n }\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e2;\n }\n case EventType.Custom: {\n this.replaceIds(\n e2.data.payload,\n iframeEl,\n [\"id\", \"parentId\", \"previousId\", \"nextId\"]\n );\n return e2;\n }\n case EventType.IncrementalSnapshot: {\n switch (e2.data.source) {\n case IncrementalSource.Mutation: {\n e2.data.adds.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\n \"parentId\",\n \"nextId\",\n \"previousId\"\n ]);\n this.replaceIdOnNode(n2.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n2.node, rootId);\n });\n e2.data.removes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"parentId\", \"id\"]);\n });\n e2.data.attributes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n e2.data.texts.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e2.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.ViewportResize: {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n return e2;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleId\"]);\n return e2;\n }\n case IncrementalSource.Font: {\n return e2;\n }\n case IncrementalSource.Selection: {\n e2.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, [\"start\", \"end\"]);\n });\n return e2;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleIds\"]);\n (_a2 = e2.data.styles) == null ? void 0 : _a2.forEach((style) => {\n this.replaceStyleIds(style, iframeEl, [\"styleId\"]);\n });\n return e2;\n }\n }\n }\n }\n return false;\n }\n replace(iframeMirror, obj, iframeEl, keys) {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== \"number\") continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(\n iframeEl,\n obj[key]\n );\n } else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n }\n replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n replaceIdOnNode(node2, iframeEl) {\n this.replaceIds(node2, iframeEl, [\"id\", \"rootId\"]);\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n patchRootIdOnNode(node2, rootId) {\n if (node2.type !== NodeType.Document && !node2.rootId) node2.rootId = rootId;\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\nclass ShadowDomManager {\n constructor(options) {\n __publicField(this, \"shadowDoms\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"scrollCb\");\n __publicField(this, \"bypassOptions\");\n __publicField(this, \"mirror\");\n __publicField(this, \"restoreHandlers\", []);\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n }\n addShadowRoot(shadowRoot2, doc) {\n if (!isNativeShadowDom(shadowRoot2)) return;\n if (this.shadowDoms.has(shadowRoot2)) return;\n this.shadowDoms.add(shadowRoot2);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this\n },\n shadowRoot2\n );\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(\n initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot2,\n mirror: this.mirror\n })\n );\n setTimeout(() => {\n if (shadowRoot2.adoptedStyleSheets && shadowRoot2.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot2.adoptedStyleSheets,\n this.mirror.getId(index.host(shadowRoot2))\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager\n },\n shadowRoot2\n )\n );\n }, 0);\n }\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n this.patchAttachShadow(\n iframeElement.contentWindow.Element,\n iframeElement.contentDocument\n );\n }\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n patchAttachShadow(element, doc) {\n const manager = this;\n this.restoreHandlers.push(\n patch(\n element.prototype,\n \"attachShadow\",\n function(original) {\n return function(option) {\n const sRoot = original.call(this, option);\n const shadowRootEl = index.shadowRoot(this);\n if (shadowRootEl && inDom(this))\n manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\n };\n }\n )\n );\n }\n reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n } catch (e2) {\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = /* @__PURE__ */ new WeakSet();\n }\n}\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor (var i$1 = 0; i$1 < chars.length; i$1++) {\n lookup[chars.charCodeAt(i$1)] = i$1;\n}\nvar encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n for (i2 = 0; i2 < len; i2 += 3) {\n base64 += chars[bytes[i2] >> 2];\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n base64 += chars[bytes[i2 + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n};\nconst canvasVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor$1(ctx, ctor) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nconst saveWebGLVar = (value, win, ctx) => {\n if (!value || !(isInstanceOfWebGLObject(value, win) || typeof value === \"object\"))\n return;\n const name = value.constructor.name;\n const list2 = variableListFor$1(ctx, name);\n let index2 = list2.indexOf(value);\n if (index2 === -1) {\n index2 = list2.length;\n list2.push(value);\n }\n return index2;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx));\n } else if (value === null) {\n return value;\n } else if (value instanceof Float32Array || value instanceof Float64Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Uint8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Int8Array || value instanceof Uint8ClampedArray) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)]\n };\n } else if (\n // SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n value instanceof ArrayBuffer\n ) {\n const name = value.constructor.name;\n const base64 = encode(value);\n return {\n rr_type: name,\n base64\n };\n } else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength\n ]\n };\n } else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof HTMLCanvasElement) {\n const name = \"HTMLImageElement\";\n const src = value.toDataURL();\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [serializeArg(value.data, win, ctx), value.width, value.height]\n };\n } else if (isInstanceOfWebGLObject(value, win) || typeof value === \"object\") {\n const name = value.constructor.name;\n const index2 = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name,\n index: index2\n };\n }\n return value;\n}\nconst serializeArgs = (args, win, ctx) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\nconst isInstanceOfWebGLObject = (value, win) => {\n const webGLConstructorNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\",\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n \"WebGLVertexArrayObjectOES\"\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter(\n (name) => typeof win[name] === \"function\"\n );\n return Boolean(\n supportedWebGLConstructorNames.find(\n (name) => value instanceof win[name]\n )\n );\n};\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n const props2D = Object.getOwnPropertyNames(\n win.CanvasRenderingContext2D.prototype\n );\n for (const prop of props2D) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n win.CanvasRenderingContext2D.prototype,\n prop,\n function(original) {\n return function(...args) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n setTimeout(() => {\n const recordArgs = serializeArgs(args, win, this);\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: recordArgs\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(\n win.CanvasRenderingContext2D.prototype,\n prop,\n {\n set(v2) {\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: [v2],\n setter: true\n });\n }\n }\n );\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction getNormalizedContextName(contextType) {\n return contextType === \"experimental-webgl\" ? \"webgl\" : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\n const handlers = [];\n try {\n const restoreHandler = patch(\n win.HTMLCanvasElement.prototype,\n \"getContext\",\n function(original) {\n return function(contextType, ...args) {\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!(\"__context\" in this)) this.__context = ctxName;\n if (setPreserveDrawingBufferToTrue && [\"webgl\", \"webgl2\"].includes(ctxName)) {\n if (args[0] && typeof args[0] === \"object\") {\n const contextAttributes = args[0];\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n console.error(\"failed to patch HTMLCanvasElement.prototype.getContext\");\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, win) {\n const handlers = [];\n const props = Object.getOwnPropertyNames(prototype);\n for (const prop of props) {\n if (\n //prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n [\n \"isContextLost\",\n \"canvas\",\n \"drawingBufferWidth\",\n \"drawingBufferHeight\"\n ].includes(prop)\n ) {\n continue;\n }\n try {\n if (typeof prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n prototype,\n prop,\n function(original) {\n return function(...args) {\n const result2 = original.apply(this, args);\n saveWebGLVar(result2, win, this);\n if (\"tagName\" in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, true)) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation = {\n type,\n property: prop,\n args: recordArgs\n };\n cb(this.canvas, mutation);\n }\n return result2;\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(prototype, prop, {\n set(v2) {\n cb(this.canvas, {\n type,\n property: prop,\n args: [v2],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n handlers.push(\n ...patchGLPrototype(\n win.WebGLRenderingContext.prototype,\n CanvasContext.WebGL,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n if (typeof win.WebGL2RenderingContext !== \"undefined\") {\n handlers.push(\n ...patchGLPrototype(\n win.WebGL2RenderingContext.prototype,\n CanvasContext.WebGL2,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nconst encodedJs = \"KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo=\";\nconst decodeBase64 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));\nconst blob = typeof window !== \"undefined\" && window.Blob && new Blob([decodeBase64(encodedJs)], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper(options) {\n let objURL;\n try {\n objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);\n if (!objURL) throw \"\";\n const worker = new Worker(objURL, {\n name: options == null ? void 0 : options.name\n });\n worker.addEventListener(\"error\", () => {\n (window.URL || window.webkitURL).revokeObjectURL(objURL);\n });\n return worker;\n } catch (e2) {\n return new Worker(\n \"data:text/javascript;base64,\" + encodedJs,\n {\n name: options == null ? void 0 : options.name\n }\n );\n } finally {\n objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);\n }\n}\nclass CanvasManager {\n constructor(options) {\n __publicField(this, \"pendingCanvasMutations\", /* @__PURE__ */ new Map());\n __publicField(this, \"rafStamps\", { latestId: 0, invokeId: null });\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"resetObservers\");\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"processMutation\", (target, mutation) => {\n const newFrame = this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n });\n const {\n sampling = \"all\",\n win,\n blockClass,\n blockSelector,\n recordCanvas,\n dataURLOptions\n } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n if (recordCanvas && sampling === \"all\")\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\n if (recordCanvas && typeof sampling === \"number\")\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n dataURLOptions\n });\n }\n reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n }\n freeze() {\n this.frozen = true;\n }\n unfreeze() {\n this.frozen = false;\n }\n lock() {\n this.locked = true;\n }\n unlock() {\n this.locked = false;\n }\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n true\n );\n const snapshotInProgressMap = /* @__PURE__ */ new Map();\n const worker = new WorkerWrapper();\n worker.onmessage = (e2) => {\n const { id } = e2.data;\n snapshotInProgressMap.set(id, false);\n if (!(\"base64\" in e2.data)) return;\n const { base64, type, width, height } = e2.data;\n this.mutationCb({\n id,\n type: CanvasContext[\"2D\"],\n commands: [\n {\n property: \"clearRect\",\n // wipe canvas\n args: [0, 0, width, height]\n },\n {\n property: \"drawImage\",\n // draws (semi-transparent) image\n args: [\n {\n rr_type: \"ImageBitmap\",\n args: [\n {\n rr_type: \"Blob\",\n data: [{ rr_type: \"ArrayBuffer\", base64 }],\n type\n }\n ]\n },\n 0,\n 0\n ]\n }\n ]\n });\n };\n const timeBetweenSnapshots = 1e3 / fps;\n let lastSnapshotTime = 0;\n let rafId;\n const getCanvas = () => {\n const matchedCanvas = [];\n win.document.querySelectorAll(\"canvas\").forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n return matchedCanvas;\n };\n const takeCanvasSnapshots = (timestamp) => {\n if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n getCanvas().forEach(async (canvas) => {\n var _a2;\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return;\n if (canvas.width === 0 || canvas.height === 0) return;\n snapshotInProgressMap.set(id, true);\n if ([\"webgl\", \"webgl2\"].includes(canvas.__context)) {\n const context = canvas.getContext(canvas.__context);\n if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n const bitmap = await createImageBitmap(canvas);\n worker.postMessage(\n {\n id,\n bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions: options.dataURLOptions\n },\n [bitmap]\n );\n });\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n };\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n initCanvasMutationObserver(win, blockClass, blockSelector) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n false\n );\n const canvas2DReset = initCanvas2DMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n startPendingCanvasMutationFlusher() {\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp) => {\n this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n }\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (_values, canvas) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n }\n );\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n const values = valuesWithType.map((value) => {\n const { type: type2, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n this.mutationCb({ id, type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n }\n}\nclass StylesheetManager {\n constructor(options) {\n __publicField(this, \"trackedLinkElements\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"adoptedStyleSheetCb\");\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n attachLinkElement(linkEl, childSn) {\n if (\"_cssText\" in childSn.attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn.attributes\n }\n ]\n });\n this.trackLinkElement(linkEl);\n }\n trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl)) return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n adoptStyleSheets(sheets, hostId) {\n if (sheets.length === 0) return;\n const adoptedStyleSheetData = {\n id: hostId,\n styleIds: []\n };\n const styles = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n styles.push({\n styleId,\n rules: Array.from(sheet.rules || CSSRule, (r2, index2) => ({\n rule: stringifyRule(r2, sheet.href),\n index: index2\n }))\n });\n } else styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n }\n // TODO: take snapshot on stylesheet reload by applying event listener\n trackStylesheetInLinkElement(_linkEl) {\n }\n}\nclass ProcessedNodeManager {\n constructor() {\n __publicField(this, \"nodeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"active\", false);\n }\n inOtherBuffer(node2, thisBuffer) {\n const buffers = this.nodeMap.get(node2);\n return buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer);\n }\n add(node2, buffer) {\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(() => {\n this.nodeMap = /* @__PURE__ */ new WeakMap();\n this.active = false;\n });\n }\n this.nodeMap.set(node2, (this.nodeMap.get(node2) || /* @__PURE__ */ new Set()).add(buffer));\n }\n destroy() {\n }\n}\nlet wrappedEmit;\nlet takeFullSnapshot$1;\nlet canvasManager;\nlet recording = false;\ntry {\n if (Array.from([1], (x2) => x2 * 2)[0] !== 2) {\n const cleanFrame = document.createElement(\"iframe\");\n document.body.appendChild(cleanFrame);\n Array.from = ((_a = cleanFrame.contentWindow) == null ? void 0 : _a.Array.from) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug(\"Unable to override Array.from\", err);\n}\nconst mirror = createMirror$2();\nfunction record(options = {}) {\n const {\n emit,\n checkoutEveryNms,\n checkoutEveryNth,\n blockClass = \"rr-block\",\n blockSelector = null,\n ignoreClass = \"rr-ignore\",\n ignoreSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n maskAllInputs,\n maskInputOptions: _maskInputOptions,\n slimDOMOptions: _slimDOMOptions,\n maskInputFn,\n maskTextFn,\n hooks,\n packFn,\n sampling = {},\n dataURLOptions = {},\n mousemoveWait,\n recordDOM = true,\n recordCanvas = false,\n recordCrossOriginIframes = false,\n recordAfter = options.recordAfter === \"DOMContentLoaded\" ? options.recordAfter : \"load\",\n userTriggeredOnInput = false,\n collectFonts = false,\n inlineImages = false,\n plugins,\n keepIframeSrcFn = () => false,\n ignoreCSSAttributes = /* @__PURE__ */ new Set([]),\n errorHandler: errorHandler2\n } = options;\n registerErrorHandler(errorHandler2);\n const inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n } catch (e2) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error(\"emit function is required\");\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n };\n }\n if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : _maskInputOptions !== void 0 ? _maskInputOptions : { password: true };\n const slimDOMOptions = slimDOMDefaults(_slimDOMOptions);\n polyfill$1();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e2) => {\n for (const plugin3 of plugins || []) {\n if (plugin3.eventProcessor) {\n e2 = plugin3.eventProcessor(e2);\n }\n }\n if (packFn && // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent) {\n e2 = packFn(e2);\n }\n return e2;\n };\n wrappedEmit = (r2, isCheckout) => {\n var _a2;\n const e2 = r2;\n e2.timestamp = nowTimestamp();\n if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);\n } else if (passEmitsToParent) {\n const message = {\n type: \"rrweb\",\n event: eventProcessor(e2),\n origin: window.location.origin,\n isCheckout\n };\n window.parent.postMessage(message, \"*\");\n }\n if (e2.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e2;\n incrementalSnapshotCount = 0;\n } else if (e2.type === EventType.IncrementalSnapshot) {\n if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot$1(true);\n }\n }\n };\n const wrappedMutationEmit = (m) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m\n }\n });\n };\n const wrappedScrollEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p\n }\n });\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p\n }\n });\n const wrappedAdoptedStyleSheetEmit = (a2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a2\n }\n });\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit\n });\n const iframeManager = new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit\n });\n for (const plugin3 of plugins || []) {\n if (plugin3.getMirror)\n plugin3.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror\n });\n }\n const processedNodeManager = new ProcessedNodeManager();\n canvasManager = new CanvasManager({\n recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass,\n blockSelector,\n mirror,\n sampling: sampling.canvas,\n dataURLOptions\n });\n const shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskTextFn,\n maskInputFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager\n },\n mirror\n });\n takeFullSnapshot$1 = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit(\n {\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight()\n }\n },\n isCheckout\n );\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach((buf) => buf.lock());\n const node2 = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n2) => {\n if (isSerializedIframe(n2, mirror)) {\n iframeManager.addIframe(n2);\n }\n if (isSerializedStylesheet(n2, mirror)) {\n stylesheetManager.trackLinkElement(n2);\n }\n if (hasShadowRoot(n2)) {\n shadowDomManager.addShadowRoot(index.shadowRoot(n2), document);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn\n });\n if (!node2) {\n return console.warn(\"Failed to snapshot the document\");\n }\n wrappedEmit(\n {\n type: EventType.FullSnapshot,\n data: {\n node: node2,\n initialOffset: getWindowScroll(window)\n }\n },\n isCheckout\n );\n mutationBuffers.forEach((buf) => buf.unlock());\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(\n document.adoptedStyleSheets,\n mirror.getId(document)\n );\n };\n try {\n const handlers = [];\n const observe = (doc) => {\n var _a2;\n return callbackWrapper(initObservers)(\n {\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions\n }\n }),\n mouseInteractionCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d\n }\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d\n }\n }),\n inputCb: (v2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v2\n }\n }),\n mediaInteractionCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p\n }\n }),\n styleSheetRuleCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r2\n }\n }),\n styleDeclarationCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r2\n }\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p\n }\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p\n }\n });\n },\n customElementCb: (c2) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c2\n }\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskTextClass,\n maskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskInputFn,\n maskTextFn,\n keepIframeSrcFn,\n blockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins: ((_a2 = plugins == null ? void 0 : plugins.filter((p) => p.observer)) == null ? void 0 : _a2.map((p) => ({\n observer: p.observer,\n options: p.options,\n callback: (payload) => wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload\n }\n })\n }))) || []\n },\n hooks\n );\n };\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n } catch (error) {\n console.warn(error);\n }\n });\n const init = () => {\n takeFullSnapshot$1();\n handlers.push(observe(document));\n recording = true;\n };\n if ([\"interactive\", \"complete\"].includes(document.readyState)) {\n init();\n } else {\n handlers.push(\n on(\"DOMContentLoaded\", () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {}\n });\n if (recordAfter === \"DOMContentLoaded\") init();\n })\n );\n handlers.push(\n on(\n \"load\",\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {}\n });\n if (recordAfter === \"load\") init();\n },\n window\n )\n );\n }\n return () => {\n handlers.forEach((handler) => {\n try {\n handler();\n } catch (error) {\n const msg = String(error).toLowerCase();\n if (!msg.includes(\"cross-origin\")) {\n console.warn(error);\n }\n }\n });\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = (tag, payload) => {\n if (!recording) {\n throw new Error(\"please add custom event after start recording\");\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag,\n payload\n }\n });\n};\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\nrecord.takeFullSnapshot = (isCheckout) => {\n if (!recording) {\n throw new Error(\"please take full snapshot after start recording\");\n }\n takeFullSnapshot$1(isCheckout);\n};\nrecord.mirror = mirror;\nvar n$1;\n!function(t2) {\n t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n}(n$1 || (n$1 = {}));\n\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nfunction rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n\nconst _state = {};\nfunction v1(options, buf, offset) {\n let bytes;\n {\n const now = Date.now();\n const rnds = rng();\n updateV1State(_state, now, rnds);\n bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, _state.clockseq, _state.node, buf, offset);\n }\n return buf ?? unsafeStringify(bytes);\n}\nfunction updateV1State(state, now, rnds) {\n state.msecs ??= -Infinity;\n state.nsecs ??= 0;\n if (now === state.msecs) {\n state.nsecs++;\n if (state.nsecs >= 10000) {\n state.node = undefined;\n state.nsecs = 0;\n }\n }\n else if (now > state.msecs) {\n state.nsecs = 0;\n }\n else if (now < state.msecs) {\n state.node = undefined;\n }\n if (!state.node) {\n state.node = rnds.slice(10, 16);\n state.node[0] |= 0x01;\n state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n }\n state.msecs = now;\n return state;\n}\nfunction v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) {\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n if (!buf) {\n buf = new Uint8Array(16);\n offset = 0;\n }\n else {\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n }\n msecs ??= Date.now();\n nsecs ??= 0;\n clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n node ??= rnds.slice(10, 16);\n msecs += 12219292800000;\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n buf[offset++] = (tl >>> 24) & 0xff;\n buf[offset++] = (tl >>> 16) & 0xff;\n buf[offset++] = (tl >>> 8) & 0xff;\n buf[offset++] = tl & 0xff;\n const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff;\n buf[offset++] = (tmh >>> 8) & 0xff;\n buf[offset++] = tmh & 0xff;\n buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10;\n buf[offset++] = (tmh >>> 16) & 0xff;\n buf[offset++] = (clockseq >>> 8) | 0x80;\n buf[offset++] = clockseq & 0xff;\n for (let n = 0; n < 6; ++n) {\n buf[offset++] = node[n];\n }\n return buf;\n}\n\nvar s;!function(e){e[e.NONE=0]=\"NONE\",e[e.ERROR=1]=\"ERROR\",e[e.WARN=2]=\"WARN\",e[e.INFO=3]=\"INFO\",e[e.DEBUG=4]=\"DEBUG\";}(s||(s={}));const i=new class{constructor(e){this.config={level:s.ERROR,enableConsole:true,enableStorage:false},this.isBrowser=\"undefined\"!=typeof window,e&&(this.config={...this.config,...e});}setConfig(e){this.config={...this.config,...e};}shouldLog(e){return e<=this.config.level}formatMessage(e,t,...s){return `[HumanBehavior ${e}] ${(new Date).toISOString()}: ${t}`}error(e,...t){if(!this.shouldLog(s.ERROR))return;const i=this.formatMessage(\"ERROR\",e);this.config.enableConsole&&console.error(i,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(i,t);}warn(e,...t){if(!this.shouldLog(s.WARN))return;const i=this.formatMessage(\"WARN\",e);this.config.enableConsole&&console.warn(i,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(i,t);}info(e,...t){if(!this.shouldLog(s.INFO))return;const i=this.formatMessage(\"INFO\",e);this.config.enableConsole&&console.log(i,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(i,t);}debug(e,...t){if(!this.shouldLog(s.DEBUG))return;const i=this.formatMessage(\"DEBUG\",e);this.config.enableConsole&&console.log(i,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(i,t);}logToStorage(e,t){try{const s=JSON.parse(localStorage.getItem(\"human_behavior_logs\")||\"[]\"),i={message:e,args:t.length>0?t:void 0,timestamp:Date.now()};s.push(i),s.length>1e3&&s.splice(0,s.length-1e3),localStorage.setItem(\"human_behavior_logs\",JSON.stringify(s));}catch(e){}}getLogs(){if(!this.isBrowser)return [];try{return JSON.parse(localStorage.getItem(\"human_behavior_logs\")||\"[]\")}catch(e){return []}}clearLogs(){this.isBrowser&&localStorage.removeItem(\"human_behavior_logs\");}};let n=false;const r=()=>n,o=(e,...t)=>{n=true;try{i.error(e,...t);}finally{n=false;}},a=(e,...t)=>{n=true;try{i.warn(e,...t);}finally{n=false;}},d=(e,...t)=>{n=true;try{i.info(e,...t);}finally{n=false;}},c=(e,...t)=>{n=true;try{i.debug(e,...t);}finally{n=false;}};class l{constructor(e){this._isPolling=false,this._pollIntervalMs=3e3,this._queue=[],this._queue=[],this._areWeOnline=true,this._sendRequest=e,\"undefined\"!=typeof window&&\"onLine\"in window.navigator&&(this._areWeOnline=window.navigator.onLine,window.addEventListener(\"online\",()=>{this._areWeOnline=true,this._flush();}),window.addEventListener(\"offline\",()=>{this._areWeOnline=false;}));}get length(){return this._queue.length}async retriableRequest(e){const t=e.retriesPerformedSoFar||0;if(t>0){const s=new URL(e.url);s.searchParams.set(\"retry_count\",t.toString()),e.url=s.toString();}try{await this._sendRequest(e);}catch(s){if(this._shouldRetry(s,t)&&t<10)return void this._enqueue(e);e.callback&&e.callback({statusCode:s.status||0,text:s.message||\"Request failed\"});}}_shouldRetry(e,t){return e.status>=400&&e.status<500?408===e.status||429===e.status:e.status>=500||!e.status}_enqueue(e){const t=e.retriesPerformedSoFar||0;e.retriesPerformedSoFar=t+1;const s=function(e){const t=3e3*2**e,s=t/2,i=Math.min(18e5,t),n=(Math.random()-.5)*(i-s);return Math.ceil(i+n)}(t),i=Date.now()+s;this._queue.push({retryAt:i,requestOptions:e});let n=`Enqueued failed request for retry in ${Math.round(s/1e3)}s`;\"undefined\"==typeof navigator||navigator.onLine||(n+=\" (Browser is offline)\"),a(n),this._isPolling||(this._isPolling=true,this._poll());}_poll(){this._poller&&clearTimeout(this._poller),this._poller=setTimeout(()=>{this._areWeOnline&&this._queue.length>0&&this._flush(),this._poll();},this._pollIntervalMs);}_flush(){const e=Date.now(),t=[],s=this._queue.filter(s=>s.retryAt<e||(t.push(s),false));if(this._queue=t,s.length>0)for(const{requestOptions:e}of s)this.retriableRequest(e).catch(e=>{o(\"Failed to retry request:\",e);});}unload(){this._poller&&(clearTimeout(this._poller),this._poller=void 0);for(const{requestOptions:e}of this._queue)try{this._sendBeaconRequest(e);}catch(e){o(\"Failed to send request via sendBeacon on unload:\",e);}this._queue=[];}_sendBeaconRequest(e){if(\"undefined\"!=typeof navigator&&navigator.sendBeacon)try{const t=new URL(e.url);t.searchParams.set(\"beacon\",\"1\");let s=null;e.body&&(\"string\"==typeof e.body?s=new Blob([e.body],{type:\"application/json\"}):e.body instanceof Blob&&(s=e.body));navigator.sendBeacon(t.toString(),s)||a(\"sendBeacon returned false for unload request\");}catch(e){o(\"Error sending beacon request:\",e);}}}class h{constructor(e,t=1e3){this.storageKey=\"human_behavior_queue\",this.maxQueueSize=t;}getQueue(){if(\"undefined\"==typeof window||!window.localStorage)return [];try{const e=window.localStorage.getItem(this.storageKey);if(!e)return [];const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch(e){return a(\"Failed to read persisted queue:\",e),[]}}setQueue(e){if(\"undefined\"!=typeof window&&window.localStorage)try{const t=e.slice(-this.maxQueueSize);window.localStorage.setItem(this.storageKey,JSON.stringify(t)),c(`Persisted ${t.length} events to storage`);}catch(t){if(\"QuotaExceededError\"===t.name||22===t.code){a(\"Storage quota exceeded, clearing old events\");try{const t=e.slice(-Math.floor(this.maxQueueSize/2));window.localStorage.setItem(this.storageKey,JSON.stringify(t));}catch(e){a(\"Failed to save smaller queue, clearing storage\"),this.clearQueue();}}else a(\"Failed to persist queue:\",t);}}addToQueue(e){const t=this.getQueue();t.push(e),t.length>this.maxQueueSize&&(t.shift(),c(\"Queue is full, the oldest event is dropped.\")),this.setQueue(t);}removeFromQueue(e){const t=this.getQueue();t.splice(0,e),this.setQueue(t);}clearQueue(){if(\"undefined\"!=typeof window&&window.localStorage)try{window.localStorage.removeItem(this.storageKey);}catch(e){a(\"Failed to clear persisted queue:\",e);}}getQueueLength(){return this.getQueue().length}}const u=\"0.7.0\",m=1048576,p=52428.8;function g(e,t,s){return (new TextEncoder).encode(w({sessionId:s,events:[...e,t]})).length>m}function w(e){return JSON.stringify(e,(e,t)=>\"bigint\"==typeof t?t.toString():t)}function f(e,t){if(!e||\"object\"!=typeof e)return [];if((new TextEncoder).encode(w({sessionId:t,events:[e]})).length<=m)return [e];const s={...e},i=[\"screenshot\",\"html\",\"dom\",\"fullText\",\"innerHTML\",\"outerHTML\"];i.forEach(e=>{s[e]&&delete s[e];});if((new TextEncoder).encode(w({sessionId:t,events:[s]})).length<=m)return [s];return [{type:e.type,timestamp:e.timestamp,url:e.url,pathname:e.pathname,...Object.fromEntries(Object.entries(e).filter(([e,t])=>!i.includes(e)&&\"object\"!=typeof t&&\"string\"!=typeof t||\"string\"==typeof t&&t.length<1e3))}]}class y{constructor({apiKey:e,ingestionUrl:t}){this.monthlyLimitReached=false,this.sessionId=\"\",this.endUserId=null,this.cspBlocked=false,this.requestTimeout=1e4,this.currentBatchSize=100,this.apiKey=e,this.baseUrl=t,this.persistence=new h(e),this.retryQueue=new l(e=>this._sendRequestInternal(e)),this._loadPersistedEvents();}setTrackingContext(e,t){this.sessionId=e,this.endUserId=t;}async _loadPersistedEvents(){const e=this.persistence.getQueue();if(0!==e.length){c(`Loading ${e.length} persisted events from storage`);for(const t of e)try{await this.sendEventsChunked(t.events,t.sessionId,t.endUserId||void 0,t.windowId,t.automaticProperties),this.persistence.removeFromQueue(1);}catch(e){a(\"Failed to send persisted event, will retry later:\",e);}}}async _sendRequestInternal(e){const t=\"undefined\"!=typeof AbortController?new AbortController:null;let s=null;t&&(s=setTimeout(()=>{t.abort();},this.requestTimeout));try{const i=e.estimatedSize||0,n=\"POST\"===e.method&&i<p,r=await fetch(e.url,{method:e.method||\"GET\",headers:e.headers||{},body:e.body,signal:t?.signal,keepalive:n});s&&clearTimeout(s);const o=await r.text();let a=null;try{a=JSON.parse(o);}catch{}if(e.callback&&e.callback({statusCode:r.status,text:o,json:a}),!r.ok)throw {status:r.status,message:o}}catch(e){if(s&&clearTimeout(s),\"AbortError\"===e.name)throw {status:0,message:\"Request timeout\"};throw e}}unload(){this.retryQueue.unload();}checkMonthlyLimit(){return !this.monthlyLimitReached}async init(e,t){if(!this.checkMonthlyLimit())return {sessionId:e,endUserId:t};let s=null,i=null;\"undefined\"!=typeof window&&(s=window.location.href,i=document.referrer),d(\"API init called with:\",{sessionId:e,userId:t,entryURL:s,referrer:i,baseUrl:this.baseUrl});try{const n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/init`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`,Referer:i||\"\"},body:w({sessionId:e,endUserId:t,entryURL:s,referrer:i,sdkVersion:u})});if(d(\"API init response status:\",n.status),!n.ok){if(429===n.status)return this.monthlyLimitReached=!0,{sessionId:e,endUserId:t};const s=await n.text();throw o(\"API init failed:\",n.status,s),new Error(`Failed to initialize ingestion: ${n.statusText} - ${s}`)}const r=await n.json();return !0===r.monthlyLimitReached&&(this.monthlyLimitReached=!0,d(\"Monthly limit reached detected from server response\")),d(\"API init success:\",r),{sessionId:r.sessionId,endUserId:r.endUserId}}catch(e){throw o(\"API init error:\",e),e}}async sendEvents(e,t,s){const i=e.filter(e=>e&&\"object\"==typeof e),n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/events`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({sessionId:t,events:i,endUserId:s,sdkVersion:u})});if(!n.ok){if(429===n.status)throw this.monthlyLimitReached=true,new Error(\"429: Monthly video processing limit reached\");throw new Error(`Failed to send events: ${n.statusText}`)} true===(await n.json()).monthlyLimitReached&&(this.monthlyLimitReached=true,d(\"Monthly limit reached detected from events response\"));}async sendEventsChunked(e,t,s,i,n){if(!this.checkMonthlyLimit())return [];try{const r=[];let o=[];for(const a of e)if(a&&\"object\"==typeof a)if(g(o,a,t)){if(o.length>0){c(`[SDK] Sending chunk with ${o.length} events`);const e=await this.trackedFetch(`${this.baseUrl}/api/ingestion/events`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({sessionId:t,events:o,endUserId:s,windowId:i,automaticProperties:n,sdkVersion:u})});if(!e.ok){if(429===e.status)return this.monthlyLimitReached=!0,r.flat();throw new Error(`Failed to send events: ${e.statusText}`)}const a=await e.json();!0===a.monthlyLimitReached&&(this.monthlyLimitReached=!0,d(\"Monthly limit reached detected from chunked events response\")),r.push(a),o=[];}o=f(a,t);}else o.push(a);if(o.length>0){const e=await this._sendChunkWithRetry(o,t,s,i,n||o[0]?.automaticProperties);e&&r.push(e);}return r.flat()}catch(r){throw o(\"Error sending events:\",r),this._persistEvents(e,t,s,i,n),r}}async _sendChunkWithRetry(e,t,s,i,n){let r=Math.min(this.currentBatchSize,e.length),o=0;for(;o<e.length;){const c=w({sessionId:t,events:e.slice(o,o+r),endUserId:s,windowId:i,automaticProperties:n,sdkVersion:u}),l=(new TextEncoder).encode(c).length;try{const h=await this.trackedFetch(`${this.baseUrl}/api/ingestion/events`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:c},l);if(!h.ok){if(429===h.status)return this.monthlyLimitReached=!0,this._persistEvents(e.slice(o),t,s,i,n),null;if(413===h.status){a(`413 error: reducing batch size from ${r} to ${Math.max(1,Math.floor(r/2))}`),this.currentBatchSize=Math.max(1,Math.floor(r/2)),r=this.currentBatchSize;continue}return await this.retryQueue.retriableRequest({url:`${this.baseUrl}/api/ingestion/events`,method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:c,estimatedSize:l,callback:e=>{200===e.statusCode&&e.json&&!0===e.json.monthlyLimitReached&&(this.monthlyLimitReached=!0);}}),this._persistEvents(e.slice(o),t,s,i,n),null}const u=await h.json();if(!0===u.monthlyLimitReached&&(this.monthlyLimitReached=!0,d(\"Monthly limit reached detected from chunked events response\")),o+=r,o>=e.length)return u}catch(r){return a(\"Network error sending chunk, adding to retry queue:\",r),await this.retryQueue.retriableRequest({url:`${this.baseUrl}/api/ingestion/events`,method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:c,estimatedSize:l,callback:e=>{200===e.statusCode&&e.json&&true===e.json.monthlyLimitReached&&(this.monthlyLimitReached=true);}}),this._persistEvents(e.slice(o),t,s,i,n),null}}return null}_persistEvents(e,t,s,i,n){0!==e.length&&this.persistence.addToQueue({sessionId:t,events:e,endUserId:s,windowId:i,automaticProperties:n,timestamp:Date.now()});}async sendUserData(e,t,s){try{const i={userId:e,userAttributes:t,sessionId:s,posthogName:t.email||t.name||null};c(\"Sending user data to server:\",i);const n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/user`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w(i)});if(!n.ok)throw new Error(`Failed to send user data: ${n.statusText} with API key: ${this.apiKey}`);const r=await n.json();return c(\"Server response:\",r),r}catch(e){throw o(\"Error sending user data:\",e),e}}async sendUserAuth(e,t,s,i){try{const n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/user/auth`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({userId:e,userAttributes:t,sessionId:s,authFields:i})});if(!n.ok)throw new Error(`Failed to authenticate user: ${n.statusText} with API key: ${this.apiKey}`);return await n.json()}catch(e){throw o(\"Error authenticating user:\",e),e}}sendSessionEndBeacon(e,t){if(\"undefined\"==typeof navigator||\"function\"!=typeof navigator.sendBeacon)return false;try{const s={sessionId:e,endUserId:t||null,apiKey:this.apiKey},i=new Blob([w(s)],{type:\"application/json\"});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/session-end`,i)}catch{return false}}sendHeartbeatBeacon(e,t){if(\"undefined\"==typeof navigator||\"function\"!=typeof navigator.sendBeacon)return false;try{const s={sessionId:e,endUserId:t||null,apiKey:this.apiKey},i=new Blob([w(s)],{type:\"application/json\"});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/heartbeat`,i)}catch{return false}}sendBeaconEvents(e,t,s,i,n,r){const o={sessionId:t,events:e,endUserId:s||null,windowId:i,automaticProperties:n,sdkVersion:u,apiKey:this.apiKey},a=new Blob([w(o)],{type:\"application/json\"});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/events`,a)}async sendCustomEvent(e,t,s,i){d(\"[SDK] Sending custom event\",{sessionId:e,eventName:t,eventProperties:s,endUserId:i});try{const n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/customEvent`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({sessionId:e,eventName:t,eventProperties:s||{},endUserId:i||null})});if(d(\"[SDK] Custom event response\",{status:n.status,statusText:n.statusText}),!n.ok){const e=await n.text();throw o(\"[SDK] Failed to send custom event\",{status:n.status,statusText:n.statusText,errorText:e}),new Error(`Failed to send custom event: ${n.status} ${n.statusText} - ${e}`)}const r=await n.json();return c(\"[SDK] Custom event success\",r),r}catch(i){throw o(\"[SDK] Error sending custom event\",i,{sessionId:e,eventName:t,eventProperties:s}),i}}async sendCustomEventBatch(e,t,s){try{const i=await this.trackedFetch(`${this.baseUrl}/api/ingestion/customEvent/batch`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({sessionId:e,events:t,endUserId:s||null})});if(!i.ok)throw new Error(`Failed to send custom event batch: ${i.statusText}`);return await i.json()}catch(e){throw o(\"Error sending custom event batch:\",e),e}}sendCustomEventBatchBeacon(e,t,s){if(\"undefined\"==typeof navigator||\"function\"!=typeof navigator.sendBeacon)return false;try{const i={sessionId:e,events:t,endUserId:s||null,apiKey:this.apiKey},n=new Blob([w(i)],{type:\"application/json\"});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/customEvent/batch`,n)}catch{return false}}async sendLog(e){try{if(c(\"[SDK] Sending log to server:\",{level:e.level,message:e.message.substring(0,50),sessionId:e.sessionId}),!this.baseUrl)return;if(!e.sessionId)return;const t=await fetch(`${this.baseUrl}/api/ingestion/logs`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w(e)});t.ok?c(\"[SDK] Log sent successfully\"):a(\"[SDK] Failed to send log to server:\",t.status,t.statusText);}catch(e){a(\"[SDK] Failed to send log to server:\",e);}}async sendNetworkError(e){try{if(c(\"[SDK] Sending network error to server:\",{errorType:e.errorType,url:e.url.substring(0,50),sessionId:e.sessionId}),!this.baseUrl)return;if(!e.sessionId)return;const t=await fetch(`${this.baseUrl}/api/ingestion/network`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w(e)});t.ok?c(\"[SDK] Network error sent successfully\"):a(\"[SDK] Failed to send network error to server:\",t.status,t.statusText);}catch(e){a(\"[SDK] Failed to send network error to server:\",e);}}async sendIpInfo(e,t){try{if(!this.baseUrl||!e||!t)return;const s=await fetch(`${this.baseUrl}/api/ingestion/ip-info`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({sessionId:e,endUserId:t,ipDetectionMethod:\"server_header\"})});s.ok||a(\"[SDK] Failed to send ip-info:\",s.status,s.statusText);}catch(e){a(\"[SDK] Failed to send ip-info:\",e);}}async trackedFetch(e,s,i){const n=Date.now(),r=v1(),o=this.shouldSkipNetworkTracking(e);if(this.cspBlocked&&\"POST\"===s.method&&\"undefined\"!=typeof navigator&&\"function\"==typeof navigator.sendBeacon)return this.trackedFetchWithBeaconFallback(e,s,o);try{const t=\"undefined\"!=typeof AbortController?new AbortController:null;let a=null;t&&(a=setTimeout(()=>{t.abort();},this.requestTimeout));const d=\"POST\"===s.method&&void 0!==i&&i<p,c=await fetch(e,{...s,signal:t?.signal,keepalive:d});a&&clearTimeout(a);const l=Date.now()-n;return c.ok||o||await this.sendNetworkError({requestId:r,url:e,method:s.method||\"GET\",status:c.status,statusText:c.statusText,duration:l,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyHttpError(c.status),errorMessage:c.statusText,startTimeMs:n,spanName:`${s.method||\"GET\"} ${e}`,spanStatus:\"error\",attributes:{\"http.status_code\":c.status,\"http.status_text\":c.statusText}}).catch(()=>{}),c}catch(t){const i=Date.now()-n;if(\"AbortError\"===t.name){const e=new Error(\"Request timeout\");e.name=\"TimeoutError\",t=e;}if(this.isCSPViolation(t)&&\"POST\"===s.method&&\"undefined\"!=typeof navigator&&\"function\"==typeof navigator.sendBeacon)return this.cspBlocked=true,a(\"[SDK] CSP violation detected, falling back to sendBeacon for future requests\"),this.trackedFetchWithBeaconFallback(e,s,o);throw o||await this.sendNetworkError({requestId:r,url:e,method:s.method||\"GET\",status:null,statusText:null,duration:i,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyNetworkError(t),errorMessage:t.message,errorName:t.name,startTimeMs:n,spanName:`${s.method||\"GET\"} ${e}`,spanStatus:\"error\",attributes:{\"error.name\":t.name,\"error.message\":t.message}}).catch(()=>{}),t}}async trackedFetchWithBeaconFallback(e,t,s){try{let s=null,i=\"\";if(t.body)if(\"string\"==typeof t.body)try{s=JSON.parse(t.body),i=t.body;}catch{i=t.body;}else {if(t.body instanceof Blob){a(\"[SDK] Cannot extract apiKey from Blob body for sendBeacon, using URL param\"),e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;return navigator.sendBeacon(e,t.body)?new Response(null,{status:200,statusText:\"OK\",headers:new Headers}):new Response(null,{status:500,statusText:\"sendBeacon failed\",headers:new Headers})}i=w(t.body),s=t.body;}if(e.includes(\"/api/ingestion/\"))if(s&&\"object\"==typeof s)s.apiKey=this.apiKey,i=w(s);else if(i)try{const e=JSON.parse(i);e.apiKey=this.apiKey,i=w(e);}catch{e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;}else e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;else e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;const n=i?new Blob([i],{type:\"application/json\"}):null;return navigator.sendBeacon(e,n)?(c(\"[SDK] Successfully sent request via sendBeacon (CSP fallback)\"),new Response(null,{status:200,statusText:\"OK\",headers:new Headers})):(a(\"[SDK] sendBeacon returned false - browser may be throttling\"),new Response(null,{status:200,statusText:\"OK (sendBeacon best-effort)\",headers:new Headers}))}catch(e){return o(\"[SDK] sendBeacon fallback failed:\",e),new Response(null,{status:500,statusText:\"Failed to send via sendBeacon\",headers:new Headers})}}isCSPViolation(e){const t=(e?.message||\"\").toLowerCase();return \"typeerror\"===(e?.name||\"\").toLowerCase()&&t.includes(\"failed to fetch\")||t.includes(\"content security policy\")||t.includes(\"csp\")||t.includes(\"violates\")||t.includes(\"refused to connect\")&&t.includes(\"violates\")}shouldSkipNetworkTracking(e){if(!e||!this.baseUrl)return false;try{const t=new URL(e),s=new URL(this.baseUrl);return !(t.origin!==s.origin||!t.pathname.startsWith(\"/api/ingestion/\"))||!!e.includes(this.baseUrl)}catch(t){return e.includes(this.baseUrl)}}classifyHttpError(e){return e>=400&&e<500?\"client_error\":e>=500?\"server_error\":\"unknown_error\"}classifyNetworkError(e){const t=e.message||\"\",s=e.name||\"\";return this.isCSPViolation(e)?\"csp_violation\":t.includes(\"ERR_BLOCKED_BY_CLIENT\")||t.includes(\"ERR_BLOCKED_BY_RESPONSE\")||t.includes(\"blocked:other\")||t.includes(\"net::ERR_BLOCKED_BY_CLIENT\")||t.includes(\"net::ERR_BLOCKED_BY_RESPONSE\")||\"TypeError\"===s&&t.includes(\"Failed to fetch\")&&(t.includes(\"blocked\")||t.includes(\"ERR_BLOCKED\"))?\"blocked_by_client\":t.includes(\"CORS\")||t.includes(\"Access-Control\")?\"cors_error\":t.includes(\"timeout\")||\"TimeoutError\"===s?\"timeout_error\":t.includes(\"Failed to fetch\")||t.includes(\"NetworkError\")?\"network_error\":\"unknown_error\"}}class v{constructor(e){if(this.redactedText=\"[REDACTED]\",this.unredactedFields=new Set,this.redactedFields=new Set,this.redactionMode=\"privacy-first\",this.excludeSelectors=['[data-no-redact=\"true\"]',\".human-behavior-no-redact\"],e?.redactedText&&(this.redactedText=e.redactedText),e?.excludeSelectors&&(this.excludeSelectors=[...this.excludeSelectors,...e.excludeSelectors]),e?.redactionStrategy)if(this.redactionMode=e.redactionStrategy.mode,\"privacy-first\"===this.redactionMode)e.redactionStrategy.unredactFields&&this.setFieldsToUnredact(e.redactionStrategy.unredactFields);else {const t=['input[type=\"password\"]','[data-hb-redact=\"true\"]'],s=e.redactionStrategy.redactFields&&e.redactionStrategy.redactFields.length>0?e.redactionStrategy.redactFields:t;this.setFieldsToRedact(s);}e?.legacyRedactFields&&this.setFieldsToUnredact(e.legacyRedactFields),e?.userFields&&this.setFieldsToUnredact(e.userFields);}setFieldsToRedact(e){this.redactedFields.clear();['input[type=\"password\"]','input[type=\"password\" i]','[type=\"password\"]','[type=\"password\" i]',...e].forEach(e=>{this.redactedFields.add(e);}),this.redactedFields.size>0?c(`Redaction: Active for ${this.redactedFields.size} field(s):`,Array.from(this.redactedFields)):c(\"Redaction: No fields to redact\"),this.applyRedactionClasses();}setFieldsToUnredact(e){this.unredactedFields.clear();const t=e.filter(e=>!this.isPasswordSelector(e)||(a(`Cannot unredact password field: ${e} - Password fields are always protected`),false));t.forEach(e=>this.unredactedFields.add(e)),t.length>0?c(`Unredaction: Active for ${t.length} field(s):`,t):c(\"Unredaction: No valid fields to unredact\"),this.applyUnredactionClasses();}redactFields(e){e.forEach(e=>{this.unredactedFields.delete(e);}),this.unredactedFields.size>0?c(`Unredaction: Removed ${e.length} field(s), ${this.unredactedFields.size} remaining:`,Array.from(this.unredactedFields)):c(\"Unredaction: All fields redacted\"),this.applyUnredactionClasses();}clearUnredactedFields(){this.unredactedFields.clear(),c(\"Unredaction: All fields cleared, everything redacted\"),this.removeUnredactionClasses();}hasUnredactedFields(){return this.unredactedFields.size>0}getRedactionMode(){return this.redactionMode}getUnredactedFields(){return Array.from(this.unredactedFields)}getMaskTextSelector(){return \"privacy-first\"===this.redactionMode?0===this.unredactedFields.size?null:Array.from(this.unredactedFields).join(\",\"):0===this.redactedFields.size?null:Array.from(this.redactedFields).join(\",\")}applyRedactionClasses(){0!==this.redactedFields.size&&(\"undefined\"!=typeof document&&\"loading\"!==document.readyState?this.redactedFields.forEach(e=>{try{const t=document.querySelectorAll(e);t.forEach(e=>{e&&e.classList&&e.classList.add(\"rr-mask\");}),c(`Added rr-mask class to ${t.length} element(s) for selector: ${e}`);}catch(t){a(`Invalid selector: ${e}`);}}):c(\"DOM not ready, deferring redaction class application\"));}applyUnredactionClasses(){0!==this.unredactedFields.size&&(\"undefined\"!=typeof document&&\"loading\"!==document.readyState?this.unredactedFields.forEach(e=>{try{const t=document.querySelectorAll(e);t.forEach(e=>{e&&e.classList&&e.classList.remove(\"rr-mask\");}),c(`Removed rr-mask class from ${t.length} element(s) for selector: ${e}`);}catch(t){a(`Invalid selector: ${e}`);}}):c(\"DOM not ready, deferring unredaction class application\"));}removeUnredactionClasses(){c(\"Unredaction classes removed\");}isPasswordSelector(e){return ['input[type=\"password\"]','input[type=\"password\" i]','[type=\"password\"]','[type=\"password\" i]'].some(t=>e.toLowerCase().includes(t.toLowerCase().replace(/[\\[\\]]/g,\"\")))}getOriginalValue(e){if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)return e.value}isElementUnredacted(e){return this.shouldUnredactElement(e)}shouldUnredactElement(e){if(\"privacy-first\"===this.redactionMode){if(0===this.unredactedFields.size)return false;for(const t of this.unredactedFields)try{if(e.matches(t))return !0}catch(e){a(`Invalid selector: ${t}`);}return false}if(0===this.redactedFields.size)return true;for(const t of this.redactedFields)try{if(e.matches(t))return !1}catch(e){a(`Invalid selector: ${t}`);}return true}}new v;const _=\"undefined\"!=typeof window;function S(){if(!_)return \"unknown\";const e=navigator.userAgent.toLowerCase(),t=window.screen.width,s=window.screen.height;return /mobile|android|iphone|ipad|ipod|blackberry|windows phone/i.test(e)?/ipad/i.test(e)||t>=768&&s>=1024?\"tablet\":\"mobile\":/windows|macintosh|linux/i.test(e)?\"desktop\":\"unknown\"}function k(e){try{return new URL(e).hostname}catch{return \"\"}}function T(){if(!_)return {device_type:\"unknown\",browser:\"unknown\",browser_version:\"unknown\",os:\"unknown\",os_version:\"unknown\",screen_resolution:\"unknown\",viewport_size:\"unknown\",color_depth:0,timezone:\"unknown\",language:\"unknown\",languages:[]};const{browser:e,browser_version:t}=function(){if(!_)return {browser:\"unknown\",browser_version:\"unknown\"};const e=navigator.userAgent;if(/chrome/i.test(e)&&!/edge/i.test(e)){const t=e.match(/chrome\\/(\\d+)/i);return {browser:\"chrome\",browser_version:t?t[1]:\"unknown\"}}if(/firefox/i.test(e)){const t=e.match(/firefox\\/(\\d+)/i);return {browser:\"firefox\",browser_version:t?t[1]:\"unknown\"}}if(/safari/i.test(e)&&!/chrome/i.test(e)){const t=e.match(/version\\/(\\d+)/i);return {browser:\"safari\",browser_version:t?t[1]:\"unknown\"}}if(/edge/i.test(e)){const t=e.match(/edge\\/(\\d+)/i);return {browser:\"edge\",browser_version:t?t[1]:\"unknown\"}}if(/msie|trident/i.test(e)){const t=e.match(/msie (\\d+)/i)||e.match(/rv:(\\d+)/i);return {browser:\"ie\",browser_version:t?t[1]:\"unknown\"}}return {browser:\"unknown\",browser_version:\"unknown\"}}(),{os:s,os_version:i}=function(){if(!_)return {os:\"unknown\",os_version:\"unknown\"};const e=navigator.userAgent;if(/windows/i.test(e)){const t=e.match(/windows nt (\\d+\\.\\d+)/i);let s=\"unknown\";if(t){const e=parseFloat(t[1]);s=10===e?\"10\":6.3===e?\"8.1\":6.2===e?\"8\":6.1===e?\"7\":t[1];}return {os:\"windows\",os_version:s}}if(/macintosh|mac os x/i.test(e)){const t=e.match(/mac os x (\\d+[._]\\d+)/i);return {os:\"macos\",os_version:t?t[1].replace(\"_\",\".\"):\"unknown\"}}if(/iphone|ipad|ipod/i.test(e)){const t=e.match(/os (\\d+[._]\\d+)/i);return {os:\"ios\",os_version:t?t[1].replace(\"_\",\".\"):\"unknown\"}}if(/android/i.test(e)){const t=e.match(/android (\\d+\\.\\d+)/i);return {os:\"android\",os_version:t?t[1]:\"unknown\"}}return /linux/i.test(e)?{os:\"linux\",os_version:\"unknown\"}:{os:\"unknown\",os_version:\"unknown\"}}();return {device_type:S(),browser:e,browser_version:t,os:s,os_version:i,screen_resolution:`${window.screen.width}x${window.screen.height}`,viewport_size:`${window.innerWidth}x${window.innerHeight}`,color_depth:window.screen.colorDepth,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,language:navigator.language,languages:[...navigator.languages||[navigator.language]],raw_user_agent:navigator.userAgent}}function E(){if(!_)return {current_url:\"\",pathname:\"\",search:\"\",hash:\"\",title:\"\",referrer:\"\",referrer_domain:\"\",initial_referrer:\"\",initial_referrer_domain:\"\"};const e=window.location.href,t=document.referrer,s=function(e){const t=new URL(e),s={};return [\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_term\",\"utm_content\"].forEach(e=>{const i=t.searchParams.get(e);i&&(s[e]=i);}),s}(e);return {current_url:e,pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,title:document.title,referrer:t,referrer_domain:k(t),initial_referrer:t,initial_referrer_domain:k(t),initial_host:window.location.hostname,...s}}function I(){return {...T(),...E()}}function b(){if(!_)return {};const e=E();return {initial_referrer:e.initial_referrer,initial_referrer_domain:e.initial_referrer_domain,initial_url:e.current_url,initial_pathname:e.pathname,initial_utm_source:e.utm_source,initial_utm_medium:e.utm_medium,initial_utm_campaign:e.utm_campaign,initial_utm_term:e.utm_term,initial_utm_content:e.utm_content}}function C(){if(!_)return {};const e=E();return {current_url:e.current_url,pathname:e.pathname,search:e.search,hash:e.hash,title:e.title,referrer:e.referrer,referrer_domain:e.referrer_domain,utm_source:e.utm_source,utm_medium:e.utm_medium,utm_campaign:e.utm_campaign,utm_term:e.utm_term,utm_content:e.utm_content}}class U{constructor(e={}){this.sessionProperties={},this.userProperties={},this.initialProperties={},this.isInitialized=false,this.config={enableAutomaticProperties:true,enableSessionProperties:true,enableUserProperties:true,propertyDenylist:[],...e},this.automaticProperties=I(),this.initialize();}initialize(){this.isInitialized||(this.initialProperties=b(),this.loadSessionProperties(),this.isInitialized=true);}getEventProperties(e={}){const t={};return this.config.enableAutomaticProperties&&(Object.assign(t,this.getAutomaticProperties()),this.config.enableSessionProperties&&Object.assign(t,this.sessionProperties),this.config.enableUserProperties&&Object.assign(t,this.userProperties),this.sessionProperties.$initial_properties_captured||(Object.assign(t,this.initialProperties),this.setSessionProperty(\"$initial_properties_captured\",true))),Object.assign(t,e),this.applyDenylist(t),t}getAutomaticProperties(){return {...this.automaticProperties,...C()}}getAutomaticPropertiesWithGeoIP(e={}){return {...this.automaticProperties,...C(),...e}}setSessionProperty(e,t){this.sessionProperties[e]=t,this.saveSessionProperties();}setSessionProperties(e){Object.assign(this.sessionProperties,e),this.saveSessionProperties();}getSessionProperty(e){return this.sessionProperties[e]}removeSessionProperty(e){delete this.sessionProperties[e],this.saveSessionProperties();}setUserProperty(e,t){this.userProperties[e]=t;}setUserProperties(e){Object.assign(this.userProperties,e);}getUserProperty(e){return this.userProperties[e]}removeUserProperty(e){delete this.userProperties[e];}setOnce(e,t,s=\"user\"){\"session\"===s?e in this.sessionProperties||this.setSessionProperty(e,t):e in this.userProperties||this.setUserProperty(e,t);}clearSessionProperties(){this.sessionProperties={},this.saveSessionProperties();}clearUserProperties(){this.userProperties={};}reset(){this.clearSessionProperties(),this.clearUserProperties(),this.initialProperties={},this.isInitialized=false,this.initialize();}loadSessionProperties(){if(\"undefined\"!=typeof sessionStorage)try{const e=sessionStorage.getItem(\"hb_session_properties\");e&&(this.sessionProperties=JSON.parse(e));}catch(e){console.warn(\"Failed to load session properties:\",e);}}saveSessionProperties(){if(\"undefined\"!=typeof sessionStorage)try{sessionStorage.setItem(\"hb_session_properties\",JSON.stringify(this.sessionProperties));}catch(e){console.warn(\"Failed to save session properties:\",e);}}applyDenylist(e){this.config.propertyDenylist&&0!==this.config.propertyDenylist.length&&this.config.propertyDenylist.forEach(t=>{delete e[t];});}updateAutomaticProperties(){this.automaticProperties=I();}getAllProperties(){return {automatic:this.getAutomaticProperties(),session:{...this.sessionProperties},user:{...this.userProperties},initial:{...this.initialProperties}}}}const D=\"undefined\"!=typeof window;class P{get isTrackerStarted(){return this.isStarted}setupDomReadyHandler(){if(D)if(\"complete\"===document.readyState||\"interactive\"===document.readyState)this.onDomReady();else if(document.addEventListener){document.addEventListener(\"DOMContentLoaded\",()=>this.onDomReady(),{capture:false});const e=setInterval(()=>{\"interactive\"!==document.readyState&&\"complete\"!==document.readyState||(clearInterval(e),this.onDomReady());},10);setTimeout(()=>clearInterval(e),5e3);}else this.onDomReady();else this.onDomReady();}onDomReady(){this.isDomReady||(this.isDomReady=true,c(\"🎯 DOM is ready, processing queued requests\"),this.requestQueue.forEach(e=>{this.processRequest(e);}),this.requestQueue=[],this.domReadyHandlers.forEach(e=>e()),this.domReadyHandlers=[]);}queueRequest(e){this.isDomReady?this.processRequest(e):this.requestQueue.push(e);}async processRequest(e){switch(c(\"Processing queued request:\",e),e.type){case \"addEvent\":await this.addEvent(e.event);break;case \"identifyUser\":await this.identifyUser(e.userProperties);break;case \"trackPageView\":this.trackPageView();break;default:a(\"Unknown request type:\",e.type);}}registerDomReadyHandler(e){this.isDomReady?e():this.domReadyHandlers.push(e);}static init(e,t){if(D&&false!==t?.suppressConsoleErrors){const e=console.error;console.error=(...t)=>{const s=t.join(\" \");s.includes(\"SecurityError: Failed to execute 'toDataURL'\")||s.includes(\"Tainted canvases may not be exported\")||s.includes(\"Cannot inline img src=\")||s.includes(\"Cross-Origin\")||s.includes(\"CORS\")||s.includes(\"Access-Control-Allow-Origin\")||s.includes(\"Failed to load resource\")||s.includes(\"net::ERR_BLOCKED_BY_CLIENT\")||s.includes(\"NetworkError when attempting to fetch resource\")||s.includes(\"Failed to fetch\")||s.includes(\"TypeError: NetworkError\")||s.includes(\"HumanBehavior ERROR\")||s.includes(\"Failed to track custom event\")||s.includes(\"Error sending custom event\")||e.apply(console,t);};const t=console.warn;console.warn=(...e)=>{const s=e.join(\" \");s.includes(\"Cannot inline img src=\")||s.includes(\"Cross-Origin\")||s.includes(\"CORS\")||s.includes(\"Access-Control-Allow-Origin\")||s.includes(\"Failed to load resource\")||s.includes(\"net::ERR_BLOCKED_BY_CLIENT\")||s.includes(\"NetworkError when attempting to fetch resource\")||s.includes(\"Failed to fetch\")||s.includes(\"Custom event network error\")||s.includes(\"Request blocked by ad blocker\")||t.apply(console,e);},window.addEventListener(\"error\",e=>{const t=e.message||\"\";if(t.includes(\"SecurityError\")||t.includes(\"Tainted canvases\")||t.includes(\"toDataURL\")||t.includes(\"Cross-Origin\")||t.includes(\"CORS\")||t.includes(\"NetworkError\")||t.includes(\"Failed to fetch\"))return e.preventDefault(),false});}if(D&&window.__humanBehaviorGlobalTracker)return c(\"Tracker already initialized, returning existing instance\"),window.__humanBehaviorGlobalTracker;t?.logLevel&&this.configureLogging({level:t.logLevel});const s=new P(e,t?.ingestionUrl,{enableAutomaticProperties:t?.enableAutomaticProperties,propertyDenylist:t?.propertyDenylist,redactionStrategy:t?.redactionStrategy,redactFields:t?.redactFields,maxQueueSize:t?.maxQueueSize,enableConsoleTracking:t?.enableConsoleTracking,enableNetworkTracking:t?.enableNetworkTracking});return s.recordCanvas=t?.recordCanvas??false,t?.redactFields&&s.setUnredactedFields(t.redactFields),false!==t?.enableAutomaticTracking&&s.setupAutomaticTracking(t?.automaticTrackingOptions),s.start(),s}constructor(e,s,i){if(this.eventQueue=[],this.pendingCustomEvents=[],this.pendingLogs=[],this.pendingNetworkErrors=[],this.customEventBatch=[],this.customEventBatchTimer=null,this.CUSTOM_EVENT_FLUSH_MS=100,this.CUSTOM_EVENT_BATCH_MAX=50,this._sessionActivityTimestamp=null,this._sessionStartTimestamp=null,this.userProperties={},this.isProcessing=false,this.flushInterval=null,this.FLUSH_INTERVAL_MS=3e3,this.heartbeatInterval=null,this.HEARTBEAT_INTERVAL_MS=3e4,this.SESSION_IDLE_TIMEOUT_MS=18e5,this.SESSION_MAX_LENGTH_MS=864e5,this.focusBlurGraceTimeout=null,this.FOCUS_BLUR_GRACE_MS=2e3,this.lastEmittedFocusState=null,this.endUserId=null,this.initialized=false,this.initializationPromise=null,this.monthlyLimitReached=false,this.isDomReady=false,this.requestQueue=[],this.domReadyHandlers=[],this.originalConsole=null,this.consoleTrackingEnabled=false,this.originalFetch=null,this.networkTrackingEnabled=false,this.enableConsoleTrackingFlag=true,this.enableNetworkTrackingFlag=true,this.navigationTrackingEnabled=false,this.currentUrl=\"\",this.previousUrl=\"\",this.originalPushState=null,this.originalReplaceState=null,this.navigationListeners=[],this.lastPushStateAt=0,this.NAVIGATION_DEDUPE_MS=100,this._connectionBlocked=false,this.recordInstance=null,this.sessionStartTime=Date.now(),this.rrwebRecord=null,this.fullSnapshotTimeout=null,this.recordCanvas=false,this.isStarted=false,this.minimumDurationMilliseconds=5e3,this._isIdle=\"unknown\",this._lastActivityTimestamp=Date.now(),this.IDLE_THRESHOLD_MS=3e5,this.rageClickTracker={clicks:[]},this.RAGE_CLICK_THRESHOLD_PX=30,this.RAGE_CLICK_TIMEOUT_MS=1e3,this.RAGE_CLICK_CLICK_COUNT=3,this.rageJustFiredAt=0,this.deadClickTracker={pendingClicks:new Map},this.DEAD_CLICK_SCROLL_THRESHOLD_MS=100,this.DEAD_CLICK_SELECTION_THRESHOLD_MS=2500,this.DEAD_CLICK_MUTATION_THRESHOLD_MS=100,this.DEAD_CLICK_ABSOLUTE_TIMEOUT_MS=2750,!e)throw new Error(\"Human Behavior API Key is required\");const n=s||\"https://ingest.humanbehavior.co\";if(this.api=new y({apiKey:e,ingestionUrl:n}),this.apiKey=e,this.ingestionUrl=n,this.MAX_QUEUE_SIZE=i?.maxQueueSize??1e3,this.enableConsoleTrackingFlag=false!==i?.enableConsoleTracking,this.enableNetworkTrackingFlag=false!==i?.enableNetworkTracking,this.redactionManager=new v({redactionStrategy:i?.redactionStrategy,legacyRedactFields:i?.redactFields}),this.propertyManager=new U({enableAutomaticProperties:false!==i?.enableAutomaticProperties,propertyDenylist:i?.propertyDenylist||[]}),D){const e=\"human_behavior_end_user_id\",s=this.getCookie(e);this.endUserId=s||v1(),s?c(`Reusing existing endUserId: ${this.endUserId}`):(this.setCookie(e,this.endUserId,365),c(`Generated new endUserId: ${this.endUserId}`));}else this.endUserId=v1();if(D){const e=this.apiKey||\"default\";this._window_id_storage_key=`human_behavior_${e}_window_id`,this._primary_window_exists_storage_key=`human_behavior_${e}_primary_window_exists`,this.sessionId=this.getOrCreateSessionId(),this.windowId=this.getOrCreateWindowId(),this.currentUrl=window.location.href,window.__humanBehaviorGlobalTracker=this,this.setupWindowUnloadListener();}else this._window_id_storage_key=\"\",this._primary_window_exists_storage_key=\"\",this.sessionId=v1(),this.windowId=v1();this.api.setTrackingContext(this.sessionId,this.endUserId),this.initializationPromise=this.init().catch(e=>{o(\"Initialization failed:\",e);});}async init(){try{this.initialized=!0,D?(this.setupPageUnloadHandler(),this.setupNavigationTracking()):d(\"HumanBehaviorTracker initialized in server environment. Session tracking is disabled.\"),d(`HumanBehaviorTracker initialized with sessionId: ${this.sessionId}, endUserId: ${this.endUserId}`);}catch(e){o(\"Failed to initialize HumanBehaviorTracker:\",e),this.initialized=true;}}async ensureInitialized(){this.initializationPromise&&await this.initializationPromise;}setupNavigationTracking(){if(!D||this.navigationTrackingEnabled)return;this.navigationTrackingEnabled=true,c(\"Setting up navigation tracking\"),this.originalPushState=history.pushState,this.originalReplaceState=history.replaceState,history.pushState=(...e)=>{this.previousUrl=this.currentUrl,this.originalPushState.apply(history,e),this.currentUrl=window.location.href,this.lastPushStateAt=Date.now(),this.trackNavigationEvent(\"pushState\",this.previousUrl,this.currentUrl),this.takeFullSnapshot();},history.replaceState=(...e)=>{this.previousUrl=this.currentUrl,this.originalReplaceState.apply(history,e),this.currentUrl=window.location.href,this.lastPushStateAt=Date.now(),this.trackNavigationEvent(\"replaceState\",this.previousUrl,this.currentUrl),this.takeFullSnapshot();};const e=()=>{this.previousUrl=this.currentUrl,this.currentUrl=window.location.href,this.trackNavigationEvent(\"popstate\",this.previousUrl,this.currentUrl),this.takeFullSnapshot();};window.addEventListener(\"popstate\",e),this.navigationListeners.push(()=>{window.removeEventListener(\"popstate\",e);});const t=()=>{if(Date.now()-this.lastPushStateAt<this.NAVIGATION_DEDUPE_MS)return this.previousUrl=this.currentUrl,void(this.currentUrl=window.location.href);this.previousUrl=this.currentUrl,this.currentUrl=window.location.href,this.trackNavigationEvent(\"hashchange\",this.previousUrl,this.currentUrl);};window.addEventListener(\"hashchange\",t),this.navigationListeners.push(()=>{window.removeEventListener(\"hashchange\",t);}),this.trackNavigationEvent(\"pageLoad\",\"\",this.currentUrl);}async trackNavigationEvent(e,t,s){if(this.initialized)if(\"pageLoad\"===e||t!==s)try{if(\"pageLoad\"===e||\"pushState\"===e||\"replaceState\"===e||\"popstate\"===e||\"hashchange\"===e){const s={url:window.location.href,fromUrl:t,$navigation_type:e,navigationType:e,pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,referrer:document.referrer,timestamp:Date.now()};await this.customEvent(\"$pageview\",s);}c(`Navigation tracked: ${e} from ${t} to ${s}`);}catch(e){o(\"Failed to track navigation event:\",e);}else c(`Navigation dedupe: ${e} same URL (${s})`);}async trackPageView(e){if(this.initialized){this.propertyManager.updateAutomaticProperties();try{const t={url:e||window.location.href,pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,referrer:document.referrer,timestamp:(new Date).toISOString()},s=this.propertyManager.getEventProperties(t);await this.addEvent({type:5,data:{payload:{eventType:\"pageview\",...s}},timestamp:Date.now()}),c(`Pageview tracked: ${t.url}`);}catch(e){o(\"Failed to track pageview event:\",e);}}}async customEvent(e,s){if(null==e||\"string\"!=typeof e||\"\"===e.trim())return void a(\"customEvent() called with empty or invalid name; skipping\");this.endUserId||(a(`endUserId not available, using anonymous ID for event: ${e}`),this.endUserId=v1()),D&&this.checkAndRefreshSession();const i=this.propertyManager.getEventProperties(s);if(this.shouldSkipDueToMinimumDuration())return c(`Custom event '${e}' queued due to session duration below minimum`),void this.pendingCustomEvents.push({eventName:e,properties:i,timestamp:Date.now()});await this.flushPendingCustomEvents(),this.queueCustomEvent(e,i),c(`Custom event queued: ${e}`,i);}queueCustomEvent(e,t){this.customEventBatch.push({eventName:e,eventProperties:t}),this.customEventBatch.length>=this.CUSTOM_EVENT_BATCH_MAX?this.flushCustomEventBatch():null==this.customEventBatchTimer&&(this.customEventBatchTimer=setTimeout(()=>{this.customEventBatchTimer=null,this.flushCustomEventBatch();},this.CUSTOM_EVENT_FLUSH_MS));}async flushCustomEventBatch(){if(null!=this.customEventBatchTimer&&(clearTimeout(this.customEventBatchTimer),this.customEventBatchTimer=null),0===this.customEventBatch.length)return;const e=this.customEventBatch;this.customEventBatch=[];try{return await this.api.sendCustomEventBatch(this.sessionId,e,this.endUserId),void c(`Custom event batch flushed: ${e.length} event(s)`)}catch(e){o(\"Failed to flush custom event batch, falling back per-event:\",e);}for(const t of e)try{await this.api.sendCustomEvent(this.sessionId,t.eventName,t.eventProperties,this.endUserId);}catch(e){o(\"Per-event fallback also failed:\",e);try{await this.addEvent({type:5,data:{payload:{eventType:\"custom\",eventName:t.eventName,properties:t.eventProperties||{},timestamp:(new Date).toISOString(),url:D?window.location.href:\"\",pathname:D?window.location.pathname:\"\"}},timestamp:Date.now()});}catch(e){o(\"Failed to add custom event to event stream as fallback:\",e);}}}setupAutomaticTracking(e){if(!D)return;const t={trackButtons:false!==e?.trackButtons,trackLinks:false,trackForms:false!==e?.trackForms,includeText:false!==e?.includeText,includeClasses:e?.includeClasses||false};c(\"Setting up automatic tracking with config:\",t),this.setupAutocapture(t),t.trackForms&&this.setupAutomaticFormTracking(t),this.setupRageClickDetection(),this.setupDeadClickDetection();}setupAutocapture(e){document.addEventListener(\"click\",async t=>{const s=t.target;if(!s||1!==s.nodeType||\"function\"!=typeof s.closest)return;const i=s.closest('button, a, input, select, textarea, label, [role=\"button\"], [role=\"link\"], [role=\"tab\"], [role=\"menuitem\"]')||s,n=(i.tagName||\"\").toLowerCase(),r={tag:n,x:t.clientX,y:t.clientY,page:window.location.pathname,path:this.buildDomPath(i),timestamp:Date.now()};i.id&&(r.id=i.id,r.elementId=i.id);const o=i.getAttribute&&i.getAttribute(\"role\");o&&(r.role=o);const a=i.type;!a||\"input\"!==n&&\"button\"!==n||(r.type=a);const d=i.href;if(d&&(r.href=d),false!==e.includeText){const e=(i.textContent||\"\").replace(/\\s+/g,\" \").trim();e&&(r.text=e.substring(0,200),r.elementText=e.substring(0,100));}const c=i.className;e.includeClasses&&\"string\"==typeof c&&c&&(r.class=c,r.elementClass=c),await this.customEvent(\"$click\",r);});}buildDomPath(e){const t=[];let s=e,i=0;for(;s&&1===s.nodeType&&i<8;){const e=(s.tagName||\"\").toLowerCase();if(!e)break;let n=e;if(s.id)n+=\"#\"+s.id;else if(\"string\"==typeof s.className&&s.className){const e=s.className.trim().split(/\\s+/)[0];e&&(n+=\".\"+e);}if(t.unshift(n),\"body\"===e||\"html\"===e)break;s=s.parentElement,i++;}return t.join(\" > \")}setupRageClickDetection(){D&&document.addEventListener(\"click\",async e=>{const t=e.target;if(!t||1!==t.nodeType)return;const s=e.clientX,i=e.clientY,n=Date.now();if(this.isRageClick(s,i,n,t)){const e=(\"function\"==typeof t.closest?t.closest('button, a, [role=\"button\"], [role=\"link\"]'):null)||t,r=(e.tagName||\"\").toLowerCase(),o={x:s,y:i,page:window.location.pathname,element:r,clickCount:this.rageClickTracker.clicks.length,timestamp:n};e.id&&(o.elementId=e.id);const a=e.className;\"string\"==typeof a&&a&&(o.elementClass=a),e.textContent&&(o.elementText=e.textContent.trim().substring(0,100)),Object.keys(o).forEach(e=>{null!==o[e]&&void 0!==o[e]||delete o[e];}),await this.customEvent(\"$rageclick\",o),this.rageJustFiredAt=n;}});}isRageClick(e,t,s,i){if(this.rageJustFiredAt>0&&s-this.rageJustFiredAt<this.RAGE_CLICK_TIMEOUT_MS)return false;if(this.rageJustFiredAt>0&&s-this.rageJustFiredAt>=this.RAGE_CLICK_TIMEOUT_MS)return this.rageJustFiredAt=0,this.rageClickTracker.clicks=[{x:e,y:t,timestamp:s,element:i}],false;const n=this.rageClickTracker.clicks,r=n[n.length-1],o=n[0];if(o&&r&&s-r.timestamp<this.RAGE_CLICK_TIMEOUT_MS&&Math.hypot(e-o.x,t-o.y)<this.RAGE_CLICK_THRESHOLD_PX){if(n.push({x:e,y:t,timestamp:s,element:i}),n.length===this.RAGE_CLICK_CLICK_COUNT)return true}else this.rageClickTracker.clicks=[{x:e,y:t,timestamp:s,element:i}];return false}setupDeadClickDetection(){D&&(this.setupDeadClickMutationObserver(),this.setupDeadClickScrollObserver(),this.setupDeadClickSelectionObserver(),this.setupDeadClickNavigationTracking(),document.addEventListener(\"click\",e=>{const t=e.target;if(!t||1!==t.nodeType)return;if(!this.isInteractiveElement(t))return;if(this.ignoreClickForDeadDetection(t))return;const s=Date.now()+Math.random(),i=Date.now(),n=this.deadClickTracker.lastMutationTime,r=this.DEAD_CLICK_ABSOLUTE_TIMEOUT_MS,o=window.setTimeout(()=>{this.handleDeadClickTimeout(s);},r);this.deadClickTracker.pendingClicks.set(s,{element:t,originalEvent:e,timestamp:i,timer:o,cancelled:false,lastMutationTimeAtClick:n});}));}setupDeadClickMutationObserver(){D&&(this.deadClickTracker.mutationObserver||(this.deadClickTracker.mutationObserver=new MutationObserver(()=>{const e=Date.now();this.deadClickTracker.lastMutationTime=e,this.deadClickTracker.pendingClicks.forEach((t,s)=>{if(t.cancelled)return;const i=e-t.timestamp,n=t.lastMutationTimeAtClick||0,r=e>n,o=i>=0&&i<this.DEAD_CLICK_MUTATION_THRESHOLD_MS,a=i<0&&Math.abs(i)<50;(o&&r||a)&&this.cancelPendingClick(s);});}),this.deadClickTracker.mutationObserver.observe(document,{attributes:true,characterData:true,childList:true,subtree:true})));}setupDeadClickScrollObserver(){D&&window.addEventListener(\"scroll\",()=>{const e=Date.now();this.deadClickTracker.pendingClicks.forEach((t,s)=>{e-t.timestamp<this.DEAD_CLICK_SCROLL_THRESHOLD_MS&&this.cancelPendingClick(s);});},{capture:true,passive:true});}setupDeadClickSelectionObserver(){D&&document.addEventListener(\"selectionchange\",()=>{const e=Date.now();this.deadClickTracker.lastSelectionChangedTime=e,this.deadClickTracker.pendingClicks.forEach((t,s)=>{e-t.timestamp<this.DEAD_CLICK_SELECTION_THRESHOLD_MS&&this.cancelPendingClick(s);});});}setupDeadClickNavigationTracking(){if(!D)return;let e=window.location.href;const t=this.trackNavigationEvent.bind(this);this.trackNavigationEvent=async(s,i,n)=>(this.cancelAllPendingClicks(),e=window.location.href,t(s,i,n));const s=()=>{const t=window.location.href;t!==e&&(this.cancelAllPendingClicks(),e=t);};window.addEventListener(\"popstate\",s),window.addEventListener(\"hashchange\",s),window.addEventListener(\"beforeunload\",()=>{this.cancelAllPendingClicks();}),setInterval(()=>{s();},100);}isInteractiveElement(e){if(!e||1!==e.nodeType||!e.tagName)return false;const t=e.tagName.toLowerCase();if(\"button\"===t||\"a\"===t)return true;if(\"input\"===t)return false;if([\"select\",\"textarea\"].includes(t))return true;const s=e.getAttribute(\"role\");if(s&&[\"button\",\"link\",\"tab\",\"menuitem\",\"checkbox\",\"radio\"].includes(s))return true;if(e.onclick||e.getAttribute(\"onclick\"))return true;try{if(\"pointer\"===window.getComputedStyle(e).cursor)return !0}catch(e){}return !!e.closest('button, a, [role=\"button\"], [role=\"link\"], [role=\"tab\"], [role=\"menuitem\"]')}ignoreClickForDeadDetection(e){if(!e||!e.tagName)return true;if(\"html\"===e.tagName.toLowerCase())return true;const t=Date.now();for(const s of this.deadClickTracker.pendingClicks.values())if(s.element===e&&Math.abs(t-s.timestamp)<1e3)return true;return false}cancelPendingClick(e){const t=this.deadClickTracker.pendingClicks.get(e);t&&!t.cancelled&&(clearTimeout(t.timer),t.cancelled=true,this.deadClickTracker.pendingClicks.delete(e));}cancelAllPendingClicks(){this.deadClickTracker.pendingClicks.forEach((e,t)=>{e.cancelled||(clearTimeout(e.timer),this.deadClickTracker.pendingClicks.delete(t));});}async handleDeadClickTimeout(e){const t=this.deadClickTracker.pendingClicks.get(e);if(!t||t.cancelled)return;const s=Date.now()-t.timestamp;let i;const n=t.lastMutationTimeAtClick||0,r=this.deadClickTracker.lastMutationTime||0,o=r>n&&r>=t.timestamp,a=n>0&&n<t.timestamp&&t.timestamp-n<50;let d;o?i=r-t.timestamp:a&&(i=0),this.deadClickTracker.lastSelectionChangedTime&&t.timestamp<=this.deadClickTracker.lastSelectionChangedTime&&(d=this.deadClickTracker.lastSelectionChangedTime-t.timestamp);const c=void 0!==i&&i<this.DEAD_CLICK_MUTATION_THRESHOLD_MS,l=void 0!==d&&d<this.DEAD_CLICK_SELECTION_THRESHOLD_MS;c||l||await this.fireDeadClickEvent(t,s,i,d),this.deadClickTracker.pendingClicks.delete(e);}async fireDeadClickEvent(e,t,s,i){const n=e.element.closest('button, a, [role=\"button\"], [role=\"link\"]')||e.element,r={x:e.originalEvent.clientX,y:e.originalEvent.clientY,page:window.location.pathname,element:n.tagName.toLowerCase(),absoluteDelayMs:t,timestamp:e.timestamp};void 0!==s&&(r.mutationDelayMs=s),void 0!==i&&(r.selectionChangedDelayMs=i),n.id&&(r.elementId=n.id),n.className&&(r.elementClass=n.className),n.textContent&&(r.elementText=n.textContent.trim().substring(0,100)),Object.keys(r).forEach(e=>{null!==r[e]&&void 0!==r[e]||delete r[e];}),await this.customEvent(\"$deadclick\",r);}setupAutomaticLinkTracking(e){}setupAutomaticFormTracking(e){document.addEventListener(\"submit\",async t=>{const s=t.target,i=new FormData(s),n={formId:s.id||null,formAction:s.action||null,formMethod:s.method||\"get\",fields:Array.from(i.keys()),page:window.location.pathname,timestamp:Date.now()};e.includeClasses&&(n.formClass=s.className||null),Object.keys(n).forEach(e=>{null===n[e]&&delete n[e];}),await this.customEvent(\"$form_submitted\",n);});}cleanupNavigationTracking(){this.navigationTrackingEnabled&&(this.originalPushState&&(history.pushState=this.originalPushState),this.originalReplaceState&&(history.replaceState=this.originalReplaceState),this.navigationListeners.forEach(e=>e()),this.navigationListeners=[],this.navigationTrackingEnabled=false,c(\"Navigation tracking cleaned up\"));}static logToStorage(e){d(e);}static configureLogging(e){i.setConfig({level:{none:0,error:1,warn:2,info:3,debug:4}[e.level||\"error\"],enableConsole:false!==e.enableConsole,enableStorage:e.enableStorage||false});}enableConsoleTracking(){D&&!this.consoleTrackingEnabled&&(this.originalConsole={log:console.log,warn:console.warn,error:console.error},console.log=(...e)=>{this.trackConsoleEvent(\"log\",e),this.originalConsole.log(...e);},console.warn=(...e)=>{this.trackConsoleEvent(\"warn\",e),this.originalConsole.warn(...e);},console.error=(...e)=>{this.trackConsoleEvent(\"error\",e),this.originalConsole.error(...e);},this.consoleTrackingEnabled=true,c(\"Console tracking enabled\"));}enableNetworkTracking(){D&&!this.networkTrackingEnabled&&\"undefined\"!=typeof fetch&&(this.originalFetch=window.fetch.bind(window),window.fetch=async(e,s)=>{const i=Date.now(),n=v1(),r=\"string\"==typeof e?e:e instanceof URL?e.toString():e.url,o=(s?.method||(\"object\"==typeof e&&\"method\"in e?e.method:void 0)||\"GET\").toUpperCase(),a=this.shouldSkipNetworkTracking(r),d=1e4;let l=null,h=false;a||(l=setTimeout(()=>{const e=Date.now()-i;if(!h){h=true;const t={requestId:n,url:r,method:o,status:null,statusText:null,duration:e,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:\"long_loading\",errorMessage:`Request took longer than 10000ms (${e}ms elapsed)`,startTimeMs:i,spanName:`${o} ${r}`,spanStatus:\"slow\",attributes:{\"http.method\":o,\"http.url\":r,\"request.duration_ms\":e,\"request.long_loading_threshold_ms\":d},automaticProperties:this.propertyManager.getAutomaticProperties()};return this.shouldSkipDueToMinimumDuration()?(c(\"Long-loading network error queued due to session duration below minimum\"),void this.pendingNetworkErrors.push({errorData:t,timestamp:Date.now()})):(this.flushPendingNetworkErrors(),void this.api.sendNetworkError(t).catch(()=>{}))}},d));try{const t=await this.originalFetch(e,s),d=Date.now()-i;if(l&&clearTimeout(l),!t.ok&&!a){const e={requestId:n,url:r,method:o,status:t.status,statusText:t.statusText,duration:d,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyHttpError(t.status),errorMessage:t.statusText,startTimeMs:i,spanName:`${o} ${r}`,spanStatus:\"error\",attributes:{\"http.status_code\":t.status,\"http.status_text\":t.statusText},automaticProperties:this.propertyManager.getAutomaticProperties()};if(this.shouldSkipDueToMinimumDuration())return c(\"Failed request network error queued due to session duration below minimum\"),this.pendingNetworkErrors.push({errorData:e,timestamp:Date.now()}),t;this.flushPendingNetworkErrors(),this.api.sendNetworkError(e).catch(()=>{});}return t}catch(e){const t=Date.now()-i;if(l&&clearTimeout(l),!a){const s={requestId:n,url:r,method:o,status:null,statusText:null,duration:t,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyNetworkError(e),errorMessage:e.message,errorName:e.name,startTimeMs:i,spanName:`${o} ${r}`,spanStatus:\"error\",attributes:{\"error.name\":e.name,\"error.message\":e.message},automaticProperties:this.propertyManager.getAutomaticProperties()};if(this.shouldSkipDueToMinimumDuration())throw c(\"Network error queued due to session duration below minimum\"),this.pendingNetworkErrors.push({errorData:s,timestamp:Date.now()}),e;this.flushPendingNetworkErrors(),this.api.sendNetworkError(s).catch(()=>{});}throw e}},this.networkTrackingEnabled=true,c(\"Network tracking enabled\"));}async flushPendingCustomEvents(){if(0===this.pendingCustomEvents.length)return;const e=[...this.pendingCustomEvents];this.pendingCustomEvents=[],c(`Flushing ${e.length} pending custom events`);for(const{eventName:t,properties:s}of e)this.queueCustomEvent(t,s);}async flushPendingLogs(){if(0===this.pendingLogs.length)return;const e=[...this.pendingLogs];this.pendingLogs=[],c(`Flushing ${e.length} pending logs`);for(const{logData:t}of e)try{await this.api.sendLog(t);}catch(e){o(\"Failed to flush pending log:\",e);}}async flushPendingNetworkErrors(){if(0===this.pendingNetworkErrors.length)return;const e=[...this.pendingNetworkErrors];this.pendingNetworkErrors=[],c(`Flushing ${e.length} pending network errors`);for(const{errorData:t}of e)try{await this.api.sendNetworkError(t);}catch(e){o(\"Failed to flush pending network error:\",e);}}enablePageLoadTracking(){D&&\"undefined\"!=typeof window&&(\"complete\"===document.readyState?this.trackPageLoad():window.addEventListener(\"load\",()=>{this.trackPageLoad();}),c(\"Page load tracking enabled\"));}trackPageLoad(){if(D&&\"undefined\"!=typeof performance)try{const e=performance.getEntriesByType(\"navigation\")[0];if(!e)return;const s=e.loadEventEnd-e.fetchStart;if(s>3e3){const i=v1(),n=e.domContentLoadedEventEnd-e.fetchStart,r=e.domComplete-e.fetchStart,o={requestId:i,url:window.location.href,method:\"GET\",status:200,statusText:\"OK\",duration:s,timestampMs:e.loadEventEnd+performance.timeOrigin,sessionId:this.sessionId,endUserId:this.endUserId,errorType:\"slow_page_load\",errorMessage:`Page load took ${s}ms`,startTimeMs:e.fetchStart+performance.timeOrigin,spanName:\"page_load\",spanStatus:\"slow\",attributes:{\"page.url\":window.location.href,\"page.load_time\":s,\"page.dom_content_loaded\":n,\"page.dom_complete\":r}};if(this.shouldSkipDueToMinimumDuration())return c(\"Slow page load network error queued due to session duration below minimum\"),void this.pendingNetworkErrors.push({errorData:o,timestamp:Date.now()});this.flushPendingNetworkErrors(),this.api.sendNetworkError(o).catch(()=>{});}}catch(e){a(\"Failed to track page load:\",e);}}shouldSkipNetworkTracking(e){if(!e||!this.ingestionUrl)return false;try{const t=new URL(e),s=new URL(this.ingestionUrl);return !(t.origin!==s.origin||!t.pathname.startsWith(\"/api/ingestion/\"))||!!e.includes(this.ingestionUrl)}catch(t){return e.includes(this.ingestionUrl)}}classifyHttpError(e){return e>=400&&e<500?\"client_error\":e>=500?\"server_error\":\"unknown_error\"}classifyNetworkError(e){const t=e.message||\"\",s=e.name||\"\";return t.includes(\"blocked\")||t.includes(\"ERR_BLOCKED_BY_CLIENT\")||t.includes(\"net::ERR_BLOCKED_BY_CLIENT\")||\"TypeError\"===s&&t.includes(\"Failed to fetch\")?\"blocked_by_client\":t.includes(\"CORS\")||t.includes(\"Cross-Origin\")||t.includes(\"Access-Control-Allow-Origin\")||\"TypeError\"===s&&t.includes(\"CORS\")?\"cors_error\":t.includes(\"timeout\")||t.includes(\"TIMEOUT\")||t.includes(\"NetworkError\")||\"NetworkError\"===s?\"network_error\":t.includes(\"abort\")||\"AbortError\"===s?\"aborted\":\"unknown_error\"}disableConsoleTracking(){D&&this.consoleTrackingEnabled&&(this.originalConsole&&(console.log=this.originalConsole.log,console.warn=this.originalConsole.warn,console.error=this.originalConsole.error),this.consoleTrackingEnabled=false,c(\"Console tracking disabled\"));}trackConsoleEvent(e,t){if(this.initialized)if(\"log\"!==e)try{if(r())return void(this.originalConsole&&this.originalConsole[e](...t));const s=(new Error).stack||\"\";if(this.isSDKStackFrame(s))return void(this.originalConsole&&this.originalConsole[e](...t));const i={level:e,message:t.map(e=>\"object\"==typeof e?JSON.stringify(e):String(e)).join(\" \"),timestampMs:Date.now(),url:D?window.location.href:\"\",userAgent:D?navigator.userAgent:\"\",stack:s,sessionId:this.sessionId,endUserId:this.endUserId,automaticProperties:this.propertyManager.getAutomaticProperties()};if(this.shouldSkipDueToMinimumDuration())return c(`Console ${e} queued due to session duration below minimum`),void this.pendingLogs.push({logData:i,timestamp:Date.now()});this.flushPendingLogs(),this.api.sendLog(i).catch(e=>{this.addEvent({type:5,data:{payload:{eventType:\"console\",...i}},timestamp:Date.now()}).catch(()=>{});});}catch(e){o(\"Error in trackConsoleEvent:\",e);}else this.originalConsole&&this.originalConsole.log(...t);}isSDKStackFrame(e){if(!e)return false;const t=[\"humanbehavior-js\",\"@humanbehavior/core\",\"@humanbehavior/browser\",\"tracker.ts\",\"api.ts\",\"logger.ts\",\"utils/logger\",\"packages/core\",\"packages/browser\",\"index.mjs\",\"index.js\"],s=e.split(\"\\n\");e.toLowerCase();let i=false;for(let e=0;e<s.length;e++){const n=s[e].trim().toLowerCase();if(!n||\"error\"===n||n.startsWith(\"error:\"))continue;if(!t.some(e=>n.includes(e.toLowerCase()))){i=true;break}}return !i}setupPageUnloadHandler(){if(!D)return;const e=\"__humanBehaviorUnloadAttached\";if(window[e])return c(\"Page unload handlers already attached on window — skipping re-attach\"),void(window.__humanBehaviorActiveTracker=this);window[e]=true,window.__humanBehaviorActiveTracker=this,c(\"Setting up page unload handler\"),window.addEventListener(\"visibilitychange\",()=>{const e=\"hidden\"===document.visibilityState?\"hidden\":\"visible\";this.emitVisibilityMarker(e),\"hidden\"===document.visibilityState?(c(\"Page hidden - sending pending events\"),this.flushEvents()):\"visible\"===document.visibilityState&&(c(\"Page visible - taking full snapshot for multi-window replay\"),this.takeFullSnapshot());}),this.setupWindowFocusTracking();const t=\"onpagehide\"in window?\"pagehide\":\"beforeunload\";window.addEventListener(t,()=>{c(\"Page unloading - sending final events via sendBeacon\");let e=false;const t=()=>{if(!e){e=true;try{this.api?.sendSessionEndBeacon(this.sessionId,this.endUserId);}catch{}}};try{if(this.customEventBatch.length>0){null!=this.customEventBatchTimer&&(clearTimeout(this.customEventBatchTimer),this.customEventBatchTimer=null);const e=this.customEventBatch;this.customEventBatch=[];const t=this.api?.sendCustomEventBatchBeacon(this.sessionId,e,this.endUserId);t||this.api?.sendCustomEventBatch(this.sessionId,e,this.endUserId).catch(()=>{});}}catch{}const s=this.minimumDurationMilliseconds,i=this.getSessionDuration();if(null!==i&&i>=0&&i<s)return c(`Session duration (${i}ms) below minimum (${s}ms), not sending on unload`),void t();const n=[...this.eventQueue];if(D&&window.__hb_pending_snapshots){const e=window.__hb_pending_snapshots;Array.isArray(e)&&e.length>0&&(c(\"Including pending FullSnapshot(s) in sendBeacon for short session\"),n.unshift(...e),delete window.__hb_pending_snapshots);}if(n.length>0&&this.api)try{const e=this.propertyManager.getAutomaticProperties();this.api.sendBeaconEvents(n,this.sessionId,this.endUserId||void 0,this.windowId,e),this.eventQueue=[];}catch(e){a(\"Failed to send events via sendBeacon on unload:\",e);}this.api&&this.api.unload(),t();});const s=()=>{localStorage.setItem(\"human_behavior_last_activity\",Date.now().toString());};window.addEventListener(\"click\",s),window.addEventListener(\"keydown\",s),window.addEventListener(\"scroll\",s),window.addEventListener(\"mousemove\",s);}viewLogs(){try{const e=i.getLogs();d(\"HumanBehavior Logs:\",e),i.clearLogs();}catch(e){o(\"Failed to read logs:\",e);}}async identifyUser(e){const t=e?.userProperties&&\"object\"==typeof e.userProperties?e.userProperties:e||{},s=this.endUserId;this.userProperties={...this.userProperties,...t};try{this.propertyManager?.setUserProperties(t);}catch{}c(\"Identifying user:\",{userProperties:t,originalEndUserId:s,sessionId:this.sessionId}),!D||this.propertyManager.getAutomaticProperties();const i=await this.api.sendUserData(s||\"\",t,this.sessionId);if(i.actualUserId||i.wasExistingUser){const e=i.actualUserId||s;if(e&&e!==s){const t=\"human_behavior_end_user_id\";if(this.setCookie(t,e,365),D)try{localStorage.setItem(t,e);}catch(e){c(\"Failed to set canonical endUserId in localStorage:\",e);}c(`🔗 Preexisting user detected. Future sessions will use canonical ID: ${e} (current session stays: ${s})`);}}return s||\"\"}getUserAttributes(){return {...(()=>{try{return this.propertyManager?.getAllProperties().user||{}}catch{return {}}})(),...this.userProperties}}async start(){if(!D)return;if(this.isStarted)return void c(\"HumanBehaviorTracker already started, skipping start() call.\");this.isStarted=true,this._lastActivityTimestamp=null!==this._sessionActivityTimestamp?this._sessionActivityTimestamp:Date.now(),this._isIdle=\"unknown\",this.flushInterval=window.setInterval(()=>{this.flushEvents();},this.FLUSH_INTERVAL_MS),this.heartbeatInterval=window.setInterval(()=>{try{if(\"undefined\"!=typeof document&&\"visible\"!==document.visibilityState)return;if(!this.sessionId||!this.api)return;this.api.sendHeartbeatBeacon(this.sessionId,this.endUserId);}catch{}},this.HEARTBEAT_INTERVAL_MS),this.enableConsoleTrackingFlag&&this.enableConsoleTracking(),this.enableNetworkTrackingFlag&&this.enableNetworkTracking(),this.enablePageLoadTracking(),this.api.sendIpInfo(this.sessionId,this.endUserId);const t=()=>{if(this.recordInstance)return void c(\"🎯 Recording already started, skipping duplicate start\");c(\"🎯 DOM ready, starting session recording\"),this.rrwebRecord=record;const t=record({emit:e=>{this.addRecordingEvent(e),2===e.type&&c(`🎯 FullSnapshot generated at ${(new Date).toISOString()}`);},maskTextSelector:this.redactionManager.getMaskTextSelector()||void 0,maskTextFn:void 0,maskAllInputs:\"privacy-first\"===this.redactionManager.getRedactionMode(),maskInputOptions:{password:true,text:true,textarea:true,email:true,number:true,tel:true,url:true,search:true,date:true,time:true,month:true,week:true},maskInputFn:(e,t)=>{try{const s=this.redactionManager.getRedactionMode();if(!(t instanceof HTMLElement))return e;if(\"privacy-first\"===s)return \"*\".repeat(e.length||1);const i=this.redactionManager.shouldUnredactElement(t);t.id,t.name,t.type;return i?e:\"*\".repeat(e.length||1)}catch{return e}},slimDOMOptions:{},collectFonts:false,inlineStylesheet:true,recordCrossOriginIframes:false,recordCanvas:this.recordCanvas,sampling:this.recordCanvas?{canvas:4}:void 0,dataURLOptions:this.recordCanvas?{type:\"image/webp\",quality:.4}:void 0,hooks:{input:e=>{try{if(\"privacy-first\"===this.redactionManager.getRedactionMode())return;const t=\"undefined\"!=typeof document?document.querySelector(`[data-rrweb-id=\"${e.id}\"]`):null;if(t&&t instanceof HTMLElement){this.redactionManager.shouldUnredactElement(t)||(void 0!==e.text&&(e.text=\"*\".repeat(e.text?.length||1)),void 0!==e.value&&(e.value=\"*\".repeat(e.value?.length||1)));}}catch{}}}});this.recordInstance=t||null;};if(c(`🎯 DOM ready state: ${document.readyState}`),\"complete\"===document.readyState||\"interactive\"===document.readyState)c(`🎯 DOM ready (${document.readyState}), starting recording immediately`),t();else {c(\"🎯 DOM not ready, waiting for DOMContentLoaded event\");const e=()=>(\"interactive\"===document.readyState||\"complete\"===document.readyState)&&(c(`🎯 DOM ready (${document.readyState}), starting recording`),t(),true);if(e())return;document.addEventListener(\"DOMContentLoaded\",()=>{c(\"🎯 DOMContentLoaded fired, starting recording\"),t();},{once:true});const s=setInterval(()=>{e()&&clearInterval(s);},10);setTimeout(()=>clearInterval(s),5e3);}}emitVisibilityMarker(e){try{const t={type:5,data:{tag:\"$visibility\",payload:{state:e}},timestamp:Date.now()};this.eventQueue.push(t);}catch{}}emitFocusMarker(e){try{const t={type:5,data:{tag:\"$focus\",payload:{state:e}},timestamp:Date.now()};this.eventQueue.push(t);}catch{}}setupWindowFocusTracking(){if(D){try{\"function\"!=typeof document.hasFocus||document.hasFocus()||(this.emitFocusMarker(\"blurred\"),this.lastEmittedFocusState=\"blurred\");}catch{}window.addEventListener(\"blur\",()=>this.onWindowBlur(),false),window.addEventListener(\"focus\",()=>this.onWindowFocus(),false);}}onWindowBlur(){D&&(null!==this.focusBlurGraceTimeout&&clearTimeout(this.focusBlurGraceTimeout),this.focusBlurGraceTimeout=window.setTimeout(()=>{this.focusBlurGraceTimeout=null;try{if(\"function\"==typeof document.hasFocus&&document.hasFocus())return;if(\"blurred\"===this.lastEmittedFocusState)return;this.emitFocusMarker(\"blurred\"),this.lastEmittedFocusState=\"blurred\";}catch{}},this.FOCUS_BLUR_GRACE_MS));}onWindowFocus(){if(D&&(null!==this.focusBlurGraceTimeout&&(clearTimeout(this.focusBlurGraceTimeout),this.focusBlurGraceTimeout=null),\"blurred\"===this.lastEmittedFocusState))try{this.emitFocusMarker(\"focused\"),this.lastEmittedFocusState=\"focused\";}catch{}}takeFullSnapshot(){this.fullSnapshotTimeout&&clearTimeout(this.fullSnapshotTimeout),this.fullSnapshotTimeout=window.setTimeout(()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{try{this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.takeFullSnapshot?(this.rrwebRecord.takeFullSnapshot(),c(\"✅ FullSnapshot taken (delayed for animations)\")):a(\"⚠️ takeFullSnapshot not available on record function\");}catch(e){o(\"❌ Failed to take FullSnapshot:\",e);}});});},1e3);}async stop(){await this.ensureInitialized(),D&&(this.flushInterval&&(clearInterval(this.flushInterval),this.flushInterval=null),this.heartbeatInterval&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null),this.recordInstance&&(this.recordInstance(),this.recordInstance=null),this.fullSnapshotTimeout&&(clearTimeout(this.fullSnapshotTimeout),this.fullSnapshotTimeout=null),null!==this.focusBlurGraceTimeout&&(clearTimeout(this.focusBlurGraceTimeout),this.focusBlurGraceTimeout=null),this.rrwebRecord=null,this.disableConsoleTracking(),this.cleanupNavigationTracking(),this.deadClickTracker.mutationObserver&&(this.deadClickTracker.mutationObserver.disconnect(),this.deadClickTracker.mutationObserver=void 0),this.deadClickTracker.pendingClicks.forEach((e,t)=>{e.cancelled||clearTimeout(e.timer);}),this.deadClickTracker.pendingClicks.clear());}async addEvent(e){if(D&&this.checkAndRefreshSession(),e&&\"object\"==typeof e){if(2===e.type){const t=!!e.data,s=!(!e.data||!e.data.node);c(t&&s?`✅ Valid FullSnapshot: hasData=${t}, hasNode=${s}, dataType=${e.data?.node?.type}`:`⚠️ Empty FullSnapshot detected: hasData=${t}, hasNode=${s} - continuing session`);}this.eventQueue.length>=this.MAX_QUEUE_SIZE&&(this.eventQueue.shift(),c(\"Queue is full, the oldest event is dropped.\")),this.eventQueue.push(e),2===e.type?(c(\"FullSnapshot added, triggering immediate flush\"),this.flushEvents()):this.eventQueue.length>=.8*this.MAX_QUEUE_SIZE&&(c(`Queue at ${this.eventQueue.length}/${this.MAX_QUEUE_SIZE}, triggering immediate flush`),this.flushEvents());}else c(\"⚠️ Skipping invalid event:\",e);}getSessionDuration(){const e=this._sessionStartTimestamp??this.sessionStartTime;if(!e)return null;const t=this.eventQueue.filter(e=>e&&e.timestamp);if(0===t.length)return null;const s=t.reduce((e,t)=>!e||t.timestamp&&t.timestamp>e.timestamp?t:e,null);if(!s||!s.timestamp)return null;const i=s.timestamp-e;return i>=0?i:null}shouldSkipDueToMinimumDuration(){const e=this.minimumDurationMilliseconds,t=this.getSessionDuration();return !!(null!==t&&t>=0&&t<e)&&(c(`Session duration (${t}ms) below minimum (${e}ms), skipping send`),true)}async flushEvents(){if(this.isProcessing)return;if(this.monthlyLimitReached)return;if(true===this._isIdle&&0===this.eventQueue.length)return;const e=this.minimumDurationMilliseconds,t=this.getSessionDuration();if(null!==t&&t>=0&&t<e)return c(`Session duration (${t}ms) below minimum (${e}ms), buffering`),void setTimeout(()=>{this.flushEvents();},2e3);this.isProcessing=true;try{const e=this.eventQueue,t=e.filter(e=>e&&2===e.type);if(this.eventQueue=[],t.length>0&&D&&(window.__hb_pending_snapshots=t,setTimeout(()=>{delete window.__hb_pending_snapshots;},5e3)),e.length>0){c(\"Flushing events:\",e);const t=e.filter(e=>2===e.type);t.length>0&&c(`[FIXED] Sending ${t.length} FullSnapshot(s) with valid data`);try{const t=this.propertyManager.getAutomaticProperties();await this.api.sendEventsChunked(e,this.sessionId,this.endUserId,this.windowId,t);}catch(e){if(e.message?.includes(\"ERROR: Session already completed\"))a(\"Session expired, events will be lost\");else if(e.message?.includes(\"413\")||e.message?.includes(\"Content Too Large\"))a(\"Payload too large, events will be lost\");else {if(!(e.message?.includes(\"ERR_BLOCKED_BY_CLIENT\")||e.message?.includes(\"Failed to fetch\")||e.message?.includes(\"NetworkError\")))throw e;a(\"Request blocked by ad blocker or network issue, events will be lost\");}}}await this.flushPendingCustomEvents(),await this.flushPendingLogs(),await this.flushPendingNetworkErrors();}finally{this.isProcessing=false;}}isInteractiveEvent(e){if(3!==e.type)return false;const t=e.data?.source;return [1,2,3,4,5,6,11].includes(t)}updateIdleState(e){const t=this.isInteractiveEvent(e),s=e.timestamp||Date.now();if(t){const e=true===this._isIdle;this._lastActivityTimestamp=s,null!==this._sessionActivityTimestamp&&(this._sessionActivityTimestamp=s),e?(c(\"✅ User activity detected, exiting idle state\"),this._isIdle=false,this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.takeFullSnapshot&&(this.rrwebRecord.takeFullSnapshot(),c(\"✅ FullSnapshot taken after returning from idle\"))):\"unknown\"===this._isIdle&&(this._isIdle=false);}else if(true!==this._isIdle){const e=s-this._lastActivityTimestamp;e>this.IDLE_THRESHOLD_MS&&(c(`⏸️ Session idle detected (${Math.round(e/1e3)}s since last activity) - stopping background event recording`),c(`ℹ️ Session will expire after ${Math.round(this.SESSION_IDLE_TIMEOUT_MS/6e4)} minutes of inactivity (${Math.round((this.SESSION_IDLE_TIMEOUT_MS-e)/1e3)}s remaining)`),this._isIdle=true,this.flushEvents());}}async addRecordingEvent(e){if(D&&this.checkAndRefreshSession(),e&&\"object\"==typeof e){if(this.updateIdleState(e),true!==this._isIdle||3!==e.type||this.isInteractiveEvent(e)){if(2===e.type){const t=!!e.data,s=!(!e.data||!e.data.node);c(t&&s?`✅ Valid FullSnapshot: hasData=${t}, hasNode=${s}, dataType=${e.data?.node?.type}`:`⚠️ Empty FullSnapshot detected: hasData=${t}, hasNode=${s} - continuing session`);}this.eventQueue.length>=this.MAX_QUEUE_SIZE&&(this.eventQueue.shift(),c(\"Queue is full, the oldest event is dropped.\")),this.eventQueue.push(e),2===e.type?(c(\"FullSnapshot added, triggering immediate flush\"),this.flushEvents()):true!==this._isIdle&&this.eventQueue.length>=.8*this.MAX_QUEUE_SIZE&&(c(`Queue at ${this.eventQueue.length}/${this.MAX_QUEUE_SIZE}, triggering immediate flush`),this.flushEvents());}}else c(\"⚠️ Skipping invalid recording event:\",e);}_canUseSessionStorage(){if(!D)return false;try{const e=\"__sessionStorage_test__\";return sessionStorage.setItem(e,e),sessionStorage.removeItem(e),!0}catch{return false}}_getWindowIdFromStorage(){if(!this._canUseSessionStorage())return null;try{return sessionStorage.getItem(this._window_id_storage_key)}catch{return null}}_setWindowIdInStorage(e){if(this._canUseSessionStorage())try{sessionStorage.setItem(this._window_id_storage_key,e),c(`Stored windowId in sessionStorage: ${e}`);}catch(e){a(\"Failed to store windowId in sessionStorage:\",e);}}_removeWindowIdFromStorage(){if(this._canUseSessionStorage())try{sessionStorage.removeItem(this._window_id_storage_key);}catch(e){a(\"Failed to remove windowId from sessionStorage:\",e);}}_getPrimaryWindowExists(){if(!this._canUseSessionStorage())return false;try{return \"true\"===sessionStorage.getItem(this._primary_window_exists_storage_key)}catch{return false}}_setPrimaryWindowExists(e){if(this._canUseSessionStorage())try{e?sessionStorage.setItem(this._primary_window_exists_storage_key,\"true\"):sessionStorage.removeItem(this._primary_window_exists_storage_key);}catch(e){a(\"Failed to set primary_window_exists flag:\",e);}}getOrCreateWindowId(){if(!D)return v1();const e=this._getWindowIdFromStorage(),s=this._getPrimaryWindowExists();if(e&&!s)return c(`Reusing windowId from previous page load: ${e}`),this._setWindowIdInStorage(e),this._setPrimaryWindowExists(true),e;{const e=v1();return c(`Creating new windowId: ${e} (new window/tab detected)`),this._setWindowIdInStorage(e),this._setPrimaryWindowExists(true),e}}setupWindowUnloadListener(){D&&window.addEventListener(\"beforeunload\",()=>{this._canUseSessionStorage()&&(this._setPrimaryWindowExists(false),c(\"Cleared primary_window_exists flag on beforeunload\"));},{capture:false});}setCookie(e,t,s){if(D)try{const i=new Date;i.setTime(i.getTime()+24*s*60*60*1e3);const n=`expires=${i.toUTCString()}`;document.cookie=`${e}=${t};${n};path=/;SameSite=Lax`,localStorage.setItem(e,t),c(`Set cookie and localStorage: ${e}`);}catch(s){try{localStorage.setItem(e,t),c(`Cookie blocked, using localStorage: ${e}`);}catch(e){o(\"Failed to store user ID in both cookie and localStorage:\",e);}}}getCookie(e){if(!D)return null;try{const t=e+\"=\",s=document.cookie.split(\";\");for(let i=0;i<s.length;i++){let n=s[i];for(;\" \"===n.charAt(0);)n=n.substring(1,n.length);if(0===n.indexOf(t)){const s=n.substring(t.length,n.length);return c(`Found cookie: ${e}`),s}}const i=localStorage.getItem(e);return i?(c(`Cookie not found, using localStorage: ${e}`),i):null}catch(t){try{const t=localStorage.getItem(e);if(t)return c(`Cookie access failed, using localStorage: ${e}`),t}catch(e){o(\"Failed to access both cookie and localStorage:\",e);}return null}}deleteCookie(e){if(D){try{document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; SameSite=Lax`,c(`Deleted cookie: ${e}`);}catch(t){o(`Failed to delete cookie: ${e}`,t);}try{localStorage.removeItem(e),c(`Removed from localStorage: ${e}`);}catch(t){o(`Failed to remove from localStorage: ${e}`,t);}}}logout(){if(D)try{const e=\"human_behavior_end_user_id\";this.deleteCookie(e);const s=\"human_behavior_session\";localStorage.removeItem(s),this.endUserId=null,this.userProperties={},this.endUserId=v1(),this.setCookie(\"human_behavior_end_user_id\",this.endUserId,365),this.sessionId=this.createNewSession(s),this.windowId=v1(),this._setWindowIdInStorage(this.windowId),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),d(\"User logged out - cleared all user data and started fresh session\");}catch(e){o(\"Error during logout:\",e);}}async redact(e){await this.ensureInitialized(),D?this.redactionManager=new v(e):a(\"Redaction is only available in browser environments\");}setRedactedFields(e){this.redactionManager.setFieldsToRedact(e),this.recordInstance&&this.restartWithNewRedaction();}setUnredactedFields(e){this.redactionManager.setFieldsToUnredact(e),this.recordInstance&&this.restartWithNewRedaction();}restartWithNewRedaction(){this.recordInstance&&(this.recordInstance(),this.start());}hasUnredactedFields(){return this.redactionManager.hasUnredactedFields()}getUnredactedFields(){return this.redactionManager.getUnredactedFields()}redactFields(e){this.redactionManager.redactFields(e),this.recordInstance&&this.restartWithNewRedaction();}clearUnredactedFields(){this.redactionManager.clearUnredactedFields(),this.recordInstance&&this.restartWithNewRedaction();}checkAndRefreshSession(){if(!D)return;const e=\"human_behavior_session\",s=Date.now(),i=this.getStoredSession(e);if(!i||!i.sessionId)return this.createNewSession(e),this.windowId=v1(),this._setWindowIdInStorage(this.windowId),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),void c(`Created new session (no stored session): ${this.sessionId}`);this.updateSessionActivity(e,s,i.sessionId,i.sessionStartTimestamp);}getOrCreateSessionId(){if(!D)return v1();const e=\"human_behavior_session\",s=Date.now(),i=this.getStoredSession(e);if(!i||!i.sessionId){const t=this.createNewSession(e);return this.api.setTrackingContext(t,this.endUserId),t}const n=s-i.lastActivityTimestamp,r=s-i.sessionStartTimestamp;if(n>this.SESSION_IDLE_TIMEOUT_MS||r>this.SESSION_MAX_LENGTH_MS){c(`Session expired: idle=${n}ms, age=${r}ms`);const t=this.createNewSession(e);return this.api.setTrackingContext(t,this.endUserId),t}return this.updateSessionActivity(e,s,i.sessionId,i.sessionStartTimestamp),i.sessionId}getStoredSession(e){const s=Date.now(),i=this.SESSION_IDLE_TIMEOUT_MS,n=this.SESSION_MAX_LENGTH_MS;if(this.sessionId&&null!==this._sessionActivityTimestamp&&null!==this._sessionStartTimestamp){const r=s-this._sessionActivityTimestamp,o=s-this._sessionStartTimestamp;if(!(r>i||o>n))return {sessionId:this.sessionId,lastActivityTimestamp:this._sessionActivityTimestamp,sessionStartTimestamp:this._sessionStartTimestamp};{c(\"Session in memory expired: creating new session immediately\");const s=this.sessionId;if(this.createNewSession(e),this.windowId=v1(),this._setWindowIdInStorage(this.windowId),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),d(`🔄 Session timeout (memory): Created new session ${this.sessionId} (previous: ${s})`),null!==this._sessionActivityTimestamp&&null!==this._sessionStartTimestamp)return {sessionId:this.sessionId,lastActivityTimestamp:this._sessionActivityTimestamp,sessionStartTimestamp:this._sessionStartTimestamp}}}try{const r=localStorage.getItem(e);if(!r)return null;const o=JSON.parse(r),a=s-o.lastActivityTimestamp,l=s-o.sessionStartTimestamp;if(a>i||l>n){c(`Session in localStorage expired: idle=${Math.round(a/1e3/60)}min, age=${Math.round(l/1e3/60/60)}hrs`);const s=o.sessionId;if(this.createNewSession(e),this.windowId=v1(),this._setWindowIdInStorage(this.windowId),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),d(`🔄 Session timeout (localStorage): Created new session ${this.sessionId} (previous: ${s})`),null!==this._sessionActivityTimestamp&&null!==this._sessionStartTimestamp)return {sessionId:this.sessionId,lastActivityTimestamp:this._sessionActivityTimestamp,sessionStartTimestamp:this._sessionStartTimestamp}}return o.sessionId&&(this.sessionId=o.sessionId,this._sessionActivityTimestamp=o.lastActivityTimestamp,this._sessionStartTimestamp=o.sessionStartTimestamp),o}catch{return null}}createNewSession(e){const s=v1(),i=Date.now();this.sessionId=s,this._sessionActivityTimestamp=i,this._sessionStartTimestamp=i,this._lastActivityTimestamp=i;const n={sessionId:s,lastActivityTimestamp:i,sessionStartTimestamp:i};try{localStorage.setItem(e,JSON.stringify(n));}catch(e){a(`Failed to save session to localStorage: ${e}`);}return c(`Created new session: ${s}`),s}updateSessionActivity(e,t,s,i){this.sessionId=s,this._sessionActivityTimestamp=t,this._sessionStartTimestamp=i;const n={sessionId:s,lastActivityTimestamp:t,sessionStartTimestamp:i};try{localStorage.setItem(e,JSON.stringify(n));}catch(e){a(`Failed to update session in localStorage: ${e}`);}}getSessionId(){return this.sessionId}getCurrentUrl(){return D&&\"undefined\"!=typeof window&&window.location?window.location.href:this.currentUrl}getSnapshotFrequencyInfo(){return {sessionDuration:Date.now()-this.sessionStartTime,currentInterval:3e5,currentThreshold:1e3,phase:\"configured\"}}async testConnection(){try{return await this.api.init(this.sessionId,this.endUserId),{success:!0}}catch(e){return {success:false,error:e.message||\"Unknown error\"}}}getConnectionStatus(){const e=[];let t=false;return this.eventQueue.length>0&&(t=true,e.push(\"Some requests may be blocked by ad blockers\")),this._connectionBlocked&&(t=true,e.push(\"Initial connection test failed - ad blocker may be active\")),\"undefined\"==typeof window&&e.push(\"Not running in browser environment\"),void 0===navigator.sendBeacon&&e.push(\"sendBeacon not available, using fetch fallback\"),{blocked:t,recommendations:e}}isPreexistingUser(){if(!D)return false;const e=this.getCookie(\"human_behavior_end_user_id\");return null!==e&&e!==this.endUserId}getUserInfo(){return {endUserId:this.endUserId,sessionId:this.sessionId,isPreexistingUser:this.isPreexistingUser(),initialized:this.initialized}}setSessionProperty(e,t){this.propertyManager.setSessionProperty(e,t);}setSessionProperties(e){this.propertyManager.setSessionProperties(e);}getSessionProperty(e){return this.propertyManager.getSessionProperty(e)}removeSessionProperty(e){this.propertyManager.removeSessionProperty(e);}setUserProperty(e,t){this.propertyManager.setUserProperty(e,t);}setUserProperties(e){this.propertyManager.setUserProperties(e);}getUserProperty(e){return this.propertyManager.getUserProperty(e)}removeUserProperty(e){this.propertyManager.removeUserProperty(e);}setOnce(e,t,s=\"user\"){this.propertyManager.setOnce(e,t,s);}clearSessionProperties(){this.propertyManager.clearSessionProperties();}clearUserProperties(){this.propertyManager.clearUserProperties();}getAllProperties(){return this.propertyManager.getAllProperties()}}function F(e){const t=globalThis.__humanBehaviorGlobalTracker;return t?.identifyUser?t.identifyUser({userProperties:e}):(console.warn(\"HumanBehavior tracker not found. Make sure the SDK is initialized.\"),null)}function L(e,t){const s=(\"undefined\"!=typeof window?window:globalThis).__humanBehaviorGlobalTracker;return s?.customEvent?s.customEvent(e,t):s?.track?s.track(e,t):(console.warn(\"HumanBehavior tracker not found. Make sure the SDK is initialized.\"),null)}function R(){const e=globalThis.__humanBehaviorGlobalTracker;return !!e?.identifyUser}D&&(window.HumanBehaviorTracker=P);\n\n/**\n * Main entry point for the HumanBehavior SDK\n */\n// Import the main tracker first\n// Create an initialization function\nconst init = (apiKey, ingestionUrl, options) => {\n return new P(apiKey, ingestionUrl, options);\n};\n// For UMD builds, expose the class and init function globally\nif (typeof window !== 'undefined') {\n window.HumanBehaviorTracker = P;\n window.humanbehavior = { init };\n}\n\nexport { y as HumanBehaviorAPI, P as HumanBehaviorTracker, s as LogLevel, U as PropertyManager, v as RedactionManager, I as getAutomaticProperties, C as getCurrentPageProperties, T as getDeviceInfo, b as getInitialProperties, E as getLocationInfo, F as identifyUserGlobally, init, R as isGlobalTrackerAvailable, r as isSDKLogging, c as logDebug, o as logError, d as logInfo, a as logWarn, i as logger, L as sendEventGlobally };\n//# sourceMappingURL=index.js.map\n","import React, { useEffect, useState, createContext, useContext, ReactNode, useCallback, useMemo, useRef } from \"react\";\nimport { HumanBehaviorTracker, logError, logWarn, logDebug } from \"./browser\";\n\n// Check if we're in a browser environment\nconst isBrowser = () => typeof window !== 'undefined';\n\n// Define the public interface that components will interact with\ninterface HumanBehaviorInterface {\n addEvent: (event: any) => void;\n identifyUser: ({ userProperties }: { userProperties: Record<string, any> }) => Promise<string>;\n start: () => void;\n stop: () => void;\n logout: () => void;\n viewLogs: () => void;\n setUnredactedFields: (fields: string[]) => void;\n hasUnredactedFields: () => boolean;\n getUnredactedFields: () => string[];\n trackPageView: () => void;\n}\n\ninterface HumanBehaviorContextType {\n humanBehavior: HumanBehaviorTracker | null;\n queueEvent: (event: any) => void;\n}\n\ninterface HumanBehaviorProviderProps {\n // Either provide an apiKey to create a new client, or provide an existing client\n apiKey?: string;\n client?: HumanBehaviorTracker;\n children: ReactNode;\n options?: {\n ingestionUrl?: string;\n logLevel?: 'none' | 'error' | 'warn' | 'info' | 'debug';\n redactFields?: string[]; // DEPRECATED: Use redactionStrategy instead\n redactionStrategy?: {\n mode: 'privacy-first' | 'visibility-first'; // Default: 'privacy-first'\n unredactFields?: string[]; // Fields to make visible (when mode: 'privacy-first')\n redactFields?: string[]; // Fields to hide (when mode: 'visibility-first')\n };\n enableAutomaticTracking?: boolean;\n suppressConsoleErrors?: boolean;\n recordCanvas?: boolean; // Enable canvas recording with protection\n enableAutomaticProperties?: boolean; // Enable automatic property detection\n propertyDenylist?: string[]; // Properties to exclude from tracking\n automaticTrackingOptions?: {\n trackButtons?: boolean;\n trackLinks?: boolean;\n trackForms?: boolean;\n includeText?: boolean;\n includeClasses?: boolean;\n };\n maxQueueSize?: number; // Configurable queue size\n enableConsoleTracking?: boolean; // Enable console warn/error tracking (default: true, set to false to opt-out)\n enableNetworkTracking?: boolean; // Enable network error tracking (default: true, set to false to opt-out)\n };\n}\n\n// Default context to prevent unnecessary re-renders\nconst defaultContext: HumanBehaviorContextType = {\n humanBehavior: null,\n queueEvent: (event: any) => {\n // In server-side, just no-op\n if (typeof window === 'undefined') {\n return;\n }\n logWarn('HumanBehavior not initialized yet, event queued:', event);\n }\n};\n\nconst HumanBehaviorContext = createContext<HumanBehaviorTracker | HumanBehaviorInterface | null>(null);\n\nexport const HumanBehaviorProvider = ({ apiKey, client, children, options }: HumanBehaviorProviderProps) => {\n const [humanBehavior, setHumanBehavior] = useState<HumanBehaviorTracker | null>(client || null);\n const [eventQueue, setEventQueue] = useState<any[]>([]);\n const [isMounted, setIsMounted] = useState(false);\n const [isInitialized, setIsInitialized] = useState(false);\n \n // Use refs to avoid dependency issues in useEffect\n const apiKeyRef = useRef(apiKey);\n const clientRef = useRef(client);\n const eventQueueRef = useRef(eventQueue);\n \n // Update refs when props change\n useEffect(() => {\n apiKeyRef.current = apiKey;\n clientRef.current = client;\n }, [apiKey, client]);\n \n // Update eventQueue ref when queue changes\n useEffect(() => {\n eventQueueRef.current = eventQueue;\n }, [eventQueue]);\n\n // Memoized queueEvent function to prevent unnecessary re-renders\n const queueEvent = useCallback((event: any) => {\n setEventQueue(prev => [...prev, event]);\n }, []);\n\n // Handle mounting state\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n useEffect(() => {\n // Only run in browser\n if (!(isBrowser())) {\n return;\n }\n\n // If client is provided, use that\n if (clientRef.current) {\n setHumanBehavior(clientRef.current);\n setIsInitialized(true);\n return;\n }\n\n // If no client is provided, apiKey is required\n if (!apiKeyRef.current || apiKeyRef.current.trim() === '') {\n logError(\"An apiKey is required when no client is provided\");\n return;\n }\n\n // Prevent multiple initializations\n if (humanBehavior !== null) {\n return;\n }\n\n try {\n \n // Create new tracker instance with the validated apiKey and options\n const tracker = HumanBehaviorTracker.init(\n apiKeyRef.current.trim(),\n {\n ingestionUrl: options?.ingestionUrl,\n logLevel: options?.logLevel,\n redactFields: options?.redactFields, // Legacy support\n redactionStrategy: options?.redactionStrategy, // New redaction strategy\n enableAutomaticTracking: options?.enableAutomaticTracking,\n suppressConsoleErrors: options?.suppressConsoleErrors,\n recordCanvas: options?.recordCanvas,\n enableAutomaticProperties: options?.enableAutomaticProperties,\n propertyDenylist: options?.propertyDenylist,\n automaticTrackingOptions: options?.automaticTrackingOptions,\n maxQueueSize: options?.maxQueueSize,\n enableConsoleTracking: options?.enableConsoleTracking,\n enableNetworkTracking: options?.enableNetworkTracking,\n }\n );\n \n setHumanBehavior(tracker);\n\n // Mark as initialized immediately (don't wait for server init)\n setIsInitialized(true);\n \n // Start tracking in background\n tracker.initializationPromise?.then(async () => {\n // Only start if not already started\n if (!tracker.isTrackerStarted) {\n await tracker.start();\n }\n \n // Process any queued events\n const currentQueue = eventQueueRef.current;\n if (currentQueue.length > 0) {\n for (const event of currentQueue) {\n if (event.type === 'identify') {\n logDebug('Processing queued identify event', event);\n try {\n await tracker.identifyUser({ userProperties: event.userProperties });\n } catch (error) {\n logError('Failed to process queued user info:', error);\n }\n } else {\n tracker.addEvent(event);\n }\n }\n setEventQueue([]); // Clear the queue\n }\n }).catch(error => {\n logError('Failed to initialize HumanBehaviorTracker:', error);\n });\n } catch (error) {\n logError('Failed to create HumanBehaviorTracker:', error);\n }\n }, [isMounted]); // Removed humanBehavior from dependencies to prevent infinite loop\n\n // Memoized context value to prevent unnecessary re-renders\n const contextValue = useMemo(() => {\n if (!isMounted) {\n return createQueuingImplementation(queueEvent);\n }\n \n if (!isInitialized) {\n return createQueuingImplementation(queueEvent);\n }\n \n return humanBehavior;\n }, [isMounted, isInitialized, humanBehavior, queueEvent]);\n\n // If not in browser, render children without context\n if (!(isBrowser())) {\n return <>{children}</>;\n }\n\n return (\n <HumanBehaviorContext.Provider value={contextValue}>\n <HumanBehaviorPageView />\n {children}\n </HumanBehaviorContext.Provider>\n );\n};\n\n// Default implementation for when tracker is not available\nconst defaultImplementation: HumanBehaviorInterface = {\n addEvent: () => {},\n identifyUser: async ({ userProperties }: { userProperties: Record<string, any> }) => {\n return '';\n },\n start: () => {},\n stop: () => {},\n logout: () => {},\n viewLogs: () => {},\n setUnredactedFields: () => {},\n hasUnredactedFields: () => false,\n getUnredactedFields: () => [],\n trackPageView: () => {},\n};\n\n// Memoized queuing implementation for initialization period\nconst createQueuingImplementation = (queueEvent: (event: any) => void): HumanBehaviorInterface => ({\n addEvent: (event: any) => {\n queueEvent(event);\n },\n identifyUser: async ({ userProperties }: { userProperties: Record<string, any> }) => {\n queueEvent({\n type: 'identify',\n userProperties,\n });\n return ''; // Return empty string to match interface\n },\n start: () => {\n // Start will be called automatically when initialized\n },\n stop: () => {\n // Stop is a no-op when not initialized\n },\n logout: () => {\n // Logout is a no-op when not initialized\n },\n viewLogs: () => {\n logWarn('Logs are not available until HumanBehaviorTracker is initialized');\n },\n setUnredactedFields: () => {},\n hasUnredactedFields: () => false,\n getUnredactedFields: () => [],\n trackPageView: () => {},\n});\n\nexport const useHumanBehavior = () => {\n const tracker = useContext(HumanBehaviorContext);\n if (!tracker) {\n throw new Error('useHumanBehavior must be used within a HumanBehaviorProvider');\n }\n return tracker;\n};\n\n// Custom hook for managing unredaction fields dynamically\nexport const useRedaction = () => {\n const tracker = useHumanBehavior();\n \n const setUnredactedFields = useCallback((fields: string[]) => {\n tracker.setUnredactedFields(fields);\n }, [tracker]);\n \n const hasUnredactedFields = useCallback(() => {\n return tracker.hasUnredactedFields();\n }, [tracker]);\n \n const getUnredactedFields = useCallback(() => {\n return tracker.getUnredactedFields();\n }, [tracker]);\n \n return {\n setUnredactedFields,\n hasUnredactedFields,\n getUnredactedFields\n };\n};\n\n// Custom hook for managing user info\nexport const useUserTracking = () => {\n const tracker = useHumanBehavior();\n \n const identifyUser = useCallback(async ({ userProperties }: { userProperties: Record<string, any> }) => {\n try {\n await tracker.identifyUser({ userProperties });\n return { success: true };\n } catch (error) {\n logError('Failed to identify user:', error);\n return { success: false, error };\n }\n }, [tracker]);\n \n return {\n identifyUser\n };\n};\n\n// Automatic page tracking component\nfunction HumanBehaviorPageView() {\n const tracker = useContext(HumanBehaviorContext);\n\n useEffect(() => {\n if (tracker && typeof window !== 'undefined') {\n // Track initial page load\n tracker.trackPageView();\n\n // Listen for route changes (for SPAs)\n const handleRouteChange = () => {\n tracker.trackPageView();\n };\n\n // Listen for popstate (back/forward navigation)\n window.addEventListener('popstate', handleRouteChange);\n\n // Listen for pushstate/replacestate (programmatic navigation)\n const originalPushState = history.pushState;\n const originalReplaceState = history.replaceState;\n\n history.pushState = function(...args) {\n originalPushState.apply(this, args);\n handleRouteChange();\n };\n\n history.replaceState = function(...args) {\n originalReplaceState.apply(this, args);\n handleRouteChange();\n };\n\n return () => {\n window.removeEventListener('popstate', handleRouteChange);\n history.pushState = originalPushState;\n history.replaceState = originalReplaceState;\n };\n }\n }, [tracker]);\n\n return null;\n}\n\n// Export the tracker class for direct use\nexport { HumanBehaviorTracker };\n"],"names":["_a","__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","__defProp$1","__publicField$1","__defNormalProp$1","NodeType$3","NodeType2","testableAccessors$1","Node","ShadowRoot","Element","MutationObserver","testableMethods$1","untaintedBasePrototype$1","getUntaintedPrototype$1","defaultObj","globalThis","defaultPrototype","prototype","accessorNames","isUntaintedAccessors","Boolean","every","accessor","_a2","_b","getOwnPropertyDescriptor","get","toString","includes","methodNames","isUntaintedMethods","method","Zone","iframeEl","document","createElement","body","appendChild","win","contentWindow","untaintedObject","removeChild","untaintedAccessorCache$1","getUntaintedAccessor$1","instance","cacheKey","String","call","untaintedPrototype","untaintedAccessor","untaintedMethodCache$1","getUntaintedMethod$1","bind","untaintedMethod","index$1","ownerDocument","n2","childNodes","parentNode","parentElement","textContent","contains","other","getRootNode","host","styleSheets","shadowRoot","querySelector","selectors","querySelectorAll","mutationObserver","constructor","patch","source","name","replacement","original","wrapped","defineProperties","__rrweb_original__","isElement","nodeType","ELEMENT_NODE","isShadowRoot","hostEl","isNativeShadowDom","shadowRoot2","stringifyStylesheet","s2","rules2","rules","cssRules","sheetHref","href","ownerNode","baseURI","stringifiedRules","Array","from","rule2","stringifyRule","join","cssText","replace","error","isCSSImportRule","importStringified","styleSheet","split","length","statement","JSON","stringify","layerName","push","supportsText","media","mediaText","escapeImportStatement","absolutifyURLs","ruleStringified","isCSSStyleRule","selectorText","cssStringified","regex","fixSafariColons","Mirror","this","Map","WeakMap","getId","getMeta","id","getNode","idNodeMap","getIds","keys","nodeMetaMap","removeNodeFromMap","delete","forEach","childNode","has","hasNode","node2","add","meta","set","oldNode","reset","maskInputValue","element","maskInputOptions","tagName","type","maskInputFn","text","actualType","toLowerCase","repeat","str","ORIGINAL_ATTRIBUTE_NAME","getInputType","hasAttribute","extractFileExtension","path","baseURL","url","URL","window","location","err","match","pathname","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","origin","quote1","path1","quote2","path2","path3","filePath","maybeQuote","test","indexOf","slice","extractOrigin","stack","parts","pop","part","normalizeCssString","_testNoPxNorm","markCssSplits","style","childNodes2","splits","iterCount","cssTextNorm","normFactor","i2","textContentNorm","jLimit","j","substring","startSubstring","cssNormSplits","splitNorm","prevTextContent","prevMinLength","k","Math","floor","normPart","max","splitCssText","_id","tagNameRegex","RegExp","genId","canvasService","canvasCtx","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","cachedDocument","absoluteToDoc","doc","attributeValue","trim","getHref","isSVGElement","el","ownerSVGElement","customHref","a2","startsWith","setAttribute","transformAttribute","pos","collectCharacters","regEx","chars2","exec","output","descriptorsStr","inParens","c2","charAt","getAbsoluteSrcsetString","ignoreAttribute","_value","classMatchesRegex","checkAncestors","eIndex","classList","className","needMaskingText","maskTextClass","maskTextSelector","closest","matches","e2","serializeNode","options","mirror","mirror2","blockClass","blockSelector","needsMask","inlineStylesheet","maskTextFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","cssCaptured","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName$1","attributes","len","attr","stylesheet","find","rel","_cssText","sheet","checked","selected","open","rr_open_mode","__context","canvas","ctx","getContext","x2","width","y","height","getImageData","originalGetImageData","Uint32Array","min","data","buffer","some","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image","imageSrc","currentSrc","getAttribute","priorCrossOrigin","crossOrigin","recordInlineImage","removeEventListener","naturalWidth","naturalHeight","drawImage","complete","addEventListener","console","warn","removeAttribute","mediaAttributes","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","rr_mediaPlaybackRate","playbackRate","rr_mediaMuted","muted","rr_mediaLoop","loop","rr_mediaVolume","volume","scrollLeft","rr_scrollLeft","scrollTop","rr_scrollTop","getBoundingClientRect","class","rr_width","rr_height","src","contentDocument","rr_src","isCustomElement","customElements","isSVG","isCustom","serializeElementNode","TEXT_NODE","parent","parentTagName","textContent2","isStyle","isScript","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","slimDOMDefaults","_slimDOMOptions","script","comment","headFavicon","headWhitespace","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaVerification","headMetaAuthorship","headMetaDescKeywords","headTitleMutations","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","sn","as","property","slimDOMExcluded","serializedNode","assign","recordChild","shadowRootEl","isShadowHost","bypassOptions","childN","serializedChildNode","isShadow","listener","readyState","fired","timer","setTimeout","clearTimeout","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","link","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","getDefaultExportFromCjs$1","__esModule","hasOwnProperty","getAugmentedNamespace$1","f2","default","a22","Reflect","construct","arguments","apply","d","picocolors_browser$1","exports","x$1","create$1","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","picocolors_browserExports$1","require$$2$1","freeze","__proto__","Symbol","toStringTag","pico$1","terminalHighlight$1$1","CssSyntaxError$3$1","CssSyntaxError","Error","message","line","column","file","plugin22","super","reason","plugin","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","start","end","maxWidth","map","index2","number","gutter","spacing","code","cssSyntaxError$1","symbols$1","isClean","my","DEFAULT_RAW$1","after","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","colon","commentLeft","commentRight","emptyBody","indent","semicolon","Stringifier$2$1","builder","atrule","params","rawValue","raws","afterName","nodes","block","between","beforeAfter","detect","raw","buf","depth","step","last","child","before","left","right","decl","string","prop","important","own","first","root2","root","rawCache","toUpperCase","walk","rawBeforeClose","rawBeforeComment","walkComments","rawBeforeDecl","walkDecls","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","p","rawSemicolon","rule","ownSemicolon","stringifier$1","Stringifier$1$1","stringify$4$1","stringify_1$1","isClean$2$1","my$2$1","CssSyntaxError$2$1","Stringifier2$1","stringify$3$1","cloneNode$1","cloned","isArray","Node$4$1","defaults","clone","append","addToError","postcssNode","input","insertAfter","overrides","insertBefore","cleanRaws","keepBetween","cloneAfter","cloneBefore","opts","rangeBy","getProxyProcessor","toProxy","markDirty","next","index","positionBy","stringRepresentation","positionInside","word","prev","endIndex","defaultType","remove","replaceWith","bookmark","foundSelf","result2","toJSON","_","inputs","fixed","emitInputs","inputsNextIndex","inputId","input2","proxyCache","Proxy","stringifier2","node","proxyOf","node$1","Node$3$1","Declaration$4$1","variable","declaration$1","nonSecure$1","nanoid","size","random","SourceMapConsumer","SourceMapConsumer$2$1","SourceMapGenerator","SourceMapGenerator$2$1","existsSync","existsSync$1","readFileSync","readFileSync$1","dirname","dirname$1$1","join$1","PreviousMap$2$1","loadAnnotation","inline","startWith","annotation","loadMap","mapFile","consumer","consumerCache","decodeInline","decodeURIComponent","substr","lastMatch","Buffer","atob","encoding","getAnnotationURL","sourceMapString","isMap","mappings","_mappings","sections","comments","lastIndexOf","loadFile","fromSourceMap","prevPath","withContent","sourcesContent","previousMap$1","SourceMapConsumer$1$1","SourceMapGenerator$1$1","fileURLToPath","fileURLToPath$1","pathToFileURL","pathToFileURL$1$1","isAbsolute","isAbsolute$1","resolve","resolve$1$1","nanoid$2","terminalHighlight$2","CssSyntaxError$1$1","PreviousMap$1$1","fromOffsetCache$1","sourceMapAvailable$1$1","pathAvailable$1$1","Input$4$1","hasBOM","mapResolve","offset","fromOffset","col","lastLine","lineToIndex","prevIndex","l2","mid","sourceRoot","to","fromUrl","originalPositionFor","protocol","sourceContentFor","json","input$1","registerInput","SourceMapConsumer$3","SourceMapGenerator$3","dirname$2","relative","relative$1","resolve$2","sep","sep$1","pathToFileURL$2","Input$3$1","sourceMapAvailable$2","pathAvailable$2","mapGenerator$1","stringify2","cssString","mapOpts","originalCSS","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","content","isInline","toBase64","outputFile","eol","applyPrevMaps","previous","toUrl","applySourceMap","clearAnnotation","generate","generateMap","generateString","ignoreInvalidMapping","addMapping","generated","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","charCodeAt","cached","previousMaps","already","toFileUrl","setSourceContent","btoa","unescape","encodeURIComponent","fileURL","encodeURI","Node$2$1","Comment$4$1","comment$1","parse$4$1","Rule$4$1","AtRule$4$1","Root$6$1","isClean$1$1","my$1$1","Declaration$3$1","Comment$3$1","Node$1$1","cleanSource$1","markDirtyUp$1","Container$7$1","Container","children","normalize","each","callback","iterator","getIterator","indexes","condition","lastEach","args","cb","exist","existIndex","reverse","splice","sample","selector","rebuild","prepend","unshift","removeAll","replaceValues","pattern","props","fast","walkAtRules","walkRules","registerParse","dependant","registerRule","registerAtRule","registerRoot","container$1","setPrototypeOf","LazyResult$4$1","Processor$3$1","Container$6$1","Document$3$1","toResult","registerLazyResult","registerProcessor","document$1$1","printed$1","warnOnce$2$1","Warning$2$1","range","opt","warning$1","Warning$1$1","Result$3$1","processor2","processor","messages","lastPlugin","postcssPlugin","warning2","warnings","filter","result$1","SINGLE_QUOTE$1","DOUBLE_QUOTE$1","BACKSLASH$1","SLASH$1","NEWLINE$1","SPACE$1","FEED$1","TAB$1","CR$1","OPEN_SQUARE$1","CLOSE_SQUARE$1","OPEN_PARENTHESES$1","CLOSE_PARENTHESES$1","OPEN_CURLY$1","CLOSE_CURLY$1","SEMICOLON$1","ASTERISK$1","COLON$1","AT$1","RE_AT_END$1","RE_WORD_END$1","RE_BAD_BRACKET$1","RE_HEX_ESCAPE$1","Container$5$1","AtRule$3$1","atRule$1","LazyResult$3$1","Processor$2$1","Container$4$1","Root$5$1","ignore","root$1","list$2$1","comma","space","separators","array","current","func","inQuote","prevQuote","escape","letter","list_1$1","Container$3$1","list$1$1","Rule$3$1","values","sep2","rule$1","Declaration$2$1","tokenizer2$1","quote","escaped","escapePos","currentToken","valueOf","ignoreErrors","returned","unclosed","what","back","token","endOfFile","nextToken","ignoreUnclosed","controlChar","fromCharCode","lastIndex","position","Comment$2$1","AtRule$2$1","Root$4$1","Rule$2$1","SAFE_COMMENT_NEIGHBOR$1","empty","Container$2$1","Parser2$1","spaces","createTokenizer","shift","unnamedAtrule","init","brackets","tokenizer","getPosition","spacesAndCommentsFromEnd","spacesAndCommentsFromStart","checkMissedSemicolon","tokens","founded","entries","doubleColon","customProperty","findLastWithPosition$1","unknownWord","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","cache","concat","emptyRule","unexpectedClose","endFile","unclosedBlock","freeSemicolon","bracket","unclosedBracket","parse","clean","reduce","all","lastTokenType","Input$2$1","parse$3$1","parser2","process","env","NODE_ENV","parse_1$1","isClean$3","my$3","MapGenerator$1$1","stringify$2$1","Container$1$1","Document$2$1","warnOnce$1$1","Result$2$1","parse$2$1","Root$3$1","TYPE_TO_CLASS_NAME$1","PLUGIN_PROPS$1","AtRule","AtRuleExit","CommentExit","Declaration","DeclarationExit","DocumentExit","Once","OnceExit","prepare","Root","RootExit","Rule","RuleExit","NOT_VISITORS$1","isPromise$1","then","getEvents$1","toStack$1","events","eventIndex","visitorIndex","visitors","cleanMarks$1","postcss$2$1","LazyResult$2$1","LazyResult","stringified","processed","syntax","parser","result","helpers","postcss","plugins","async","Promise","reject","processing","runAsync","onRejected","catch","onFinally","getAsyncError","handleError","postcssVersion","pluginName","pluginVer","runtimeVer","version","b","parseInt","prepareVisitors","listeners","event","hasListener","promise","runOnRoot","visitTick","visitor","roots","subRoot","sync","stringifier","walkSync","visitSync","onFulfilled","visit2","registerPostcss","lazyResult$1","MapGenerator2$1","stringify$1$1","warnOnce2$1","parse$1$1","Result$1$1","NoWorkResult$1$1","_processor","_css","_opts","_map","self","generatedCSS","generatedMap","_root","noWorkResult$1","NoWorkResult2$1","LazyResult$1$1","Document$1$1","Root$2$1","Processor$1$1","normalized","use","processor$1","Declaration$1$1","PreviousMap2$1","Comment$1$1","AtRule$1$1","Input$1$1","Root$1$1","Rule$1$1","fromJSON$1$1","ownInputs","inputHydrated","fromJSON_1$1","CssSyntaxError2$1","Declaration2$1","LazyResult2$1","Container2$1","Processor2$1","stringify$5","fromJSON$2","Document22","Warning2$1","Comment2$1","AtRule2$1","Result2$1","Input2$1","parse$5","list$3","Rule2$1","Root2$1","Node2$1","postcss$3","initializer","warningPrinted","creator","LANG","transformer","processOpts","pluginOpts","fromJSON","list","atRule","Processor","Warning","Result","Input","postcss_1$1","postcss$1$1","__defProp2","__publicField2","__defNormalProp2","getDefaultExportFromCjs","getAugmentedNamespace","picocolors_browser","x","create","picocolors_browserExports","require$$2","pico","terminalHighlight$1","CssSyntaxError$3","CssSyntaxError2","cssSyntaxError","symbols","DEFAULT_RAW","Stringifier$2","Stringifier$1","stringify$4","stringify_1","isClean$2","my$2","CssSyntaxError$2","Stringifier22","stringify$3","cloneNode","Node$4","Node$3","Declaration$4","declaration","nonSecure","SourceMapConsumer$2","SourceMapGenerator$2","dirname$1","PreviousMap$2","previousMap","SourceMapConsumer$1","SourceMapGenerator$1","pathToFileURL$1","resolve$1","terminalHighlight","CssSyntaxError$1","PreviousMap$1","fromOffsetCache","sourceMapAvailable$1","pathAvailable$1","Input$4","Input$3","sourceMapAvailable","pathAvailable","mapGenerator","Node$2","Comment$4","parse$4","Rule$4","AtRule$4","Root$6","isClean$1","my$1","Declaration$3","Comment$3","Node$1","cleanSource","markDirtyUp","Container$7","Container2","container","LazyResult$4","Processor$3","Container$6","Document$3","document$1","printed","warnOnce$2","Warning$2","warning","Warning$1","Result$3","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","Container$5","AtRule$3","LazyResult$3","Processor$2","Container$4","Root$5","list$2","list_1","Container$3","list$1","Rule$3","Declaration$2","tokenizer22","Comment$2","AtRule$2","Root$4","Rule$2","SAFE_COMMENT_NEIGHBOR","Container$2","Parser22","findLastWithPosition","Input$2","parse$3","parse_1","MapGenerator$1","stringify$2","Container$1","Document$2","warnOnce$1","Result$2","parse$2","Root$3","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","isPromise","getEvents","toStack","cleanMarks","postcss$2","LazyResult$2","LazyResult2","lazyResult","MapGenerator22","stringify$1","warnOnce22","parse$1","Result$1","NoWorkResult$1","noWorkResult","NoWorkResult22","LazyResult$1","Document$1","Root$2","Processor$1","Declaration$1","PreviousMap22","Comment$1","AtRule$1","Input$1","Root$1","Rule$1","fromJSON$1","fromJSON_1","CssSyntaxError22","Declaration22","LazyResult22","Container22","Processor22","Document222","Warning22","Comment22","AtRule22","Result22","Input22","Rule22","Root22","Node22","postcss_1","postcss$1","BaseRRNode","_args","childIterator","firstChild","nextSibling","_newChild","_refChild","_node","testableAccessors","testableMethods","untaintedBasePrototype","getUntaintedPrototype","untaintedAccessorCache","getUntaintedAccessor","untaintedMethodCache","getUntaintedMethod","mutationObserverCtor","on","fn","target","capture","passive","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle","wait","timeout","now","Date","leading","remaining","context","trailing","hookSetter","isRevoked","receiver","nowTimestamp","getWindowScroll","_c","_d","scrollingElement","pageXOffset","documentElement","top","pageYOffset","getWindowHeight","innerHeight","clientHeight","getWindowWidth","innerWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","isAncestorRemoved","legacy_isTouchEvent","changedTouches","isSerializedIframe","nodeName","isSerializedStylesheet","hasShadowRoot","getTime","StyleSheetMirror","styleIDMap","newId","idStyleMap","getStyle","generateId","getShadowHost","shadowHost","DOCUMENT_FRAGMENT_NODE","shadowHostInDom","rootShadowHost","getRootShadowHost","inDom","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","MediaInteractions","MediaInteractions2","NodeType","isNodeInLinkedList","DoubleLinkedList","head","addNode","__ln","previousSibling","tail","removeNode","moveKey","parentId","MutationBuffer","Set","mutations","processMutation","emit","frozen","locked","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","parentTag","addedSet","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","mapRemoves","movedSet","isParentRemoved","removesSubTreeCache","isAncestorInSet","droppedSet","candidate","tailNode","unhandledNode","payload","texts","genTextAreaValueMutation","attribute","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","removes","attributeMap","movedMap","mutationCb","textarea","item","cn","m","oldValue","attributeName","unattachedDoc","implementation","createHTMLDocument","old","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","queue","n22","processRemoves","processedNodeManager","inOtherBuffer","targetId","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","_isParentRemoved","_isAncestorInSet","errorHandler","callbackWrapper","rest","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","observer","processMutations","observe","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","handlers","currentPointerType","Number","isNaN","endsWith","eventKey","eventName","handler","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","clientX","clientY","getHandler","PointerEvent","TouchStart","TouchEnd","h","initScrollObserver","scrollCb","evt","defaultView","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","recurse","getIdAndStyleId","styleMirror","styleId","initAdoptedStyleSheetObserver","host2","hostId","patchTarget","originalPropertyDescriptor","_a3","sheets","adoptStyleSheets","initObservers","o2","hooks","currentWindow","mousemoveCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","mutation","mousemove","viewportResize","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","mergeHooks","recordDOM","mousemoveHandler","threshold","callbackThreshold","mousemoveCallback","timeBaseline","positions","wrappedCb","totalOffset","timeOffset","updatePosition","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","text2","v2","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","Play","Pause","Seeked","VolumeChange","RateChange","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","CSSStyleSheet","insertRule","thisArg","argumentsList","addRule","styleBlock","deleteRule","replaceSync","removeRule","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","priority","removeProperty","initStyleDeclarationObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","Uint8Array","restoreHandler","fonts","initFontObserver","selectionObserver","param","collapsed","updateSelection","getSelection","isCollapsed","ranges","count","rangeCount","getRangeAt","startContainer","startOffset","endContainer","endOffset","initSelectionObserver","customElementObserver","define","initCustomElementObserver","pluginHandlers","plugin3","disconnect","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","ids","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","IframeManager","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","iframes","crossOriginIframeMap","addLoadListener","loadListener","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","crossOriginIframeMirror","replaceIdOnNode","crossOriginIframeRootIdMap","patchRootIdOnNode","timestamp","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","styles","iframeMirror","ShadowDomManager","WeakSet","patchAttachShadow","shadowDoms","restoreHandlers","iframeElement","manager","option","sRoot","chars","lookup","i$1","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","list2","ctor","contextMap","variableListFor$1","serializeArg","arg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","ArrayBuffer","base64","arraybuffer","bytes","encode","DataView","byteOffset","byteLength","HTMLImageElement","HTMLCanvasElement","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","ctxName","getNormalizedContextName","contextAttributes","preserveDrawingBuffer","patchGLPrototype","getOwnPropertyNames","recordArgs","hookHandler","setter","encodedJs","blob","Blob","WorkerWrapper","objURL","webkitURL","createObjectURL","worker","Worker","revokeObjectURL","CanvasManager","latestId","invokeId","rafStamps","pendingCanvasMutations","initCanvasMutationObserver","initCanvasFPSObserver","clear","resetObservers","fps","canvasContextReset","snapshotInProgressMap","onmessage","commands","timeBetweenSnapshots","rafId","lastSnapshotTime","takeCanvasSnapshots","matchedCanvas","getCanvas","getContextAttributes","COLOR_BUFFER_BIT","bitmap","createImageBitmap","postMessage","requestAnimationFrame","cancelAnimationFrame","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","props2D","CanvasRenderingContext2D","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","flushPendingCanvasMutations","setLatestRAFTimestamp","_values","flushPendingCanvasMutationFor","valuesWithType","type2","StylesheetManager","adoptedStyleSheetCb","linkEl","trackedLinkElements","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","CSSRule","r2","_linkEl","ProcessedNodeManager","thisBuffer","buffers","nodeMap","active","destroy","takeFullSnapshot$1","recording","cleanFrame","debug","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","packFn","mousemoveWait","recordAfter","errorHandler2","inEmittingFrame","passEmitsToParent","date","email","month","search","tel","time","week","select","password","lastFullSnapshotEvent","NodeList","DOMTokenList","polyfill$1","incrementalSnapshotCount","eventProcessor","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","getMirror","nodeMirror","slimDOM","snapshot","initialOffset","CustomElement","n$1","t2","addCustomEvent","tag","freezePage","takeFullSnapshot","NotStarted","Running","Stopped","byteToHex","i","getRandomValues","rnds8","_state","v1","rnds","crypto","rng","state","msecs","Infinity","nsecs","undefined","clockseq","updateV1State","RangeError","tl","tmh","n","v1Bytes","arr","unsafeStringify","s","e","NONE","ERROR","WARN","INFO","DEBUG","config","level","enableConsole","enableStorage","isBrowser","setConfig","shouldLog","formatMessage","t","toISOString","logToStorage","info","log","localStorage","getItem","setItem","getLogs","clearLogs","removeItem","o","a","c","l","_isPolling","_pollIntervalMs","_queue","_areWeOnline","_sendRequest","navigator","onLine","_flush","retriableRequest","retriesPerformedSoFar","searchParams","_shouldRetry","_enqueue","statusCode","status","ceil","retryAt","requestOptions","round","_poll","_poller","unload","_sendBeaconRequest","sendBeacon","storageKey","maxQueueSize","getQueue","setQueue","clearQueue","addToQueue","removeFromQueue","getQueueLength","u","g","TextEncoder","w","sessionId","f","fromEntries","apiKey","ingestionUrl","monthlyLimitReached","endUserId","cspBlocked","requestTimeout","currentBatchSize","baseUrl","persistence","retryQueue","_sendRequestInternal","_loadPersistedEvents","setTrackingContext","sendEventsChunked","windowId","automaticProperties","AbortController","abort","estimatedSize","r","fetch","headers","signal","keepalive","ok","checkMonthlyLimit","referrer","userId","entryURL","trackedFetch","Authorization","Referer","sdkVersion","statusText","sendEvents","flat","_sendChunkWithRetry","_persistEvents","sendUserData","userAttributes","posthogName","sendUserAuth","authFields","sendSessionEndBeacon","sendHeartbeatBeacon","sendBeaconEvents","sendCustomEvent","eventProperties","errorText","sendCustomEventBatch","sendCustomEventBatchBeacon","sendLog","sendNetworkError","errorType","sendIpInfo","ipDetectionMethod","shouldSkipNetworkTracking","trackedFetchWithBeaconFallback","requestId","duration","timestampMs","classifyHttpError","errorMessage","startTimeMs","spanName","spanStatus","isCSPViolation","classifyNetworkError","errorName","Response","Headers","v","redactedText","unredactedFields","redactedFields","redactionMode","excludeSelectors","redactionStrategy","mode","unredactFields","setFieldsToUnredact","redactFields","setFieldsToRedact","legacyRedactFields","userFields","applyRedactionClasses","isPasswordSelector","applyUnredactionClasses","clearUnredactedFields","removeUnredactionClasses","hasUnredactedFields","getRedactionMode","getUnredactedFields","getMaskTextSelector","getOriginalValue","isElementUnredacted","shouldUnredactElement","S","userAgent","screen","hostname","T","device_type","browser","browser_version","os","os_version","screen_resolution","viewport_size","color_depth","timezone","language","languages","parseFloat","colorDepth","Intl","DateTimeFormat","resolvedOptions","timeZone","raw_user_agent","E","current_url","hash","title","referrer_domain","initial_referrer","initial_referrer_domain","initial_host","I","C","utm_source","utm_medium","utm_campaign","utm_term","utm_content","U","sessionProperties","userProperties","initialProperties","isInitialized","enableAutomaticProperties","enableSessionProperties","enableUserProperties","propertyDenylist","initialize","initial_url","initial_pathname","initial_utm_source","initial_utm_medium","initial_utm_campaign","initial_utm_term","initial_utm_content","loadSessionProperties","getEventProperties","getAutomaticProperties","$initial_properties_captured","setSessionProperty","applyDenylist","getAutomaticPropertiesWithGeoIP","saveSessionProperties","setSessionProperties","getSessionProperty","removeSessionProperty","setUserProperty","setUserProperties","getUserProperty","removeUserProperty","setOnce","clearSessionProperties","clearUserProperties","sessionStorage","updateAutomaticProperties","getAllProperties","automatic","session","user","initial","D","P","isTrackerStarted","isStarted","setupDomReadyHandler","onDomReady","setInterval","clearInterval","isDomReady","requestQueue","processRequest","domReadyHandlers","queueRequest","addEvent","identifyUser","trackPageView","registerDomReadyHandler","suppressConsoleErrors","preventDefault","__humanBehaviorGlobalTracker","logLevel","configureLogging","enableConsoleTracking","enableNetworkTracking","setUnredactedFields","enableAutomaticTracking","setupAutomaticTracking","automaticTrackingOptions","eventQueue","pendingCustomEvents","pendingLogs","pendingNetworkErrors","customEventBatch","customEventBatchTimer","CUSTOM_EVENT_FLUSH_MS","CUSTOM_EVENT_BATCH_MAX","_sessionActivityTimestamp","_sessionStartTimestamp","isProcessing","flushInterval","FLUSH_INTERVAL_MS","heartbeatInterval","HEARTBEAT_INTERVAL_MS","SESSION_IDLE_TIMEOUT_MS","SESSION_MAX_LENGTH_MS","focusBlurGraceTimeout","FOCUS_BLUR_GRACE_MS","lastEmittedFocusState","initialized","initializationPromise","originalConsole","consoleTrackingEnabled","originalFetch","networkTrackingEnabled","enableConsoleTrackingFlag","enableNetworkTrackingFlag","navigationTrackingEnabled","currentUrl","previousUrl","originalPushState","originalReplaceState","navigationListeners","lastPushStateAt","NAVIGATION_DEDUPE_MS","_connectionBlocked","recordInstance","sessionStartTime","rrwebRecord","fullSnapshotTimeout","minimumDurationMilliseconds","_isIdle","_lastActivityTimestamp","IDLE_THRESHOLD_MS","rageClickTracker","clicks","RAGE_CLICK_THRESHOLD_PX","RAGE_CLICK_TIMEOUT_MS","RAGE_CLICK_CLICK_COUNT","rageJustFiredAt","deadClickTracker","pendingClicks","DEAD_CLICK_SCROLL_THRESHOLD_MS","DEAD_CLICK_SELECTION_THRESHOLD_MS","DEAD_CLICK_MUTATION_THRESHOLD_MS","DEAD_CLICK_ABSOLUTE_TIMEOUT_MS","api","MAX_QUEUE_SIZE","redactionManager","propertyManager","getCookie","setCookie","_window_id_storage_key","_primary_window_exists_storage_key","getOrCreateSessionId","getOrCreateWindowId","setupWindowUnloadListener","setupPageUnloadHandler","setupNavigationTracking","ensureInitialized","history","pushState","replaceState","trackNavigationEvent","$navigation_type","navigationType","customEvent","eventType","checkAndRefreshSession","shouldSkipDueToMinimumDuration","properties","flushPendingCustomEvents","queueCustomEvent","flushCustomEventBatch","trackButtons","trackLinks","trackForms","includeText","includeClasses","setupAutocapture","setupAutomaticFormTracking","setupRageClickDetection","setupDeadClickDetection","page","buildDomPath","elementId","role","elementText","elementClass","isRageClick","clickCount","hypot","setupDeadClickMutationObserver","setupDeadClickScrollObserver","setupDeadClickSelectionObserver","setupDeadClickNavigationTracking","isInteractiveElement","ignoreClickForDeadDetection","lastMutationTime","handleDeadClickTimeout","originalEvent","cancelled","lastMutationTimeAtClick","abs","cancelPendingClick","lastSelectionChangedTime","cancelAllPendingClicks","onclick","getComputedStyle","cursor","fireDeadClickEvent","absoluteDelayMs","mutationDelayMs","selectionChangedDelayMs","setupAutomaticLinkTracking","FormData","formId","formAction","action","formMethod","fields","formClass","cleanupNavigationTracking","none","trackConsoleEvent","errorData","flushPendingNetworkErrors","flushPendingLogs","logData","enablePageLoadTracking","trackPageLoad","performance","getEntriesByType","loadEventEnd","fetchStart","domContentLoadedEventEnd","domComplete","timeOrigin","disableConsoleTracking","isSDKStackFrame","__humanBehaviorActiveTracker","visibilityState","emitVisibilityMarker","flushEvents","setupWindowFocusTracking","getSessionDuration","__hb_pending_snapshots","viewLogs","originalEndUserId","actualUserId","wasExistingUser","getUserAttributes","addRecordingEvent","HTMLElement","once","emitFocusMarker","hasFocus","onWindowBlur","onWindowFocus","stop","isInteractiveEvent","updateIdleState","_canUseSessionStorage","_getWindowIdFromStorage","_setWindowIdInStorage","_removeWindowIdFromStorage","_getPrimaryWindowExists","_setPrimaryWindowExists","setTime","toUTCString","cookie","deleteCookie","logout","createNewSession","redact","setRedactedFields","restartWithNewRedaction","getStoredSession","updateSessionActivity","sessionStartTimestamp","lastActivityTimestamp","getSessionId","getCurrentUrl","getSnapshotFrequencyInfo","sessionDuration","currentInterval","currentThreshold","phase","testConnection","success","getConnectionStatus","blocked","recommendations","isPreexistingUser","getUserInfo","HumanBehaviorTracker","humanbehavior","HumanBehaviorContext","createContext","HumanBehaviorProvider","client","humanBehavior","setHumanBehavior","useState","setEventQueue","isMounted","setIsMounted","setIsInitialized","apiKeyRef","useRef","clientRef","eventQueueRef","useEffect","queueEvent","useCallback","tracker","currentQueue","logDebug","logError","contextValue","useMemo","createQueuingImplementation","_jsxs","Provider","_jsx","HumanBehaviorPageView","_Fragment","logWarn","useHumanBehavior","useContext","useRedaction","useUserTracking","handleRouteChange"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../browser/dist/esm/index.js","../src/index.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar _a;\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$3 = /* @__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$3 || {});\nconst testableAccessors$1 = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\",\n \"ownerDocument\"\n ],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods$1 = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype$1 = {};\nconst isAngularZonePresent$1 = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype$1(key) {\n if (untaintedBasePrototype$1[key])\n return untaintedBasePrototype$1[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods$1 ? testableMethods$1[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent$1()) {\n untaintedBasePrototype$1[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype$1[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache$1 = {};\nfunction getUntaintedAccessor$1(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache$1[cacheKey])\n return untaintedAccessorCache$1[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache$1[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache$1 = {};\nfunction getUntaintedMethod$1(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache$1[cacheKey])\n return untaintedMethodCache$1[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache$1[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction ownerDocument$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"ownerDocument\");\n}\nfunction childNodes$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentElement\");\n}\nfunction textContent$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"textContent\");\n}\nfunction contains$1(n2, other) {\n return getUntaintedMethod$1(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode$1(n2) {\n return getUntaintedMethod$1(\"Node\", n2, \"getRootNode\")();\n}\nfunction host$1(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor$1(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets$1(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot$1(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor$1(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor$1() {\n return getUntaintedPrototype$1(\"MutationObserver\").constructor;\n}\nfunction patch$1(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$1 = {\n ownerDocument: ownerDocument$1,\n childNodes: childNodes$1,\n parentNode: parentNode$1,\n parentElement: parentElement$1,\n textContent: textContent$1,\n contains: contains$1,\n getRootNode: getRootNode$1,\n host: host$1,\n styleSheets: styleSheets$1,\n shadowRoot: shadowRoot$1,\n querySelector: querySelector$1,\n querySelectorAll: querySelectorAll$1,\n mutationObserver: mutationObserverCtor$1,\n patch: patch$1\n};\nfunction isElement(n2) {\n return n2.nodeType === n2.ELEMENT_NODE;\n}\nfunction isShadowRoot(n2) {\n const hostEl = (\n // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n2 && \"host\" in n2 && \"mode\" in n2 && index$1.host(n2) || null\n );\n return Boolean(\n hostEl && \"shadowRoot\" in hostEl && index$1.shadowRoot(hostEl) === n2\n );\n}\nfunction isNativeShadowDom(shadowRoot2) {\n return Object.prototype.toString.call(shadowRoot2) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n cssText = cssText.replace(\n /\\sbackground-clip:\\s*text;/g,\n \" -webkit-background-clip: text; background-clip: text;\"\n );\n }\n return cssText;\n}\nfunction escapeImportStatement(rule2) {\n const { cssText } = rule2;\n if (cssText.split('\"').length < 3) return cssText;\n const statement = [\"@import\", `url(${JSON.stringify(rule2.href)})`];\n if (rule2.layerName === \"\") {\n statement.push(`layer`);\n } else if (rule2.layerName) {\n statement.push(`layer(${rule2.layerName})`);\n }\n if (rule2.supportsText) {\n statement.push(`supports(${rule2.supportsText})`);\n }\n if (rule2.media.length) {\n statement.push(rule2.media.mediaText);\n }\n return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s2) {\n try {\n const rules2 = s2.rules || s2.cssRules;\n if (!rules2) {\n return null;\n }\n let sheetHref = s2.href;\n if (!sheetHref && s2.ownerNode) {\n sheetHref = s2.ownerNode.baseURI;\n }\n const stringifiedRules = Array.from(\n rules2,\n (rule2) => stringifyRule(rule2, sheetHref)\n ).join(\"\");\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule2, sheetHref) {\n if (isCSSImportRule(rule2)) {\n let importStringified;\n try {\n importStringified = // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule2.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule2);\n } catch (error) {\n importStringified = rule2.cssText;\n }\n if (rule2.styleSheet.href) {\n return absolutifyURLs(importStringified, rule2.styleSheet.href);\n }\n return importStringified;\n } else {\n let ruleStringified = rule2.cssText;\n if (isCSSStyleRule(rule2) && rule2.selectorText.includes(\":\")) {\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule2) {\n return \"styleSheet\" in rule2;\n}\nfunction isCSSStyleRule(rule2) {\n return \"selectorText\" in rule2;\n}\nclass Mirror {\n constructor() {\n __publicField$1(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror$2() {\n return new Mirror();\n}\nfunction maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn\n}) {\n let text = value || \"\";\n const actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n const chunkSize = 50;\n for (let x2 = 0; x2 < canvas.width; x2 += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n const pixelBuffer = new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(\n ctx,\n x2,\n y,\n Math.min(chunkSize, canvas.width - x2),\n Math.min(chunkSize, canvas.height - y)\n ).data.buffer\n );\n if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n }\n }\n return true;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n ) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, baseURL ?? window.location.href);\n } catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return (match == null ? void 0 : match[1]) ?? null;\n}\nfunction extractOrigin(url) {\n let origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absolutifyURLs(cssText, href) {\n return (cssText || \"\").replace(\n URL_IN_CSS_REF,\n (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === \"/\") {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split(\"/\");\n const parts = filePath.split(\"/\");\n stack.pop();\n for (const part of parts) {\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n }\n );\n}\nfunction normalizeCssString(cssText, _testNoPxNorm = false) {\n if (_testNoPxNorm) {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n } else {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\").replace(/0px/g, \"0\");\n }\n}\nfunction splitCssText(cssText, style, _testNoPxNorm = false) {\n const childNodes2 = Array.from(style.childNodes);\n const splits = [];\n let iterCount = 0;\n if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n let cssTextNorm = normalizeCssString(cssText, _testNoPxNorm);\n const normFactor = cssTextNorm.length / cssText.length;\n for (let i2 = 1; i2 < childNodes2.length; i2++) {\n if (childNodes2[i2].textContent && typeof childNodes2[i2].textContent === \"string\") {\n const textContentNorm = normalizeCssString(\n childNodes2[i2].textContent,\n _testNoPxNorm\n );\n const jLimit = 100;\n let j = 3;\n for (; j < textContentNorm.length; j++) {\n if (\n // keep consuming css identifiers (to get a decent chunk more quickly)\n textContentNorm[j].match(/[a-zA-Z0-9]/) || // substring needs to be unique to this section\n textContentNorm.indexOf(textContentNorm.substring(0, j), 1) !== -1\n ) {\n continue;\n }\n break;\n }\n for (; j < textContentNorm.length; j++) {\n let startSubstring = textContentNorm.substring(0, j);\n let cssNormSplits = cssTextNorm.split(startSubstring);\n let splitNorm = -1;\n if (cssNormSplits.length === 2) {\n splitNorm = cssNormSplits[0].length;\n } else if (cssNormSplits.length > 2 && cssNormSplits[0] === \"\" && childNodes2[i2 - 1].textContent !== \"\") {\n splitNorm = cssTextNorm.indexOf(startSubstring, 1);\n } else if (cssNormSplits.length === 1) {\n startSubstring = startSubstring.substring(\n 0,\n startSubstring.length - 1\n );\n cssNormSplits = cssTextNorm.split(startSubstring);\n if (cssNormSplits.length <= 1) {\n splits.push(cssText);\n return splits;\n }\n j = jLimit + 1;\n } else if (j === textContentNorm.length - 1) {\n splitNorm = cssTextNorm.indexOf(startSubstring);\n }\n if (cssNormSplits.length >= 2 && j > jLimit) {\n const prevTextContent = childNodes2[i2 - 1].textContent;\n if (prevTextContent && typeof prevTextContent === \"string\") {\n const prevMinLength = normalizeCssString(prevTextContent).length;\n splitNorm = cssTextNorm.indexOf(startSubstring, prevMinLength);\n }\n if (splitNorm === -1) {\n splitNorm = cssNormSplits[0].length;\n }\n }\n if (splitNorm !== -1) {\n let k = Math.floor(splitNorm / normFactor);\n for (; k > 0 && k < cssText.length; ) {\n iterCount += 1;\n if (iterCount > 50 * childNodes2.length) {\n splits.push(cssText);\n return splits;\n }\n const normPart = normalizeCssString(\n cssText.substring(0, k),\n _testNoPxNorm\n );\n if (normPart.length === splitNorm) {\n splits.push(cssText.substring(0, k));\n cssText = cssText.substring(k);\n cssTextNorm = cssTextNorm.substring(splitNorm);\n break;\n } else if (normPart.length < splitNorm) {\n k += Math.max(\n 1,\n Math.floor((splitNorm - normPart.length) / normFactor)\n );\n } else {\n k -= Math.max(\n 1,\n Math.floor((normPart.length - splitNorm) * normFactor)\n );\n }\n }\n break;\n }\n }\n }\n }\n }\n splits.push(cssText);\n return splits;\n}\nfunction markCssSplits(cssText, style) {\n return splitCssText(cssText, style).join(\"/* rr_split */\");\n}\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName$1(element) {\n if (element instanceof HTMLFormElement) {\n return \"form\";\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return \"div\";\n }\n return processedTagName;\n}\nlet canvasService;\nlet canvasCtx;\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === \"\") {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars2;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars2 = match[0];\n pos += chars2.length;\n return chars2;\n }\n return \"\";\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === \",\") {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n let descriptorsStr = \"\";\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c2 = attributeValue.charAt(pos);\n if (c2 === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c2 === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c2 === \"(\") {\n inParens = true;\n }\n } else {\n if (c2 === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c2;\n pos += 1;\n }\n }\n }\n return output.join(\", \");\n}\nconst cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === \"\") {\n return attributeValue;\n }\n return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n let a2 = cachedDocument.get(doc);\n if (!a2) {\n a2 = doc.createElement(\"a\");\n cachedDocument.set(doc, a2);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a2.setAttribute(\"href\", customHref);\n return a2.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && [\"table\", \"td\", \"th\"].includes(tagName)) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return [\"video\", \"audio\"].includes(tagName) && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e2) {\n }\n return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n if (!node2) return false;\n if (node2.nodeType !== node2.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n }\n for (let eIndex = node2.classList.length; eIndex--; ) {\n const className = node2.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node2)) {\n el = node2;\n if (!index$1.childNodes(el).length) {\n return false;\n }\n } else if (index$1.parentElement(node2) === null) {\n return false;\n } else {\n el = index$1.parentElement(node2);\n }\n try {\n if (typeof maskTextClass === \"string\") {\n if (checkAncestors) {\n if (el.closest(`.${maskTextClass}`)) return true;\n } else {\n if (el.classList.contains(maskTextClass)) return true;\n }\n } else {\n if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true;\n }\n if (maskTextSelector) {\n if (checkAncestors) {\n if (el.closest(maskTextSelector)) return true;\n } else {\n if (el.matches(maskTextSelector)) return true;\n }\n }\n } catch (e2) {\n }\n return false;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== \"complete\") {\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = \"about:blank\";\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n setTimeout(listener, 0);\n return iframeEl.addEventListener(\"load\", listener);\n }\n iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n if (styleSheetLoaded) return;\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n const rootId = getRootId(doc, mirror2);\n switch (n2.nodeType) {\n case n2.DOCUMENT_NODE:\n if (n2.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType$3.Document,\n childNodes: [],\n compatMode: n2.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType$3.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$3.DocumentType,\n name: n2.name,\n publicId: n2.publicId,\n systemId: n2.systemId,\n rootId\n };\n case n2.ELEMENT_NODE:\n return serializeElementNode(n2, {\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 n2.TEXT_NODE:\n return serializeTextNode(n2, {\n doc,\n needsMask,\n maskTextFn,\n rootId,\n cssCaptured\n });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$3.CDATA,\n textContent: \"\",\n rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$3.Comment,\n textContent: index$1.textContent(n2) || \"\",\n rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror2) {\n if (!mirror2.hasNode(doc)) return void 0;\n const docId = mirror2.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n2, options) {\n const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n const parent = index$1.parentNode(n2);\n const parentTagName = parent && parent.tagName;\n let textContent2 = \"\";\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isScript) {\n textContent2 = \"SCRIPT_PLACEHOLDER\";\n } else if (!cssCaptured) {\n textContent2 = index$1.textContent(n2);\n if (isStyle && textContent2) {\n textContent2 = absolutifyURLs(textContent2, getHref(options.doc));\n }\n }\n if (!isStyle && !isScript && textContent2 && needsMask) {\n textContent2 = maskTextFn ? maskTextFn(textContent2, index$1.parentElement(n2)) : textContent2.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$3.Text,\n textContent: textContent2 || \"\",\n rootId\n };\n}\nfunction serializeElementNode(n2, options) {\n const {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions = {},\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n rootId\n } = options;\n const needBlock = _isBlockedElement(n2, blockClass, blockSelector);\n const tagName = getValidTagName$1(n2);\n let attributes = {};\n const len = n2.attributes.length;\n for (let i2 = 0; i2 < len; i2++) {\n const attr = n2.attributes[i2];\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(\n doc,\n tagName,\n toLowerCase(attr.name),\n attr.value\n );\n }\n }\n if (tagName === \"link\" && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s2) => {\n return s2.href === n2.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"style\" && n2.sheet) {\n let cssText = stringifyStylesheet(\n n2.sheet\n );\n if (cssText) {\n if (n2.childNodes.length > 1) {\n cssText = markCssSplits(cssText, n2);\n }\n attributes._cssText = cssText;\n }\n }\n if ([\"input\", \"textarea\", \"select\"].includes(tagName)) {\n const value = n2.value;\n const checked = n2.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n attributes.value = maskInputValue({\n element: n2,\n type: getInputType(n2),\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 (n2.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"dialog\" && n2.open) {\n attributes.rr_open_mode = n2.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n2.__context === \"2d\") {\n if (!is2DCanvasBlank(n2)) {\n attributes.rr_dataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n } else if (!(\"__context\" in n2)) {\n const canvasDataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n const blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n2.width;\n blankCanvas.height = n2.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === \"img\" && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement(\"canvas\");\n canvasCtx = canvasService.getContext(\"2d\");\n }\n const image = n2;\n const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"<unknown-src>\";\n const priorCrossOrigin = image.crossOrigin;\n const recordInlineImage = () => {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err}`\n );\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if ([\"audio\", \"video\"].includes(tagName)) {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n2.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n2.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate;\n mediaAttributes.rr_mediaMuted = n2.muted;\n mediaAttributes.rr_mediaLoop = n2.loop;\n mediaAttributes.rr_mediaVolume = n2.volume;\n }\n if (!newlyAddedElement) {\n if (n2.scrollLeft) {\n attributes.rr_scrollLeft = n2.scrollLeft;\n }\n if (n2.scrollTop) {\n attributes.rr_scrollTop = n2.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n2.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n2.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e2) {\n }\n return {\n type: NodeType$3.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n2) || void 0,\n needBlock,\n rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMDefaults(_slimDOMOptions) {\n if (_slimDOMOptions === true || _slimDOMOptions === \"all\") {\n return {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n };\n } else if (_slimDOMOptions) {\n return _slimDOMOptions;\n }\n return {};\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$3.Comment) {\n return true;\n } else if (sn.type === NodeType$3.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" && sn.attributes.as === \"script\" || sn.attributes.rel === \"modulepreload\") || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n if (!needsMask) {\n const checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(\n n2,\n maskTextClass,\n maskTextSelector,\n checkAncestors\n );\n }\n const _serializedNode = serializeNode(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n cssCaptured\n });\n if (!_serializedNode) {\n console.warn(n2, \"not serialized\");\n return null;\n }\n let id;\n if (mirror2.hasNode(n2)) {\n id = mirror2.getId(n2);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$3.Text && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, \"\").length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror2.add(n2, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n2);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType$3.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRootEl = index$1.shadowRoot(n2);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType$3.Document || serializedNode.type === NodeType$3.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n cssCaptured: false\n };\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n if (serializedNode.type === NodeType$3.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n bypassOptions.cssCaptured = true;\n }\n for (const childN of Array.from(index$1.childNodes(n2))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n let shadowRootEl = null;\n if (isElement(n2) && (shadowRootEl = index$1.shadowRoot(n2))) {\n for (const childN of Array.from(index$1.childNodes(shadowRootEl))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(shadowRootEl) && (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n const parent = index$1.parentNode(n2);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(\n n2,\n () => {\n const iframeDoc = n2.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(\n n2,\n serializedIframeNode\n );\n }\n }\n },\n iframeLoadTimeout\n );\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"link\" && typeof serializedNode.attributes.rel === \"string\" && (serializedNode.attributes.rel === \"stylesheet\" || serializedNode.attributes.rel === \"preload\" && typeof serializedNode.attributes.href === \"string\" && extractFileExtension(serializedNode.attributes.href) === \"css\")) {\n onceStylesheetLoaded(\n n2,\n () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedLinkNode) {\n onStylesheetLoad(\n n2,\n serializedLinkNode\n );\n }\n }\n },\n stylesheetLoadTimeout\n );\n }\n return serializedNode;\n}\nfunction snapshot(n2, options) {\n const {\n mirror: mirror2 = new Mirror(),\n blockClass = \"rr-block\",\n blockSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n inlineImages = false,\n recordCanvas = false,\n maskAllInputs = false,\n maskTextFn,\n maskInputFn,\n slimDOM = false,\n dataURLOptions,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn = () => false\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOMDefaults(slimDOM);\n return serializeNodeWithId(n2, {\n doc: n2,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false\n });\n}\nfunction getDefaultExportFromCjs$1(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace$1(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser$1 = { exports: {} };\nvar x$1 = String;\nvar create$1 = function() {\n return { isColorSupported: false, reset: x$1, bold: x$1, dim: x$1, italic: x$1, underline: x$1, inverse: x$1, hidden: x$1, strikethrough: x$1, black: x$1, red: x$1, green: x$1, yellow: x$1, blue: x$1, magenta: x$1, cyan: x$1, white: x$1, gray: x$1, bgBlack: x$1, bgRed: x$1, bgGreen: x$1, bgYellow: x$1, bgBlue: x$1, bgMagenta: x$1, bgCyan: x$1, bgWhite: x$1 };\n};\npicocolors_browser$1.exports = create$1();\npicocolors_browser$1.exports.createColors = create$1;\nvar picocolors_browserExports$1 = picocolors_browser$1.exports;\nconst __viteBrowserExternal$2 = {};\nconst __viteBrowserExternal$1$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal$2\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2$1 = /* @__PURE__ */ getAugmentedNamespace$1(__viteBrowserExternal$1$1);\nlet pico$1 = picocolors_browserExports$1;\nlet terminalHighlight$1$1 = require$$2$1;\nlet CssSyntaxError$3$1 = class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico$1.isColorSupported;\n if (terminalHighlight$1$1) {\n if (color) css = terminalHighlight$1$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico$1.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError$1 = CssSyntaxError$3$1;\nCssSyntaxError$3$1.default = CssSyntaxError$3$1;\nvar symbols$1 = {};\nsymbols$1.isClean = Symbol(\"isClean\");\nsymbols$1.my = Symbol(\"my\");\nconst DEFAULT_RAW$1 = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize$1(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2$1 = class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW$1[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize$1(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW$1[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier$1 = Stringifier$2$1;\nStringifier$2$1.default = Stringifier$2$1;\nlet Stringifier$1$1 = stringifier$1;\nfunction stringify$4$1(node2, builder) {\n let str = new Stringifier$1$1(builder);\n str.stringify(node2);\n}\nvar stringify_1$1 = stringify$4$1;\nstringify$4$1.default = stringify$4$1;\nlet { isClean: isClean$2$1, my: my$2$1 } = symbols$1;\nlet CssSyntaxError$2$1 = cssSyntaxError$1;\nlet Stringifier2$1 = stringifier$1;\nlet stringify$3$1 = stringify_1$1;\nfunction cloneNode$1(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode$1(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode$1(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4$1 = class Node2 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2$1] = false;\n this[my$2$1] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode$1(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2$1(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2$1]) {\n this[isClean$2$1] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2$1] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier2$1();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3$1) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node$1 = Node$4$1;\nNode$4$1.default = Node$4$1;\nlet Node$3$1 = node$1;\nlet Declaration$4$1 = class Declaration extends Node$3$1 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration$1 = Declaration$4$1;\nDeclaration$4$1.default = Declaration$4$1;\nlet urlAlphabet$1 = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet nanoid$1$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet$1[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure$1 = { nanoid: nanoid$1$1};\nlet { SourceMapConsumer: SourceMapConsumer$2$1, SourceMapGenerator: SourceMapGenerator$2$1 } = require$$2$1;\nlet { existsSync: existsSync$1, readFileSync: readFileSync$1 } = require$$2$1;\nlet { dirname: dirname$1$1, join: join$1 } = require$$2$1;\nfunction fromBase64$1(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2$1 = class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2$1(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64$1(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1$1(path);\n if (existsSync$1(path)) {\n this.mapFile = path;\n return readFileSync$1(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2$1) {\n return SourceMapGenerator$2$1.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2$1) {\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$1(dirname$1$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap$1 = PreviousMap$2$1;\nPreviousMap$2$1.default = PreviousMap$2$1;\nlet { SourceMapConsumer: SourceMapConsumer$1$1, SourceMapGenerator: SourceMapGenerator$1$1 } = require$$2$1;\nlet { fileURLToPath: fileURLToPath$1, pathToFileURL: pathToFileURL$1$1 } = require$$2$1;\nlet { isAbsolute: isAbsolute$1, resolve: resolve$1$1 } = require$$2$1;\nlet { nanoid: nanoid$2 } = nonSecure$1;\nlet terminalHighlight$2 = require$$2$1;\nlet CssSyntaxError$1$1 = cssSyntaxError$1;\nlet PreviousMap$1$1 = previousMap$1;\nlet fromOffsetCache$1 = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1$1 = Boolean(SourceMapConsumer$1$1 && SourceMapGenerator$1$1);\nlet pathAvailable$1$1 = Boolean(resolve$1$1 && isAbsolute$1);\nlet Input$4$1 = class Input {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute$1(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1$1(opts.from);\n }\n }\n if (pathAvailable$1$1 && sourceMapAvailable$1$1) {\n let map = new PreviousMap$1$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid$2(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1$1) {\n result2.input.url = pathToFileURL$1$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache$1]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache$1] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache$1];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute$1(from.source)) {\n fromUrl = pathToFileURL$1$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath$1) {\n result2.file = fileURLToPath$1(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input$1 = Input$4$1;\nInput$4$1.default = Input$4$1;\nif (terminalHighlight$2 && terminalHighlight$2.registerInput) {\n terminalHighlight$2.registerInput(Input$4$1);\n}\nlet { SourceMapConsumer: SourceMapConsumer$3, SourceMapGenerator: SourceMapGenerator$3 } = require$$2$1;\nlet { dirname: dirname$2, relative: relative$1, resolve: resolve$2, sep: sep$1 } = require$$2$1;\nlet { pathToFileURL: pathToFileURL$2 } = require$$2$1;\nlet Input$3$1 = input$1;\nlet sourceMapAvailable$2 = Boolean(SourceMapConsumer$3 && SourceMapGenerator$3);\nlet pathAvailable$2 = Boolean(dirname$2 && resolve$2 && relative$1 && sep$1);\nlet MapGenerator$2$1 = class MapGenerator {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname$2(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer$3(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable$2 && sourceMapAvailable$2 && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator$3.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname$2(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname$2(resolve$2(from, this.mapOpts.annotation));\n }\n let path = relative$1(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3$1(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL$2) {\n let fileURL = pathToFileURL$2(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep$1 === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator$1 = MapGenerator$2$1;\nlet Node$2$1 = node$1;\nlet Comment$4$1 = class Comment extends Node$2$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment$1 = Comment$4$1;\nComment$4$1.default = Comment$4$1;\nlet { isClean: isClean$1$1, my: my$1$1 } = symbols$1;\nlet Declaration$3$1 = declaration$1;\nlet Comment$3$1 = comment$1;\nlet Node$1$1 = node$1;\nlet parse$4$1, Rule$4$1, AtRule$4$1, Root$6$1;\nfunction cleanSource$1(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource$1(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp$1(node2) {\n node2[isClean$1$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp$1(i2);\n }\n }\n}\nlet Container$7$1 = class Container extends Node$1$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource$1(parse$4$1(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3$1(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4$1(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4$1(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3$1(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1$1]) Container.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1$1]) markDirtyUp$1(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7$1.registerParse = (dependant) => {\n parse$4$1 = dependant;\n};\nContainer$7$1.registerRule = (dependant) => {\n Rule$4$1 = dependant;\n};\nContainer$7$1.registerAtRule = (dependant) => {\n AtRule$4$1 = dependant;\n};\nContainer$7$1.registerRoot = (dependant) => {\n Root$6$1 = dependant;\n};\nvar container$1 = Container$7$1;\nContainer$7$1.default = Container$7$1;\nContainer$7$1.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4$1.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4$1.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3$1.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3$1.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6$1.prototype);\n }\n node2[my$1$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7$1.rebuild(child);\n });\n }\n};\nlet Container$6$1 = container$1;\nlet LazyResult$4$1, Processor$3$1;\nlet Document$3$1 = class Document2 extends Container$6$1 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4$1(new Processor$3$1(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3$1.registerLazyResult = (dependant) => {\n LazyResult$4$1 = dependant;\n};\nDocument$3$1.registerProcessor = (dependant) => {\n Processor$3$1 = dependant;\n};\nvar document$1$1 = Document$3$1;\nDocument$3$1.default = Document$3$1;\nlet printed$1 = {};\nvar warnOnce$2$1 = function warnOnce(message) {\n if (printed$1[message]) return;\n printed$1[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2$1 = class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning$1 = Warning$2$1;\nWarning$2$1.default = Warning$2$1;\nlet Warning$1$1 = warning$1;\nlet Result$3$1 = class Result {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result$1 = Result$3$1;\nResult$3$1.default = Result$3$1;\nconst SINGLE_QUOTE$1 = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE$1 = '\"'.charCodeAt(0);\nconst BACKSLASH$1 = \"\\\\\".charCodeAt(0);\nconst SLASH$1 = \"/\".charCodeAt(0);\nconst NEWLINE$1 = \"\\n\".charCodeAt(0);\nconst SPACE$1 = \" \".charCodeAt(0);\nconst FEED$1 = \"\\f\".charCodeAt(0);\nconst TAB$1 = \"\t\".charCodeAt(0);\nconst CR$1 = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE$1 = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE$1 = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES$1 = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES$1 = \")\".charCodeAt(0);\nconst OPEN_CURLY$1 = \"{\".charCodeAt(0);\nconst CLOSE_CURLY$1 = \"}\".charCodeAt(0);\nconst SEMICOLON$1 = \";\".charCodeAt(0);\nconst ASTERISK$1 = \"*\".charCodeAt(0);\nconst COLON$1 = \":\".charCodeAt(0);\nconst AT$1 = \"@\".charCodeAt(0);\nconst RE_AT_END$1 = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END$1 = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET$1 = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE$1 = /[\\da-f]/i;\nvar tokenize$1 = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE$1:\n case SPACE$1:\n case TAB$1:\n case CR$1:\n case FEED$1: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE$1 || code === NEWLINE$1 || code === TAB$1 || code === CR$1 || code === FEED$1);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE$1:\n case CLOSE_SQUARE$1:\n case OPEN_CURLY$1:\n case CLOSE_CURLY$1:\n case COLON$1:\n case SEMICOLON$1:\n case CLOSE_PARENTHESES$1: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES$1: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE$1 && n2 !== DOUBLE_QUOTE$1 && n2 !== SPACE$1 && n2 !== NEWLINE$1 && n2 !== TAB$1 && n2 !== FEED$1 && n2 !== CR$1) {\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$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET$1.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE$1:\n case DOUBLE_QUOTE$1: {\n quote = code === SINGLE_QUOTE$1 ? \"'\" : '\"';\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$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT$1: {\n RE_AT_END$1.lastIndex = pos + 1;\n RE_AT_END$1.test(css);\n if (RE_AT_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END$1.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH$1: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH$1) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH$1 && code !== SPACE$1 && code !== NEWLINE$1 && code !== TAB$1 && code !== CR$1 && code !== FEED$1) {\n next += 1;\n if (RE_HEX_ESCAPE$1.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE$1.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE$1) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH$1 && css.charCodeAt(pos + 1) === ASTERISK$1) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END$1.lastIndex = pos + 1;\n RE_WORD_END$1.test(css);\n if (RE_WORD_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END$1.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5$1 = container$1;\nlet AtRule$3$1 = class AtRule extends Container$5$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule$1 = AtRule$3$1;\nAtRule$3$1.default = AtRule$3$1;\nContainer$5$1.registerAtRule(AtRule$3$1);\nlet Container$4$1 = container$1;\nlet LazyResult$3$1, Processor$2$1;\nlet Root$5$1 = class Root extends Container$4$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3$1(new Processor$2$1(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5$1.registerLazyResult = (dependant) => {\n LazyResult$3$1 = dependant;\n};\nRoot$5$1.registerProcessor = (dependant) => {\n Processor$2$1 = dependant;\n};\nvar root$1 = Root$5$1;\nRoot$5$1.default = Root$5$1;\nContainer$4$1.registerRoot(Root$5$1);\nlet list$2$1 = {\n comma(string) {\n return list$2$1.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2$1.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1$1 = list$2$1;\nlist$2$1.default = list$2$1;\nlet Container$3$1 = container$1;\nlet list$1$1 = list_1$1;\nlet Rule$3$1 = class Rule extends Container$3$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule$1 = Rule$3$1;\nRule$3$1.default = Rule$3$1;\nContainer$3$1.registerRule(Rule$3$1);\nlet Declaration$2$1 = declaration$1;\nlet tokenizer2$1 = tokenize$1;\nlet Comment$2$1 = comment$1;\nlet AtRule$2$1 = atRule$1;\nlet Root$4$1 = root$1;\nlet Rule$2$1 = rule$1;\nconst SAFE_COMMENT_NEIGHBOR$1 = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition$1(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1$1 = class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4$1();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2$1();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2$1();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer2$1(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2$1();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition$1(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2$1();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR$1[prev] && !SAFE_COMMENT_NEIGHBOR$1[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, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2$1();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser$1 = Parser$1$1;\nlet Container$2$1 = container$1;\nlet Parser2$1 = parser$1;\nlet Input$2$1 = input$1;\nfunction parse$3$1(css, opts) {\n let input2 = new Input$2$1(css, opts);\n let parser2 = new Parser2$1(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1$1 = parse$3$1;\nparse$3$1.default = parse$3$1;\nContainer$2$1.registerParse(parse$3$1);\nlet { isClean: isClean$3, my: my$3 } = symbols$1;\nlet MapGenerator$1$1 = mapGenerator$1;\nlet stringify$2$1 = stringify_1$1;\nlet Container$1$1 = container$1;\nlet Document$2$1 = document$1$1;\nlet warnOnce$1$1 = warnOnce$2$1;\nlet Result$2$1 = result$1;\nlet parse$2$1 = parse_1$1;\nlet Root$3$1 = root$1;\nconst TYPE_TO_CLASS_NAME$1 = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS$1 = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS$1 = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN$1 = 0;\nfunction isPromise$1(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents$1(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME$1[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN$1,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN$1, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack$1(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN$1, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN$1, \"RootExit\"];\n } else {\n events = getEvents$1(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks$1(node2) {\n node2[isClean$3] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks$1(i2));\n return node2;\n}\nlet postcss$2$1 = {};\nlet LazyResult$2$1 = class LazyResult {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks$1(css);\n } else if (css instanceof LazyResult || css instanceof Result$2$1) {\n root2 = cleanMarks$1(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2$1;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my$3]) {\n Container$1$1.rebuild(root2);\n }\n }\n this.result = new Result$2$1(processor2, root2, opts);\n this.helpers = { ...postcss$2$1, postcss: postcss$2$1, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS$1[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS$1[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n let stack = [toStack$1(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise$1(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2$1;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean$3]) {\n child[isClean$3] = true;\n stack.push(toStack$1(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN$1) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean$3] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean$3] = true;\n let events = getEvents$1(node2);\n for (let event of events) {\n if (event === CHILDREN$1) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean$3]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2$1.registerPostcss = (dependant) => {\n postcss$2$1 = dependant;\n};\nvar lazyResult$1 = LazyResult$2$1;\nLazyResult$2$1.default = LazyResult$2$1;\nRoot$3$1.registerLazyResult(LazyResult$2$1);\nDocument$2$1.registerLazyResult(LazyResult$2$1);\nlet MapGenerator2$1 = mapGenerator$1;\nlet stringify$1$1 = stringify_1$1;\nlet warnOnce2$1 = warnOnce$2$1;\nlet parse$1$1 = parse_1$1;\nconst Result$1$1 = result$1;\nlet NoWorkResult$1$1 = class NoWorkResult {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1$1;\n this.result = new Result$1$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator2$1(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult$1 = NoWorkResult$1$1;\nNoWorkResult$1$1.default = NoWorkResult$1$1;\nlet NoWorkResult2$1 = noWorkResult$1;\nlet LazyResult$1$1 = lazyResult$1;\nlet Document$1$1 = document$1$1;\nlet Root$2$1 = root$1;\nlet Processor$1$1 = class Processor {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult2$1(this, css, opts);\n } else {\n return new LazyResult$1$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor$1 = Processor$1$1;\nProcessor$1$1.default = Processor$1$1;\nRoot$2$1.registerProcessor(Processor$1$1);\nDocument$1$1.registerProcessor(Processor$1$1);\nlet Declaration$1$1 = declaration$1;\nlet PreviousMap2$1 = previousMap$1;\nlet Comment$1$1 = comment$1;\nlet AtRule$1$1 = atRule$1;\nlet Input$1$1 = input$1;\nlet Root$1$1 = root$1;\nlet Rule$1$1 = rule$1;\nfunction fromJSON$1$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap2$1.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1$1 = fromJSON$1$1;\nfromJSON$1$1.default = fromJSON$1$1;\nlet CssSyntaxError2$1 = cssSyntaxError$1;\nlet Declaration2$1 = declaration$1;\nlet LazyResult2$1 = lazyResult$1;\nlet Container2$1 = container$1;\nlet Processor2$1 = processor$1;\nlet stringify$5 = stringify_1$1;\nlet fromJSON$2 = fromJSON_1$1;\nlet Document22 = document$1$1;\nlet Warning2$1 = warning$1;\nlet Comment2$1 = comment$1;\nlet AtRule2$1 = atRule$1;\nlet Result2$1 = result$1;\nlet Input2$1 = input$1;\nlet parse$5 = parse_1$1;\nlet list$3 = list_1$1;\nlet Rule2$1 = rule$1;\nlet Root2$1 = root$1;\nlet Node2$1 = node$1;\nfunction postcss$3(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor2$1(plugins);\n}\npostcss$3.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor2$1().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss$3([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss$3.stringify = stringify$5;\npostcss$3.parse = parse$5;\npostcss$3.fromJSON = fromJSON$2;\npostcss$3.list = list$3;\npostcss$3.comment = (defaults) => new Comment2$1(defaults);\npostcss$3.atRule = (defaults) => new AtRule2$1(defaults);\npostcss$3.decl = (defaults) => new Declaration2$1(defaults);\npostcss$3.rule = (defaults) => new Rule2$1(defaults);\npostcss$3.root = (defaults) => new Root2$1(defaults);\npostcss$3.document = (defaults) => new Document22(defaults);\npostcss$3.CssSyntaxError = CssSyntaxError2$1;\npostcss$3.Declaration = Declaration2$1;\npostcss$3.Container = Container2$1;\npostcss$3.Processor = Processor2$1;\npostcss$3.Document = Document22;\npostcss$3.Comment = Comment2$1;\npostcss$3.Warning = Warning2$1;\npostcss$3.AtRule = AtRule2$1;\npostcss$3.Result = Result2$1;\npostcss$3.Input = Input2$1;\npostcss$3.Rule = Rule2$1;\npostcss$3.Root = Root2$1;\npostcss$3.Node = Node2$1;\nLazyResult2$1.registerPostcss(postcss$3);\nvar postcss_1$1 = postcss$3;\npostcss$3.default = postcss$3;\nconst postcss$1$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(postcss_1$1);\npostcss$1$1.stringify;\npostcss$1$1.fromJSON;\npostcss$1$1.plugin;\npostcss$1$1.parse;\npostcss$1$1.list;\npostcss$1$1.document;\npostcss$1$1.comment;\npostcss$1$1.atRule;\npostcss$1$1.rule;\npostcss$1$1.decl;\npostcss$1$1.root;\npostcss$1$1.CssSyntaxError;\npostcss$1$1.Declaration;\npostcss$1$1.Container;\npostcss$1$1.Processor;\npostcss$1$1.Document;\npostcss$1$1.Comment;\npostcss$1$1.Warning;\npostcss$1$1.AtRule;\npostcss$1$1.Result;\npostcss$1$1.Input;\npostcss$1$1.Rule;\npostcss$1$1.Root;\npostcss$1$1.Node;\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nfunction getDefaultExportFromCjs(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser = { exports: {} };\nvar x = String;\nvar create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x };\n};\npicocolors_browser.exports = create();\npicocolors_browser.exports.createColors = create;\nvar picocolors_browserExports = picocolors_browser.exports;\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nlet pico = picocolors_browserExports;\nlet terminalHighlight$1 = require$$2;\nlet CssSyntaxError$3 = class CssSyntaxError2 extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError2);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n if (terminalHighlight$1) {\n if (color) css = terminalHighlight$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError = CssSyntaxError$3;\nCssSyntaxError$3.default = CssSyntaxError$3;\nvar symbols = {};\nsymbols.isClean = Symbol(\"isClean\");\nsymbols.my = Symbol(\"my\");\nconst DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2 = class Stringifier2 {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier = Stringifier$2;\nStringifier$2.default = Stringifier$2;\nlet Stringifier$1 = stringifier;\nfunction stringify$4(node2, builder) {\n let str = new Stringifier$1(builder);\n str.stringify(node2);\n}\nvar stringify_1 = stringify$4;\nstringify$4.default = stringify$4;\nlet { isClean: isClean$2, my: my$2 } = symbols;\nlet CssSyntaxError$2 = cssSyntaxError;\nlet Stringifier22 = stringifier;\nlet stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4 = class Node3 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2] = false;\n this[my$2] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2]) {\n this[isClean$2] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier22();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node = Node$4;\nNode$4.default = Node$4;\nlet Node$3 = node;\nlet Declaration$4 = class Declaration2 extends Node$3 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration = Declaration$4;\nDeclaration$4.default = Declaration$4;\nlet urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet nanoid$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure = { nanoid: nanoid$1};\nlet { SourceMapConsumer: SourceMapConsumer$2, SourceMapGenerator: SourceMapGenerator$2 } = require$$2;\nlet { existsSync, readFileSync } = require$$2;\nlet { dirname: dirname$1, join } = require$$2;\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2 = class PreviousMap2 {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2) {\n return SourceMapGenerator$2.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap = PreviousMap$2;\nPreviousMap$2.default = PreviousMap$2;\nlet { SourceMapConsumer: SourceMapConsumer$1, SourceMapGenerator: SourceMapGenerator$1 } = require$$2;\nlet { fileURLToPath, pathToFileURL: pathToFileURL$1 } = require$$2;\nlet { isAbsolute, resolve: resolve$1 } = require$$2;\nlet { nanoid } = nonSecure;\nlet terminalHighlight = require$$2;\nlet CssSyntaxError$1 = cssSyntaxError;\nlet PreviousMap$1 = previousMap;\nlet fromOffsetCache = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1 = Boolean(SourceMapConsumer$1 && SourceMapGenerator$1);\nlet pathAvailable$1 = Boolean(resolve$1 && isAbsolute);\nlet Input$4 = class Input2 {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1(opts.from);\n }\n }\n if (pathAvailable$1 && sourceMapAvailable$1) {\n let map = new PreviousMap$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1) {\n result2.input.url = pathToFileURL$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input = Input$4;\nInput$4.default = Input$4;\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input$4);\n}\nlet { SourceMapConsumer, SourceMapGenerator } = require$$2;\nlet { dirname, relative, resolve, sep } = require$$2;\nlet { pathToFileURL } = require$$2;\nlet Input$3 = input;\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\nlet pathAvailable = Boolean(dirname && resolve && relative && sep);\nlet MapGenerator$2 = class MapGenerator2 {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator = MapGenerator$2;\nlet Node$2 = node;\nlet Comment$4 = class Comment2 extends Node$2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment = Comment$4;\nComment$4.default = Comment$4;\nlet { isClean: isClean$1, my: my$1 } = symbols;\nlet Declaration$3 = declaration;\nlet Comment$3 = comment;\nlet Node$1 = node;\nlet parse$4, Rule$4, AtRule$4, Root$6;\nfunction cleanSource(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp(node2) {\n node2[isClean$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp(i2);\n }\n }\n}\nlet Container$7 = class Container2 extends Node$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse$4(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1]) Container2.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1]) markDirtyUp(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7.registerParse = (dependant) => {\n parse$4 = dependant;\n};\nContainer$7.registerRule = (dependant) => {\n Rule$4 = dependant;\n};\nContainer$7.registerAtRule = (dependant) => {\n AtRule$4 = dependant;\n};\nContainer$7.registerRoot = (dependant) => {\n Root$6 = dependant;\n};\nvar container = Container$7;\nContainer$7.default = Container$7;\nContainer$7.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6.prototype);\n }\n node2[my$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7.rebuild(child);\n });\n }\n};\nlet Container$6 = container;\nlet LazyResult$4, Processor$3;\nlet Document$3 = class Document23 extends Container$6 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4(new Processor$3(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3.registerLazyResult = (dependant) => {\n LazyResult$4 = dependant;\n};\nDocument$3.registerProcessor = (dependant) => {\n Processor$3 = dependant;\n};\nvar document$1 = Document$3;\nDocument$3.default = Document$3;\nlet printed = {};\nvar warnOnce$2 = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2 = class Warning2 {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning = Warning$2;\nWarning$2.default = Warning$2;\nlet Warning$1 = warning;\nlet Result$3 = class Result2 {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result = Result$3;\nResult$3.default = Result$3;\nconst SINGLE_QUOTE = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0);\nconst BACKSLASH = \"\\\\\".charCodeAt(0);\nconst SLASH = \"/\".charCodeAt(0);\nconst NEWLINE = \"\\n\".charCodeAt(0);\nconst SPACE = \" \".charCodeAt(0);\nconst FEED = \"\\f\".charCodeAt(0);\nconst TAB = \"\t\".charCodeAt(0);\nconst CR = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES = \")\".charCodeAt(0);\nconst OPEN_CURLY = \"{\".charCodeAt(0);\nconst CLOSE_CURLY = \"}\".charCodeAt(0);\nconst SEMICOLON = \";\".charCodeAt(0);\nconst ASTERISK = \"*\".charCodeAt(0);\nconst COLON = \":\".charCodeAt(0);\nconst AT = \"@\".charCodeAt(0);\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE = /[\\da-f]/i;\nvar tokenize = function tokenizer2(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5 = container;\nlet AtRule$3 = class AtRule2 extends Container$5 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule = AtRule$3;\nAtRule$3.default = AtRule$3;\nContainer$5.registerAtRule(AtRule$3);\nlet Container$4 = container;\nlet LazyResult$3, Processor$2;\nlet Root$5 = class Root2 extends Container$4 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3(new Processor$2(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5.registerLazyResult = (dependant) => {\n LazyResult$3 = dependant;\n};\nRoot$5.registerProcessor = (dependant) => {\n Processor$2 = dependant;\n};\nvar root = Root$5;\nRoot$5.default = Root$5;\nContainer$4.registerRoot(Root$5);\nlet list$2 = {\n comma(string) {\n return list$2.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1 = list$2;\nlist$2.default = list$2;\nlet Container$3 = container;\nlet list$1 = list_1;\nlet Rule$3 = class Rule2 extends Container$3 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule = Rule$3;\nRule$3.default = Rule$3;\nContainer$3.registerRule(Rule$3);\nlet Declaration$2 = declaration;\nlet tokenizer22 = tokenize;\nlet Comment$2 = comment;\nlet AtRule$2 = atRule;\nlet Root$4 = root;\nlet Rule$2 = rule;\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1 = class Parser2 {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer22(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 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, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser = Parser$1;\nlet Container$2 = container;\nlet Parser22 = parser;\nlet Input$2 = input;\nfunction parse$3(css, opts) {\n let input2 = new Input$2(css, opts);\n let parser2 = new Parser22(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1 = parse$3;\nparse$3.default = parse$3;\nContainer$2.registerParse(parse$3);\nlet { isClean, my } = symbols;\nlet MapGenerator$1 = mapGenerator;\nlet stringify$2 = stringify_1;\nlet Container$1 = container;\nlet Document$2 = document$1;\nlet warnOnce$1 = warnOnce$2;\nlet Result$2 = result;\nlet parse$2 = parse_1;\nlet Root$3 = root;\nconst TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN = 0;\nfunction isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks(i2));\n return node2;\n}\nlet postcss$2 = {};\nlet LazyResult$2 = class LazyResult2 {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult2 || css instanceof Result$2) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container$1.rebuild(root2);\n }\n }\n this.result = new Result$2(processor2, root2, opts);\n this.helpers = { ...postcss$2, postcss: postcss$2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2.registerPostcss = (dependant) => {\n postcss$2 = dependant;\n};\nvar lazyResult = LazyResult$2;\nLazyResult$2.default = LazyResult$2;\nRoot$3.registerLazyResult(LazyResult$2);\nDocument$2.registerLazyResult(LazyResult$2);\nlet MapGenerator22 = mapGenerator;\nlet stringify$1 = stringify_1;\nlet warnOnce22 = warnOnce$2;\nlet parse$1 = parse_1;\nconst Result$1 = result;\nlet NoWorkResult$1 = class NoWorkResult2 {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1;\n this.result = new Result$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator22(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce22(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult = NoWorkResult$1;\nNoWorkResult$1.default = NoWorkResult$1;\nlet NoWorkResult22 = noWorkResult;\nlet LazyResult$1 = lazyResult;\nlet Document$1 = document$1;\nlet Root$2 = root;\nlet Processor$1 = class Processor2 {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult22(this, css, opts);\n } else {\n return new LazyResult$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor = Processor$1;\nProcessor$1.default = Processor$1;\nRoot$2.registerProcessor(Processor$1);\nDocument$1.registerProcessor(Processor$1);\nlet Declaration$1 = declaration;\nlet PreviousMap22 = previousMap;\nlet Comment$1 = comment;\nlet AtRule$1 = atRule;\nlet Input$1 = input;\nlet Root$1 = root;\nlet Rule$1 = rule;\nfunction fromJSON$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap22.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1 = fromJSON$1;\nfromJSON$1.default = fromJSON$1;\nlet CssSyntaxError22 = cssSyntaxError;\nlet Declaration22 = declaration;\nlet LazyResult22 = lazyResult;\nlet Container22 = container;\nlet Processor22 = processor;\nlet stringify = stringify_1;\nlet fromJSON = fromJSON_1;\nlet Document222 = document$1;\nlet Warning22 = warning;\nlet Comment22 = comment;\nlet AtRule22 = atRule;\nlet Result22 = result;\nlet Input22 = input;\nlet parse = parse_1;\nlet list = list_1;\nlet Rule22 = rule;\nlet Root22 = root;\nlet Node22 = node;\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor22(plugins);\n}\npostcss.plugin = function plugin2(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor22().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss.stringify = stringify;\npostcss.parse = parse;\npostcss.fromJSON = fromJSON;\npostcss.list = list;\npostcss.comment = (defaults) => new Comment22(defaults);\npostcss.atRule = (defaults) => new AtRule22(defaults);\npostcss.decl = (defaults) => new Declaration22(defaults);\npostcss.rule = (defaults) => new Rule22(defaults);\npostcss.root = (defaults) => new Root22(defaults);\npostcss.document = (defaults) => new Document222(defaults);\npostcss.CssSyntaxError = CssSyntaxError22;\npostcss.Declaration = Declaration22;\npostcss.Container = Container22;\npostcss.Processor = Processor22;\npostcss.Document = Document222;\npostcss.Comment = Comment22;\npostcss.Warning = Warning22;\npostcss.AtRule = AtRule22;\npostcss.Result = Result22;\npostcss.Input = Input22;\npostcss.Rule = Rule22;\npostcss.Root = Root22;\npostcss.Node = Node22;\nLazyResult22.registerPostcss(postcss);\nvar postcss_1 = postcss;\npostcss.default = postcss;\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs(postcss_1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nclass BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(..._args) {\n __publicField2(this, \"parentElement\", null);\n __publicField2(this, \"parentNode\", null);\n __publicField2(this, \"ownerDocument\");\n __publicField2(this, \"firstChild\", null);\n __publicField2(this, \"lastChild\", null);\n __publicField2(this, \"previousSibling\", null);\n __publicField2(this, \"nextSibling\", null);\n __publicField2(this, \"ELEMENT_NODE\", 1);\n __publicField2(this, \"TEXT_NODE\", 3);\n __publicField2(this, \"nodeType\");\n __publicField2(this, \"nodeName\");\n __publicField2(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes2 = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes2.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes2;\n }\n contains(node2) {\n if (!(node2 instanceof BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while (node2.parentNode) {\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nconst testableAccessors = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\",\n \"ownerDocument\"\n ],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nconst isAngularZonePresent = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.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 _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n untaintedBasePrototype[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a2;\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 = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction ownerDocument(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"ownerDocument\");\n}\nfunction childNodes(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentElement\");\n}\nfunction textContent(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"textContent\");\n}\nfunction contains(n2, other) {\n return getUntaintedMethod(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode(n2) {\n return getUntaintedMethod(\"Node\", n2, \"getRootNode\")();\n}\nfunction host(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nconst index = {\n ownerDocument,\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch\n};\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === \"map\") {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction throttle(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function(...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked ? d : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n }\n );\n return () => hookSetter(target, key, original || {}, true);\n}\nlet nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();\n}\nfunction getWindowScroll(win) {\n var _a2, _b, _c, _d;\n const doc = win.document;\n return {\n left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc.documentElement.scrollLeft || (doc == null ? void 0 : doc.body) && ((_a2 = index.parentElement(doc.body)) == null ? void 0 : _a2.scrollLeft) || ((_b = doc == null ? void 0 : doc.body) == null ? void 0 : _b.scrollLeft) || 0,\n top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.scrollTop) || 0\n };\n}\nfunction getWindowHeight() {\n return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction closestElementOfNode(node2) {\n if (!node2) {\n return null;\n }\n const el = node2.nodeType === node2.ELEMENT_NODE ? node2 : index.parentElement(node2);\n return el;\n}\nfunction isBlocked(node2, blockClass, blockSelector, checkAncestors) {\n if (!node2) {\n return false;\n }\n const el = closestElementOfNode(node2);\n if (!el) {\n return false;\n }\n try {\n if (typeof blockClass === \"string\") {\n if (el.classList.contains(blockClass)) return true;\n if (checkAncestors && el.closest(\".\" + blockClass) !== null) return true;\n } else {\n if (classMatchesRegex(el, blockClass, checkAncestors)) return true;\n }\n } catch (e2) {\n }\n if (blockSelector) {\n if (el.matches(blockSelector)) return true;\n if (checkAncestors && el.closest(blockSelector) !== null) return true;\n }\n return false;\n}\nfunction isSerialized(n2, mirror2) {\n return mirror2.getId(n2) !== -1;\n}\nfunction isIgnored(n2, mirror2, slimDOMOptions) {\n if (n2.tagName === \"TITLE\" && slimDOMOptions.headTitleMutations) {\n return true;\n }\n return mirror2.getId(n2) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror2) {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror2.getId(target);\n if (!mirror2.has(id)) {\n return true;\n }\n const parent = index.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, mirror2);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill$1(win = window) {\n if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype.forEach;\n }\n if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n }\n}\nfunction isSerializedIframe(n2, mirror2) {\n return Boolean(n2.nodeName === \"IFRAME\" && mirror2.getMeta(n2));\n}\nfunction isSerializedStylesheet(n2, mirror2) {\n return Boolean(\n n2.nodeName === \"LINK\" && n2.nodeType === n2.ELEMENT_NODE && n2.getAttribute && n2.getAttribute(\"rel\") === \"stylesheet\" && mirror2.getMeta(n2)\n );\n}\nfunction hasShadowRoot(n2) {\n if (!n2) return false;\n if (n2 instanceof BaseRRNode && \"shadowRoot\" in n2) {\n return Boolean(n2.shadowRoot);\n }\n return Boolean(index.shadowRoot(n2));\n}\nclass StyleSheetMirror {\n constructor() {\n __publicField(this, \"id\", 1);\n __publicField(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n }\n getId(stylesheet) {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(stylesheet, id) {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n let newId;\n if (id === void 0) {\n newId = this.id++;\n } else newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = /* @__PURE__ */ new WeakMap();\n this.idStyleMap = /* @__PURE__ */ new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction getShadowHost(n2) {\n var _a2;\n let shadowHost = null;\n if (\"getRootNode\" in n2 && ((_a2 = index.getRootNode(n2)) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && index.host(index.getRootNode(n2)))\n shadowHost = index.host(index.getRootNode(n2));\n return shadowHost;\n}\nfunction getRootShadowHost(n2) {\n let rootShadowHost = n2;\n let shadowHost;\n while (shadowHost = getShadowHost(rootShadowHost))\n rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n2) {\n const doc = index.ownerDocument(n2);\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n2);\n return index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n const doc = index.ownerDocument(n2);\n if (!doc) return false;\n return index.contains(doc, n2) || shadowHostInDom(n2);\n}\nvar 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 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 || {});\nfunction isNodeInLinkedList(n2) {\n return \"__ln\" in n2;\n}\nclass DoubleLinkedList {\n constructor() {\n __publicField(this, \"length\", 0);\n __publicField(this, \"head\", null);\n __publicField(this, \"tail\", null);\n }\n get(position) {\n if (position >= this.length) {\n throw new Error(\"Position outside of list range\");\n }\n let current = this.head;\n for (let index2 = 0; index2 < position; index2++) {\n current = (current == null ? void 0 : current.next) || null;\n }\n return current;\n }\n addNode(n2) {\n const node2 = {\n value: n2,\n previous: null,\n next: null\n };\n n2.__ln = node2;\n if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) {\n const current = n2.previousSibling.__ln.next;\n node2.next = current;\n node2.previous = n2.previousSibling.__ln;\n n2.previousSibling.__ln.next = node2;\n if (current) {\n current.previous = node2;\n }\n } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) {\n const current = n2.nextSibling.__ln.previous;\n node2.previous = current;\n node2.next = n2.nextSibling.__ln;\n n2.nextSibling.__ln.previous = node2;\n if (current) {\n current.next = node2;\n }\n } else {\n if (this.head) {\n this.head.previous = node2;\n }\n node2.next = this.head;\n this.head = node2;\n }\n if (node2.next === null) {\n this.tail = node2;\n }\n this.length++;\n }\n removeNode(n2) {\n const current = n2.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n } else {\n this.tail = null;\n }\n } else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n } else {\n this.tail = current.previous;\n }\n }\n if (n2.__ln) {\n delete n2.__ln;\n }\n this.length--;\n }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n constructor() {\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"texts\", []);\n __publicField(this, \"attributes\", []);\n __publicField(this, \"attributeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"removes\", []);\n __publicField(this, \"mapRemoves\", []);\n __publicField(this, \"movedMap\", {});\n __publicField(this, \"addedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"movedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"droppedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"removesSubTreeCache\", /* @__PURE__ */ new Set());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"blockClass\");\n __publicField(this, \"blockSelector\");\n __publicField(this, \"maskTextClass\");\n __publicField(this, \"maskTextSelector\");\n __publicField(this, \"inlineStylesheet\");\n __publicField(this, \"maskInputOptions\");\n __publicField(this, \"maskTextFn\");\n __publicField(this, \"maskInputFn\");\n __publicField(this, \"keepIframeSrcFn\");\n __publicField(this, \"recordCanvas\");\n __publicField(this, \"inlineImages\");\n __publicField(this, \"slimDOMOptions\");\n __publicField(this, \"dataURLOptions\");\n __publicField(this, \"doc\");\n __publicField(this, \"mirror\");\n __publicField(this, \"iframeManager\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"shadowDomManager\");\n __publicField(this, \"canvasManager\");\n __publicField(this, \"processedNodeManager\");\n __publicField(this, \"unattachedDoc\");\n __publicField(this, \"processMutations\", (mutations) => {\n mutations.forEach(this.processMutation);\n this.emit();\n });\n __publicField(this, \"emit\", () => {\n if (this.frozen || this.locked) {\n return;\n }\n const adds = [];\n const addedIds = /* @__PURE__ */ new Set();\n const addList = new DoubleLinkedList();\n const getNextId = (n2) => {\n let ns = n2;\n let nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n2) => {\n const parent = index.parentNode(n2);\n if (!parent || !inDom(n2)) {\n return;\n }\n let cssCaptured = false;\n if (n2.nodeType === Node.TEXT_NODE) {\n const parentTag = parent.tagName;\n if (parentTag === \"TEXTAREA\") {\n return;\n } else if (parentTag === \"STYLE\" && this.addedSet.has(parent)) {\n cssCaptured = true;\n }\n }\n const parentId = isShadowRoot(parent) ? this.mirror.getId(getShadowHost(n2)) : this.mirror.getId(parent);\n const nextId = getNextId(n2);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n2);\n }\n const sn = serializeNodeWithId(n2, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskTextClass: this.maskTextClass,\n maskTextSelector: this.maskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror)) {\n this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(\n currentN\n );\n }\n if (hasShadowRoot(n2)) {\n this.shadowDomManager.addShadowRoot(index.shadowRoot(n2), this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n this.iframeManager.attachIframe(iframe, childSn);\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n cssCaptured\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn\n });\n addedIds.add(sn.id);\n }\n };\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n }\n for (const n2 of this.movedSet) {\n if (isParentRemoved(this.removesSubTreeCache, n2, this.mirror) && !this.movedSet.has(index.parentNode(n2))) {\n continue;\n }\n pushAdd(n2);\n }\n for (const n2 of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n2) && !isParentRemoved(this.removesSubTreeCache, n2, this.mirror)) {\n pushAdd(n2);\n } else if (isAncestorInSet(this.movedSet, n2)) {\n pushAdd(n2);\n } else {\n this.droppedSet.add(n2);\n }\n }\n let candidate = null;\n while (addList.length) {\n let node2 = null;\n if (candidate) {\n const parentId = this.mirror.getId(index.parentNode(candidate.value));\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node2 = candidate;\n }\n }\n if (!node2) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n const parentId = this.mirror.getId(index.parentNode(_node.value));\n const nextId = getNextId(_node.value);\n if (nextId === -1) continue;\n else if (parentId !== -1) {\n node2 = _node;\n break;\n } else {\n const unhandledNode = _node.value;\n const parent = index.parentNode(unhandledNode);\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = index.host(parent);\n const parentId2 = this.mirror.getId(shadowHost);\n if (parentId2 !== -1) {\n node2 = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node2) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node2.previous;\n addList.removeNode(node2.value);\n pushAdd(node2.value);\n }\n const payload = {\n texts: this.texts.map((text) => {\n const n2 = text.node;\n const parent = index.parentNode(n2);\n if (parent && parent.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(parent);\n }\n return {\n id: this.mirror.getId(n2),\n value: text.value\n };\n }).filter((text) => !addedIds.has(text.id)).filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes.map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === \"string\") {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split(\"var(\").length === attributes.style.split(\"var(\").length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes\n };\n }).filter((attribute) => !addedIds.has(attribute.id)).filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds\n };\n if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) {\n return;\n }\n this.texts = [];\n this.attributes = [];\n this.attributeMap = /* @__PURE__ */ new WeakMap();\n this.removes = [];\n this.addedSet = /* @__PURE__ */ new Set();\n this.movedSet = /* @__PURE__ */ new Set();\n this.droppedSet = /* @__PURE__ */ new Set();\n this.removesSubTreeCache = /* @__PURE__ */ new Set();\n this.movedMap = {};\n this.mutationCb(payload);\n });\n __publicField(this, \"genTextAreaValueMutation\", (textarea) => {\n let item = this.attributeMap.get(textarea);\n if (!item) {\n item = {\n node: textarea,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(textarea, item);\n }\n const value = Array.from(\n index.childNodes(textarea),\n (cn) => index.textContent(cn) || \"\"\n ).join(\"\");\n item.attributes.value = maskInputValue({\n element: textarea,\n maskInputOptions: this.maskInputOptions,\n tagName: textarea.tagName,\n type: getInputType(textarea),\n value,\n maskInputFn: this.maskInputFn\n });\n });\n __publicField(this, \"processMutation\", (m) => {\n if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n return;\n }\n switch (m.type) {\n case \"characterData\": {\n const value = index.textContent(m.target);\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) && value !== m.oldValue) {\n this.texts.push({\n value: needMaskingText(\n m.target,\n this.maskTextClass,\n this.maskTextSelector,\n true\n // checkAncestors\n ) && value ? this.maskTextFn ? this.maskTextFn(value, closestElementOfNode(m.target)) : value.replace(/[\\S]/g, \"*\") : value,\n node: m.target\n });\n }\n break;\n }\n case \"attributes\": {\n const target = m.target;\n let attributeName = m.attributeName;\n let value = m.target.getAttribute(attributeName);\n if (attributeName === \"value\") {\n const type = getInputType(target);\n value = maskInputValue({\n element: target,\n maskInputOptions: this.maskInputOptions,\n tagName: target.tagName,\n type,\n value,\n maskInputFn: this.maskInputFn\n });\n }\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || value === m.oldValue) {\n return;\n }\n let item = this.attributeMap.get(m.target);\n if (target.tagName === \"IFRAME\" && attributeName === \"src\" && !this.keepIframeSrcFn(value)) {\n if (!target.contentDocument) {\n attributeName = \"rr_src\";\n } else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n if (attributeName === \"type\" && target.tagName === \"INPUT\" && (m.oldValue || \"\").toLowerCase() === \"password\") {\n target.setAttribute(\"data-rr-is-password\", \"true\");\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(\n this.doc,\n toLowerCase(target.tagName),\n toLowerCase(attributeName),\n value\n );\n if (attributeName === \"style\") {\n if (!this.unattachedDoc) {\n try {\n this.unattachedDoc = document.implementation.createHTMLDocument();\n } catch (e2) {\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement(\"span\");\n if (m.oldValue) {\n old.setAttribute(\"style\", m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) || newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === \"\") {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n } else {\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === \"\") {\n item.styleDiff[pname] = false;\n }\n }\n } else if (attributeName === \"open\" && target.tagName === \"DIALOG\") {\n if (target.matches(\"dialog:modal\")) {\n item.attributes[\"rr_open_mode\"] = \"modal\";\n } else {\n item.attributes[\"rr_open_mode\"] = \"non-modal\";\n }\n }\n }\n break;\n }\n case \"childList\": {\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n return;\n if (m.target.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(m.target);\n return;\n }\n m.addedNodes.forEach((n2) => this.genAdds(n2, m.target));\n m.removedNodes.forEach((n2) => {\n const nodeId = this.mirror.getId(n2);\n const parentId = isShadowRoot(m.target) ? this.mirror.getId(index.host(m.target)) : this.mirror.getId(m.target);\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || isIgnored(n2, this.mirror, this.slimDOMOptions) || !isSerialized(n2, this.mirror)) {\n return;\n }\n if (this.addedSet.has(n2)) {\n deepDelete(this.addedSet, n2);\n this.droppedSet.add(n2);\n } else if (this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, this.mirror)) ;\n else if (this.movedSet.has(n2) && this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(this.movedSet, n2);\n } else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0\n });\n processRemoves(n2, this.removesSubTreeCache);\n }\n this.mapRemoves.push(n2);\n });\n break;\n }\n }\n });\n __publicField(this, \"genAdds\", (n2, target) => {\n if (this.processedNodeManager.inOtherBuffer(n2, this)) return;\n if (this.addedSet.has(n2) || this.movedSet.has(n2)) return;\n if (this.mirror.hasNode(n2)) {\n if (isIgnored(n2, this.mirror, this.slimDOMOptions)) {\n return;\n }\n this.movedSet.add(n2);\n let targetId = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n2), targetId)] = true;\n }\n } else {\n this.addedSet.add(n2);\n this.droppedSet.delete(n2);\n }\n if (!isBlocked(n2, this.blockClass, this.blockSelector, false)) {\n index.childNodes(n2).forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n2)) {\n index.childNodes(index.shadowRoot(n2)).forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n2);\n });\n }\n }\n });\n }\n init(options) {\n [\n \"mutationCb\",\n \"blockClass\",\n \"blockSelector\",\n \"maskTextClass\",\n \"maskTextSelector\",\n \"inlineStylesheet\",\n \"maskInputOptions\",\n \"maskTextFn\",\n \"maskInputFn\",\n \"keepIframeSrcFn\",\n \"recordCanvas\",\n \"inlineImages\",\n \"slimDOMOptions\",\n \"dataURLOptions\",\n \"doc\",\n \"mirror\",\n \"iframeManager\",\n \"stylesheetManager\",\n \"shadowDomManager\",\n \"canvasManager\",\n \"processedNodeManager\"\n ].forEach((key) => {\n this[key] = options[key];\n });\n }\n freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n}\nfunction deepDelete(addsSet, n2) {\n addsSet.delete(n2);\n index.childNodes(n2).forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction processRemoves(n2, cache) {\n const queue = [n2];\n while (queue.length) {\n const next = queue.pop();\n if (cache.has(next)) continue;\n cache.add(next);\n index.childNodes(next).forEach((n22) => queue.push(n22));\n }\n return;\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n2);\n}\nfunction _isParentRemoved(removes, n2, _mirror2) {\n const node2 = index.parentNode(n2);\n if (!node2) return false;\n return removes.has(node2);\n}\nfunction isAncestorInSet(set, n2) {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n const parent = index.parentNode(n2);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = void 0;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = (...rest) => {\n try {\n return cb(...rest);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n throw error;\n }\n };\n return rrwebWrapped;\n};\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if (\"composedPath\" in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n } else if (\"path\" in event && event.path.length) {\n return event.path[0];\n }\n } catch {\n }\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n const observer = new (mutationObserverCtor())(\n callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer))\n );\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction initMoveObserver({\n mousemoveCb,\n sampling,\n doc,\n mirror: mirror2\n}) {\n if (sampling.mousemove === false) {\n return () => {\n };\n }\n const threshold = typeof sampling.mousemove === \"number\" ? sampling.mousemove : 50;\n const callbackThreshold = typeof sampling.mousemoveCallback === \"number\" ? sampling.mousemoveCallback : 500;\n let positions = [];\n let timeBaseline;\n const wrappedCb = throttle(\n callbackWrapper(\n (source) => {\n const totalOffset = Date.now() - timeBaseline;\n mousemoveCb(\n positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }),\n source\n );\n positions = [];\n timeBaseline = null;\n }\n ),\n callbackThreshold\n );\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n const { clientX, clientY } = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror2.getId(target),\n timeOffset: nowTimestamp() - timeBaseline\n });\n wrappedCb(\n typeof DragEvent !== \"undefined\" && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove : IncrementalSource.TouchMove\n );\n }),\n threshold,\n {\n trailing: false\n }\n )\n );\n const handlers = [\n on(\"mousemove\", updatePosition, doc),\n on(\"touchmove\", updatePosition, doc),\n on(\"drag\", updatePosition, doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initMouseInteractionObserver({\n mouseInteractionCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n if (sampling.mouseInteraction === false) {\n return () => {\n };\n }\n const disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction;\n const handlers = [];\n let currentPointerType = null;\n const getHandler = (eventKey) => {\n return (event) => {\n const target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n let pointerType = null;\n let thisEventKey = eventKey;\n if (\"pointerType\" in event) {\n switch (event.pointerType) {\n case \"mouse\":\n pointerType = PointerTypes.Mouse;\n break;\n case \"touch\":\n pointerType = PointerTypes.Touch;\n break;\n case \"pen\":\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = \"TouchStart\";\n } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = \"TouchEnd\";\n }\n } else if (pointerType === PointerTypes.Pen) ;\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (thisEventKey.startsWith(\"Touch\") && pointerType === PointerTypes.Touch || thisEventKey.startsWith(\"Mouse\") && pointerType === PointerTypes.Mouse) {\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n const e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e2) {\n return;\n }\n const id = mirror2.getId(target);\n const { clientX, clientY } = e2;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...pointerType !== null && { pointerType }\n });\n };\n };\n Object.keys(MouseInteractions).filter(\n (key) => Number.isNaN(Number(key)) && !key.endsWith(\"_Departed\") && disableMap[key] !== false\n ).forEach((eventKey) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace(\n \"mouse\",\n \"pointer\"\n );\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initScrollObserver({\n scrollCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const id = mirror2.getId(target);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top\n });\n } else {\n scrollCb({\n id,\n x: target.scrollLeft,\n y: target.scrollTop\n });\n }\n }),\n sampling.scroll || 100\n )\n );\n return on(\"scroll\", updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(\n throttle(\n callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height)\n });\n lastH = height;\n lastW = width;\n }\n }),\n 200\n )\n );\n return on(\"resize\", updateDimension, win);\n}\nconst INPUT_TAGS = [\"INPUT\", \"TEXTAREA\", \"SELECT\"];\nconst lastInputValueMap = /* @__PURE__ */ new WeakMap();\nfunction initInputObserver({\n inputCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n ignoreClass,\n ignoreSelector,\n maskInputOptions,\n maskInputFn,\n sampling,\n userTriggeredOnInput\n}) {\n function eventHandler(event) {\n let target = getEventTarget(event);\n const userTriggered = event.isTrusted;\n const tagName = target && target.tagName;\n if (target && tagName === \"OPTION\") {\n target = index.parentElement(target);\n }\n if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n if (target.classList.contains(ignoreClass) || ignoreSelector && target.matches(ignoreSelector)) {\n return;\n }\n let text = target.value;\n let isChecked = false;\n const type = getInputType(target) || \"\";\n if (type === \"radio\" || type === \"checkbox\") {\n isChecked = target.checked;\n } else if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) {\n text = maskInputValue({\n element: target,\n maskInputOptions,\n tagName,\n type,\n value: text,\n maskInputFn\n });\n }\n cbWithDedup(\n target,\n userTriggeredOnInput ? { text, isChecked, userTriggered } : { text, isChecked }\n );\n const name = target.name;\n if (type === \"radio\" && name && isChecked) {\n doc.querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`).forEach((el) => {\n if (el !== target) {\n const text2 = el.value;\n cbWithDedup(\n el,\n userTriggeredOnInput ? { text: text2, isChecked: !isChecked, userTriggered: false } : { text: text2, isChecked: !isChecked }\n );\n }\n });\n }\n }\n function cbWithDedup(target, v2) {\n const lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked) {\n lastInputValueMap.set(target, v2);\n const id = mirror2.getId(target);\n callbackWrapper(inputCb)({\n ...v2,\n id\n });\n }\n }\n const events = sampling.input === \"last\" ? [\"change\"] : [\"input\", \"change\"];\n const handlers = events.map(\n (eventName) => on(eventName, callbackWrapper(eventHandler), doc)\n );\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(\n currentWindow.HTMLInputElement.prototype,\n \"value\"\n );\n const hookProperties = [\n [currentWindow.HTMLInputElement.prototype, \"value\"],\n [currentWindow.HTMLInputElement.prototype, \"checked\"],\n [currentWindow.HTMLSelectElement.prototype, \"value\"],\n [currentWindow.HTMLTextAreaElement.prototype, \"value\"],\n // Some UI library use selectedIndex to set select value\n [currentWindow.HTMLSelectElement.prototype, \"selectedIndex\"],\n [currentWindow.HTMLOptionElement.prototype, \"selected\"]\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(\n ...hookProperties.map(\n (p) => hookSetter(\n p[0],\n p[1],\n {\n set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false\n // userTriggered to false as this could well be programmatic\n });\n }\n },\n false,\n currentWindow\n )\n )\n );\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction getNestedCSSRulePositions(rule2) {\n const positions = [];\n function recurse(childRule, pos) {\n if (hasNestedCSSRule(\"CSSGroupingRule\") && childRule.parentRule instanceof CSSGroupingRule || hasNestedCSSRule(\"CSSMediaRule\") && childRule.parentRule instanceof CSSMediaRule || hasNestedCSSRule(\"CSSSupportsRule\") && childRule.parentRule instanceof CSSSupportsRule || hasNestedCSSRule(\"CSSConditionRule\") && childRule.parentRule instanceof CSSConditionRule) {\n const rules2 = Array.from(\n childRule.parentRule.cssRules\n );\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n } else if (childRule.parentStyleSheet) {\n const rules2 = Array.from(childRule.parentStyleSheet.cssRules);\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n }\n return pos;\n }\n return recurse(rule2, positions);\n}\nfunction getIdAndStyleId(sheet, mirror2, styleMirror) {\n let id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id\n };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror: mirror2, stylesheetManager }, { win }) {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return () => {\n };\n }\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule: rule2, index: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.addRule = function(selector, styleBlock, index2 = this.cssRules.length) {\n const rule2 = `${selector} { ${styleBlock} }`;\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule2, index2]);\n };\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.removeRule = function(index2) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index2]);\n };\n let replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n let replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n const supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule(\"CSSGroupingRule\")) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n if (canMonkeyPatchNestedCSSRule(\"CSSMediaRule\")) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSConditionRule\")) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSSupportsRule\")) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n const unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: type.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: type.prototype.deleteRule\n };\n type.prototype.insertRule = new Proxy(\n unmodifiedFunctions[typeKey].insertRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule: rule2,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index2 || 0\n // defaults to 0\n ]\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n type.prototype.deleteRule = new Proxy(\n unmodifiedFunctions[typeKey].deleteRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index2] }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n });\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver({\n mirror: mirror2,\n stylesheetManager\n}, host2) {\n var _a2, _b, _c;\n let hostId = null;\n if (host2.nodeName === \"#document\") hostId = mirror2.getId(host2);\n else hostId = mirror2.getId(index.host(host2));\n const patchTarget = host2.nodeName === \"#document\" ? (_a2 = host2.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host2.ownerDocument) == null ? void 0 : _b.defaultView) == null ? void 0 : _c.ShadowRoot;\n const originalPropertyDescriptor = (patchTarget == null ? void 0 : patchTarget.prototype) ? Object.getOwnPropertyDescriptor(\n patchTarget == null ? void 0 : patchTarget.prototype,\n \"adoptedStyleSheets\"\n ) : void 0;\n if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor)\n return () => {\n };\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get() {\n var _a3;\n return (_a3 = originalPropertyDescriptor.get) == null ? void 0 : _a3.call(this);\n },\n set(sheets) {\n var _a3;\n const result2 = (_a3 = originalPropertyDescriptor.set) == null ? void 0 : _a3.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e2) {\n }\n }\n return result2;\n }\n });\n return callbackWrapper(() => {\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set\n });\n });\n}\nfunction initStyleDeclarationObserver({\n styleDeclarationCb,\n mirror: mirror2,\n ignoreCSSAttributes,\n stylesheetManager\n}, { win }) {\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property, value, priority] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver({\n mediaInteractionCb,\n blockClass,\n blockSelector,\n mirror: mirror2,\n sampling,\n doc\n}) {\n const handler = callbackWrapper(\n (type) => throttle(\n callbackWrapper((event) => {\n const target = getEventTarget(event);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const { currentTime, volume, muted, playbackRate, loop } = target;\n mediaInteractionCb({\n type,\n id: mirror2.getId(target),\n currentTime,\n volume,\n muted,\n playbackRate,\n loop\n });\n }),\n sampling.media || 500\n )\n );\n const handlers = [\n on(\"play\", handler(MediaInteractions.Play), doc),\n on(\"pause\", handler(MediaInteractions.Pause), doc),\n on(\"seeked\", handler(MediaInteractions.Seeked), doc),\n on(\"volumechange\", handler(MediaInteractions.VolumeChange), doc),\n on(\"ratechange\", handler(MediaInteractions.RateChange), doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initFontObserver({ fontCb, doc }) {\n const win = doc.defaultView;\n if (!win) {\n return () => {\n };\n }\n const handlers = [];\n const fontMap = /* @__PURE__ */ new WeakMap();\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace2(family, source, descriptors) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== \"string\",\n descriptors,\n fontSource: typeof source === \"string\" ? source : JSON.stringify(Array.from(new Uint8Array(source)))\n });\n return fontFace;\n };\n const restoreHandler = patch(\n doc.fonts,\n \"add\",\n function(original) {\n return function(fontFace) {\n setTimeout(\n callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }),\n 0\n );\n return original.apply(this, [fontFace]);\n };\n }\n );\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initSelectionObserver(param) {\n const { doc, mirror: mirror2, blockClass, blockSelector, selectionCb } = param;\n let collapsed = true;\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n if (!selection || collapsed && (selection == null ? void 0 : selection.isCollapsed)) return;\n collapsed = selection.isCollapsed || false;\n const ranges = [];\n const count = selection.rangeCount || 0;\n for (let i2 = 0; i2 < count; i2++) {\n const range = selection.getRangeAt(i2);\n const { startContainer, startOffset, endContainer, endOffset } = range;\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) || isBlocked(endContainer, blockClass, blockSelector, true);\n if (blocked) continue;\n ranges.push({\n start: mirror2.getId(startContainer),\n startOffset,\n end: mirror2.getId(endContainer),\n endOffset\n });\n }\n selectionCb({ ranges });\n });\n updateSelection();\n return on(\"selectionchange\", updateSelection);\n}\nfunction initCustomElementObserver({\n doc,\n customElementCb\n}) {\n const win = doc.defaultView;\n if (!win || !win.customElements) return () => {\n };\n const restoreHandler = patch(\n win.customElements,\n \"define\",\n function(original) {\n return function(name, constructor, options) {\n try {\n customElementCb({\n define: {\n name\n }\n });\n } catch (e2) {\n console.warn(`Custom element callback failed for ${name}`);\n }\n return original.apply(this, [name, constructor, options]);\n };\n }\n );\n return restoreHandler;\n}\nfunction mergeHooks(o2, hooks) {\n const {\n mutationCb,\n mousemoveCb,\n mouseInteractionCb,\n scrollCb,\n viewportResizeCb,\n inputCb,\n mediaInteractionCb,\n styleSheetRuleCb,\n styleDeclarationCb,\n canvasMutationCb,\n fontCb,\n selectionCb,\n customElementCb\n } = o2;\n o2.mutationCb = (...p) => {\n if (hooks.mutation) {\n hooks.mutation(...p);\n }\n mutationCb(...p);\n };\n o2.mousemoveCb = (...p) => {\n if (hooks.mousemove) {\n hooks.mousemove(...p);\n }\n mousemoveCb(...p);\n };\n o2.mouseInteractionCb = (...p) => {\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction(...p);\n }\n mouseInteractionCb(...p);\n };\n o2.scrollCb = (...p) => {\n if (hooks.scroll) {\n hooks.scroll(...p);\n }\n scrollCb(...p);\n };\n o2.viewportResizeCb = (...p) => {\n if (hooks.viewportResize) {\n hooks.viewportResize(...p);\n }\n viewportResizeCb(...p);\n };\n o2.inputCb = (...p) => {\n if (hooks.input) {\n hooks.input(...p);\n }\n inputCb(...p);\n };\n o2.mediaInteractionCb = (...p) => {\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction(...p);\n }\n mediaInteractionCb(...p);\n };\n o2.styleSheetRuleCb = (...p) => {\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule(...p);\n }\n styleSheetRuleCb(...p);\n };\n o2.styleDeclarationCb = (...p) => {\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration(...p);\n }\n styleDeclarationCb(...p);\n };\n o2.canvasMutationCb = (...p) => {\n if (hooks.canvasMutation) {\n hooks.canvasMutation(...p);\n }\n canvasMutationCb(...p);\n };\n o2.fontCb = (...p) => {\n if (hooks.font) {\n hooks.font(...p);\n }\n fontCb(...p);\n };\n o2.selectionCb = (...p) => {\n if (hooks.selection) {\n hooks.selection(...p);\n }\n selectionCb(...p);\n };\n o2.customElementCb = (...c2) => {\n if (hooks.customElement) {\n hooks.customElement(...c2);\n }\n customElementCb(...c2);\n };\n}\nfunction initObservers(o2, hooks = {}) {\n const currentWindow = o2.doc.defaultView;\n if (!currentWindow) {\n return () => {\n };\n }\n mergeHooks(o2, hooks);\n let mutationObserver;\n if (o2.recordDOM) {\n mutationObserver = initMutationObserver(o2, o2.doc);\n }\n const mousemoveHandler = initMoveObserver(o2);\n const mouseInteractionHandler = initMouseInteractionObserver(o2);\n const scrollHandler = initScrollObserver(o2);\n const viewportResizeHandler = initViewportResizeObserver(o2, {\n win: currentWindow\n });\n const inputHandler = initInputObserver(o2);\n const mediaInteractionHandler = initMediaInteractionObserver(o2);\n let styleSheetObserver = () => {\n };\n let adoptedStyleSheetObserver = () => {\n };\n let styleDeclarationObserver = () => {\n };\n let fontObserver = () => {\n };\n if (o2.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o2, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o2, {\n win: currentWindow\n });\n if (o2.collectFonts) {\n fontObserver = initFontObserver(o2);\n }\n }\n const selectionObserver = initSelectionObserver(o2);\n const customElementObserver = initCustomElementObserver(o2);\n const pluginHandlers = [];\n for (const plugin3 of o2.plugins) {\n pluginHandlers.push(\n plugin3.observer(plugin3.callback, currentWindow, plugin3.options)\n );\n }\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== \"undefined\";\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(\n typeof window[prop] !== \"undefined\" && // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[prop].prototype && \"insertRule\" in window[prop].prototype && \"deleteRule\" in window[prop].prototype\n );\n}\nclass CrossOriginIframeMirror {\n constructor(generateIdFn) {\n __publicField(this, \"iframeIdToRemoteIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"iframeRemoteIdToIdMap\", /* @__PURE__ */ new WeakMap());\n this.generateIdFn = generateIdFn;\n }\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n getIds(iframe, remoteId) {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map(\n (id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap)\n );\n }\n getRemoteId(iframe, id, map) {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== \"number\") return id;\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n }\n getRemoteIds(iframe, ids) {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n getIdToRemoteIdMap(iframe) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = /* @__PURE__ */ new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n getRemoteIdToIdMap(iframe) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = /* @__PURE__ */ new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\nclass IframeManager {\n constructor(options) {\n __publicField(this, \"iframes\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMirror\", new CrossOriginIframeMirror(genId));\n __publicField(this, \"crossOriginIframeStyleMirror\");\n __publicField(this, \"crossOriginIframeRootIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"wrappedEmit\");\n __publicField(this, \"loadListener\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"recordCrossOriginIframes\");\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(\n this.stylesheetManager.styleMirror.generateId.bind(\n this.stylesheetManager.styleMirror\n )\n );\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener(\"message\", this.handleMessage.bind(this));\n }\n }\n addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n addLoadListener(cb) {\n this.loadListener = cb;\n }\n attachIframe(iframeEl, childSn) {\n var _a2, _b;\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n });\n if (this.recordCrossOriginIframes)\n (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener(\n \"message\",\n this.handleMessage.bind(this)\n );\n (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl);\n if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n this.stylesheetManager.adoptStyleSheets(\n iframeEl.contentDocument.adoptedStyleSheets,\n this.mirror.getId(iframeEl.contentDocument)\n );\n }\n handleMessage(message) {\n const crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== \"rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n const transformedEvent = this.transformCrossOriginEvent(\n iframeEl,\n crossOriginMessageEvent.data.event\n );\n if (transformedEvent)\n this.wrappedEmit(\n transformedEvent,\n crossOriginMessageEvent.data.isCheckout\n );\n }\n transformCrossOriginEvent(iframeEl, e2) {\n var _a2;\n switch (e2.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e2.data.node, iframeEl);\n const rootId = e2.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e2.data.node, rootId);\n return {\n timestamp: e2.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e2.data.node\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n }\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e2;\n }\n case EventType.Custom: {\n this.replaceIds(\n e2.data.payload,\n iframeEl,\n [\"id\", \"parentId\", \"previousId\", \"nextId\"]\n );\n return e2;\n }\n case EventType.IncrementalSnapshot: {\n switch (e2.data.source) {\n case IncrementalSource.Mutation: {\n e2.data.adds.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\n \"parentId\",\n \"nextId\",\n \"previousId\"\n ]);\n this.replaceIdOnNode(n2.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n2.node, rootId);\n });\n e2.data.removes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"parentId\", \"id\"]);\n });\n e2.data.attributes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n e2.data.texts.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e2.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.ViewportResize: {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n return e2;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleId\"]);\n return e2;\n }\n case IncrementalSource.Font: {\n return e2;\n }\n case IncrementalSource.Selection: {\n e2.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, [\"start\", \"end\"]);\n });\n return e2;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleIds\"]);\n (_a2 = e2.data.styles) == null ? void 0 : _a2.forEach((style) => {\n this.replaceStyleIds(style, iframeEl, [\"styleId\"]);\n });\n return e2;\n }\n }\n }\n }\n return false;\n }\n replace(iframeMirror, obj, iframeEl, keys) {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== \"number\") continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(\n iframeEl,\n obj[key]\n );\n } else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n }\n replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n replaceIdOnNode(node2, iframeEl) {\n this.replaceIds(node2, iframeEl, [\"id\", \"rootId\"]);\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n patchRootIdOnNode(node2, rootId) {\n if (node2.type !== NodeType.Document && !node2.rootId) node2.rootId = rootId;\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\nclass ShadowDomManager {\n constructor(options) {\n __publicField(this, \"shadowDoms\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"scrollCb\");\n __publicField(this, \"bypassOptions\");\n __publicField(this, \"mirror\");\n __publicField(this, \"restoreHandlers\", []);\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n }\n addShadowRoot(shadowRoot2, doc) {\n if (!isNativeShadowDom(shadowRoot2)) return;\n if (this.shadowDoms.has(shadowRoot2)) return;\n this.shadowDoms.add(shadowRoot2);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this\n },\n shadowRoot2\n );\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(\n initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot2,\n mirror: this.mirror\n })\n );\n setTimeout(() => {\n if (shadowRoot2.adoptedStyleSheets && shadowRoot2.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot2.adoptedStyleSheets,\n this.mirror.getId(index.host(shadowRoot2))\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager\n },\n shadowRoot2\n )\n );\n }, 0);\n }\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n this.patchAttachShadow(\n iframeElement.contentWindow.Element,\n iframeElement.contentDocument\n );\n }\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n patchAttachShadow(element, doc) {\n const manager = this;\n this.restoreHandlers.push(\n patch(\n element.prototype,\n \"attachShadow\",\n function(original) {\n return function(option) {\n const sRoot = original.call(this, option);\n const shadowRootEl = index.shadowRoot(this);\n if (shadowRootEl && inDom(this))\n manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\n };\n }\n )\n );\n }\n reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n } catch (e2) {\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = /* @__PURE__ */ new WeakSet();\n }\n}\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor (var i$1 = 0; i$1 < chars.length; i$1++) {\n lookup[chars.charCodeAt(i$1)] = i$1;\n}\nvar encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n for (i2 = 0; i2 < len; i2 += 3) {\n base64 += chars[bytes[i2] >> 2];\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n base64 += chars[bytes[i2 + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n};\nconst canvasVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor$1(ctx, ctor) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nconst saveWebGLVar = (value, win, ctx) => {\n if (!value || !(isInstanceOfWebGLObject(value, win) || typeof value === \"object\"))\n return;\n const name = value.constructor.name;\n const list2 = variableListFor$1(ctx, name);\n let index2 = list2.indexOf(value);\n if (index2 === -1) {\n index2 = list2.length;\n list2.push(value);\n }\n return index2;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx));\n } else if (value === null) {\n return value;\n } else if (value instanceof Float32Array || value instanceof Float64Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Uint8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Int8Array || value instanceof Uint8ClampedArray) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)]\n };\n } else if (\n // SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n value instanceof ArrayBuffer\n ) {\n const name = value.constructor.name;\n const base64 = encode(value);\n return {\n rr_type: name,\n base64\n };\n } else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength\n ]\n };\n } else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof HTMLCanvasElement) {\n const name = \"HTMLImageElement\";\n const src = value.toDataURL();\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [serializeArg(value.data, win, ctx), value.width, value.height]\n };\n } else if (isInstanceOfWebGLObject(value, win) || typeof value === \"object\") {\n const name = value.constructor.name;\n const index2 = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name,\n index: index2\n };\n }\n return value;\n}\nconst serializeArgs = (args, win, ctx) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\nconst isInstanceOfWebGLObject = (value, win) => {\n const webGLConstructorNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\",\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n \"WebGLVertexArrayObjectOES\"\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter(\n (name) => typeof win[name] === \"function\"\n );\n return Boolean(\n supportedWebGLConstructorNames.find(\n (name) => value instanceof win[name]\n )\n );\n};\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n const props2D = Object.getOwnPropertyNames(\n win.CanvasRenderingContext2D.prototype\n );\n for (const prop of props2D) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n win.CanvasRenderingContext2D.prototype,\n prop,\n function(original) {\n return function(...args) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n setTimeout(() => {\n const recordArgs = serializeArgs(args, win, this);\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: recordArgs\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(\n win.CanvasRenderingContext2D.prototype,\n prop,\n {\n set(v2) {\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: [v2],\n setter: true\n });\n }\n }\n );\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction getNormalizedContextName(contextType) {\n return contextType === \"experimental-webgl\" ? \"webgl\" : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\n const handlers = [];\n try {\n const restoreHandler = patch(\n win.HTMLCanvasElement.prototype,\n \"getContext\",\n function(original) {\n return function(contextType, ...args) {\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!(\"__context\" in this)) this.__context = ctxName;\n if (setPreserveDrawingBufferToTrue && [\"webgl\", \"webgl2\"].includes(ctxName)) {\n if (args[0] && typeof args[0] === \"object\") {\n const contextAttributes = args[0];\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n console.error(\"failed to patch HTMLCanvasElement.prototype.getContext\");\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, win) {\n const handlers = [];\n const props = Object.getOwnPropertyNames(prototype);\n for (const prop of props) {\n if (\n //prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n [\n \"isContextLost\",\n \"canvas\",\n \"drawingBufferWidth\",\n \"drawingBufferHeight\"\n ].includes(prop)\n ) {\n continue;\n }\n try {\n if (typeof prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n prototype,\n prop,\n function(original) {\n return function(...args) {\n const result2 = original.apply(this, args);\n saveWebGLVar(result2, win, this);\n if (\"tagName\" in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, true)) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation = {\n type,\n property: prop,\n args: recordArgs\n };\n cb(this.canvas, mutation);\n }\n return result2;\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(prototype, prop, {\n set(v2) {\n cb(this.canvas, {\n type,\n property: prop,\n args: [v2],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n handlers.push(\n ...patchGLPrototype(\n win.WebGLRenderingContext.prototype,\n CanvasContext.WebGL,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n if (typeof win.WebGL2RenderingContext !== \"undefined\") {\n handlers.push(\n ...patchGLPrototype(\n win.WebGL2RenderingContext.prototype,\n CanvasContext.WebGL2,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nconst encodedJs = \"KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo=\";\nconst decodeBase64 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));\nconst blob = typeof window !== \"undefined\" && window.Blob && new Blob([decodeBase64(encodedJs)], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper(options) {\n let objURL;\n try {\n objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);\n if (!objURL) throw \"\";\n const worker = new Worker(objURL, {\n name: options == null ? void 0 : options.name\n });\n worker.addEventListener(\"error\", () => {\n (window.URL || window.webkitURL).revokeObjectURL(objURL);\n });\n return worker;\n } catch (e2) {\n return new Worker(\n \"data:text/javascript;base64,\" + encodedJs,\n {\n name: options == null ? void 0 : options.name\n }\n );\n } finally {\n objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);\n }\n}\nclass CanvasManager {\n constructor(options) {\n __publicField(this, \"pendingCanvasMutations\", /* @__PURE__ */ new Map());\n __publicField(this, \"rafStamps\", { latestId: 0, invokeId: null });\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"resetObservers\");\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"processMutation\", (target, mutation) => {\n const newFrame = this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n });\n const {\n sampling = \"all\",\n win,\n blockClass,\n blockSelector,\n recordCanvas,\n dataURLOptions\n } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n if (recordCanvas && sampling === \"all\")\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\n if (recordCanvas && typeof sampling === \"number\")\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n dataURLOptions\n });\n }\n reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n }\n freeze() {\n this.frozen = true;\n }\n unfreeze() {\n this.frozen = false;\n }\n lock() {\n this.locked = true;\n }\n unlock() {\n this.locked = false;\n }\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n true\n );\n const snapshotInProgressMap = /* @__PURE__ */ new Map();\n const worker = new WorkerWrapper();\n worker.onmessage = (e2) => {\n const { id } = e2.data;\n snapshotInProgressMap.set(id, false);\n if (!(\"base64\" in e2.data)) return;\n const { base64, type, width, height } = e2.data;\n this.mutationCb({\n id,\n type: CanvasContext[\"2D\"],\n commands: [\n {\n property: \"clearRect\",\n // wipe canvas\n args: [0, 0, width, height]\n },\n {\n property: \"drawImage\",\n // draws (semi-transparent) image\n args: [\n {\n rr_type: \"ImageBitmap\",\n args: [\n {\n rr_type: \"Blob\",\n data: [{ rr_type: \"ArrayBuffer\", base64 }],\n type\n }\n ]\n },\n 0,\n 0\n ]\n }\n ]\n });\n };\n const timeBetweenSnapshots = 1e3 / fps;\n let lastSnapshotTime = 0;\n let rafId;\n const getCanvas = () => {\n const matchedCanvas = [];\n win.document.querySelectorAll(\"canvas\").forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n return matchedCanvas;\n };\n const takeCanvasSnapshots = (timestamp) => {\n if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n getCanvas().forEach(async (canvas) => {\n var _a2;\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return;\n if (canvas.width === 0 || canvas.height === 0) return;\n snapshotInProgressMap.set(id, true);\n if ([\"webgl\", \"webgl2\"].includes(canvas.__context)) {\n const context = canvas.getContext(canvas.__context);\n if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n const bitmap = await createImageBitmap(canvas);\n worker.postMessage(\n {\n id,\n bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions: options.dataURLOptions\n },\n [bitmap]\n );\n });\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n };\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n initCanvasMutationObserver(win, blockClass, blockSelector) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n false\n );\n const canvas2DReset = initCanvas2DMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n startPendingCanvasMutationFlusher() {\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp) => {\n this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n }\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (_values, canvas) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n }\n );\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n const values = valuesWithType.map((value) => {\n const { type: type2, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n this.mutationCb({ id, type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n }\n}\nclass StylesheetManager {\n constructor(options) {\n __publicField(this, \"trackedLinkElements\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"adoptedStyleSheetCb\");\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n attachLinkElement(linkEl, childSn) {\n if (\"_cssText\" in childSn.attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn.attributes\n }\n ]\n });\n this.trackLinkElement(linkEl);\n }\n trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl)) return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n adoptStyleSheets(sheets, hostId) {\n if (sheets.length === 0) return;\n const adoptedStyleSheetData = {\n id: hostId,\n styleIds: []\n };\n const styles = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n styles.push({\n styleId,\n rules: Array.from(sheet.rules || CSSRule, (r2, index2) => ({\n rule: stringifyRule(r2, sheet.href),\n index: index2\n }))\n });\n } else styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n }\n // TODO: take snapshot on stylesheet reload by applying event listener\n trackStylesheetInLinkElement(_linkEl) {\n }\n}\nclass ProcessedNodeManager {\n constructor() {\n __publicField(this, \"nodeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"active\", false);\n }\n inOtherBuffer(node2, thisBuffer) {\n const buffers = this.nodeMap.get(node2);\n return buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer);\n }\n add(node2, buffer) {\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(() => {\n this.nodeMap = /* @__PURE__ */ new WeakMap();\n this.active = false;\n });\n }\n this.nodeMap.set(node2, (this.nodeMap.get(node2) || /* @__PURE__ */ new Set()).add(buffer));\n }\n destroy() {\n }\n}\nlet wrappedEmit;\nlet takeFullSnapshot$1;\nlet canvasManager;\nlet recording = false;\ntry {\n if (Array.from([1], (x2) => x2 * 2)[0] !== 2) {\n const cleanFrame = document.createElement(\"iframe\");\n document.body.appendChild(cleanFrame);\n Array.from = ((_a = cleanFrame.contentWindow) == null ? void 0 : _a.Array.from) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug(\"Unable to override Array.from\", err);\n}\nconst mirror = createMirror$2();\nfunction record(options = {}) {\n const {\n emit,\n checkoutEveryNms,\n checkoutEveryNth,\n blockClass = \"rr-block\",\n blockSelector = null,\n ignoreClass = \"rr-ignore\",\n ignoreSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n maskAllInputs,\n maskInputOptions: _maskInputOptions,\n slimDOMOptions: _slimDOMOptions,\n maskInputFn,\n maskTextFn,\n hooks,\n packFn,\n sampling = {},\n dataURLOptions = {},\n mousemoveWait,\n recordDOM = true,\n recordCanvas = false,\n recordCrossOriginIframes = false,\n recordAfter = options.recordAfter === \"DOMContentLoaded\" ? options.recordAfter : \"load\",\n userTriggeredOnInput = false,\n collectFonts = false,\n inlineImages = false,\n plugins,\n keepIframeSrcFn = () => false,\n ignoreCSSAttributes = /* @__PURE__ */ new Set([]),\n errorHandler: errorHandler2\n } = options;\n registerErrorHandler(errorHandler2);\n const inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n } catch (e2) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error(\"emit function is required\");\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n };\n }\n if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : _maskInputOptions !== void 0 ? _maskInputOptions : { password: true };\n const slimDOMOptions = slimDOMDefaults(_slimDOMOptions);\n polyfill$1();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e2) => {\n for (const plugin3 of plugins || []) {\n if (plugin3.eventProcessor) {\n e2 = plugin3.eventProcessor(e2);\n }\n }\n if (packFn && // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent) {\n e2 = packFn(e2);\n }\n return e2;\n };\n wrappedEmit = (r2, isCheckout) => {\n var _a2;\n const e2 = r2;\n e2.timestamp = nowTimestamp();\n if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);\n } else if (passEmitsToParent) {\n const message = {\n type: \"rrweb\",\n event: eventProcessor(e2),\n origin: window.location.origin,\n isCheckout\n };\n window.parent.postMessage(message, \"*\");\n }\n if (e2.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e2;\n incrementalSnapshotCount = 0;\n } else if (e2.type === EventType.IncrementalSnapshot) {\n if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot$1(true);\n }\n }\n };\n const wrappedMutationEmit = (m) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m\n }\n });\n };\n const wrappedScrollEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p\n }\n });\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p\n }\n });\n const wrappedAdoptedStyleSheetEmit = (a2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a2\n }\n });\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit\n });\n const iframeManager = new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit\n });\n for (const plugin3 of plugins || []) {\n if (plugin3.getMirror)\n plugin3.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror\n });\n }\n const processedNodeManager = new ProcessedNodeManager();\n canvasManager = new CanvasManager({\n recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass,\n blockSelector,\n mirror,\n sampling: sampling.canvas,\n dataURLOptions\n });\n const shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskTextFn,\n maskInputFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager\n },\n mirror\n });\n takeFullSnapshot$1 = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit(\n {\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight()\n }\n },\n isCheckout\n );\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach((buf) => buf.lock());\n const node2 = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n2) => {\n if (isSerializedIframe(n2, mirror)) {\n iframeManager.addIframe(n2);\n }\n if (isSerializedStylesheet(n2, mirror)) {\n stylesheetManager.trackLinkElement(n2);\n }\n if (hasShadowRoot(n2)) {\n shadowDomManager.addShadowRoot(index.shadowRoot(n2), document);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn\n });\n if (!node2) {\n return console.warn(\"Failed to snapshot the document\");\n }\n wrappedEmit(\n {\n type: EventType.FullSnapshot,\n data: {\n node: node2,\n initialOffset: getWindowScroll(window)\n }\n },\n isCheckout\n );\n mutationBuffers.forEach((buf) => buf.unlock());\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(\n document.adoptedStyleSheets,\n mirror.getId(document)\n );\n };\n try {\n const handlers = [];\n const observe = (doc) => {\n var _a2;\n return callbackWrapper(initObservers)(\n {\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions\n }\n }),\n mouseInteractionCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d\n }\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d\n }\n }),\n inputCb: (v2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v2\n }\n }),\n mediaInteractionCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p\n }\n }),\n styleSheetRuleCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r2\n }\n }),\n styleDeclarationCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r2\n }\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p\n }\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p\n }\n });\n },\n customElementCb: (c2) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c2\n }\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskTextClass,\n maskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskInputFn,\n maskTextFn,\n keepIframeSrcFn,\n blockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins: ((_a2 = plugins == null ? void 0 : plugins.filter((p) => p.observer)) == null ? void 0 : _a2.map((p) => ({\n observer: p.observer,\n options: p.options,\n callback: (payload) => wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload\n }\n })\n }))) || []\n },\n hooks\n );\n };\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n } catch (error) {\n console.warn(error);\n }\n });\n const init = () => {\n takeFullSnapshot$1();\n handlers.push(observe(document));\n recording = true;\n };\n if ([\"interactive\", \"complete\"].includes(document.readyState)) {\n init();\n } else {\n handlers.push(\n on(\"DOMContentLoaded\", () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {}\n });\n if (recordAfter === \"DOMContentLoaded\") init();\n })\n );\n handlers.push(\n on(\n \"load\",\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {}\n });\n if (recordAfter === \"load\") init();\n },\n window\n )\n );\n }\n return () => {\n handlers.forEach((handler) => {\n try {\n handler();\n } catch (error) {\n const msg = String(error).toLowerCase();\n if (!msg.includes(\"cross-origin\")) {\n console.warn(error);\n }\n }\n });\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = (tag, payload) => {\n if (!recording) {\n throw new Error(\"please add custom event after start recording\");\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag,\n payload\n }\n });\n};\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\nrecord.takeFullSnapshot = (isCheckout) => {\n if (!recording) {\n throw new Error(\"please take full snapshot after start recording\");\n }\n takeFullSnapshot$1(isCheckout);\n};\nrecord.mirror = mirror;\nvar n$1;\n!function(t2) {\n t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n}(n$1 || (n$1 = {}));\n\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nfunction rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n\nconst _state = {};\nfunction v1(options, buf, offset) {\n let bytes;\n {\n const now = Date.now();\n const rnds = rng();\n updateV1State(_state, now, rnds);\n bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, _state.clockseq, _state.node, buf, offset);\n }\n return buf ?? unsafeStringify(bytes);\n}\nfunction updateV1State(state, now, rnds) {\n state.msecs ??= -Infinity;\n state.nsecs ??= 0;\n if (now === state.msecs) {\n state.nsecs++;\n if (state.nsecs >= 10000) {\n state.node = undefined;\n state.nsecs = 0;\n }\n }\n else if (now > state.msecs) {\n state.nsecs = 0;\n }\n else if (now < state.msecs) {\n state.node = undefined;\n }\n if (!state.node) {\n state.node = rnds.slice(10, 16);\n state.node[0] |= 0x01;\n state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n }\n state.msecs = now;\n return state;\n}\nfunction v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) {\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n if (!buf) {\n buf = new Uint8Array(16);\n offset = 0;\n }\n else {\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n }\n msecs ??= Date.now();\n nsecs ??= 0;\n clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n node ??= rnds.slice(10, 16);\n msecs += 12219292800000;\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n buf[offset++] = (tl >>> 24) & 0xff;\n buf[offset++] = (tl >>> 16) & 0xff;\n buf[offset++] = (tl >>> 8) & 0xff;\n buf[offset++] = tl & 0xff;\n const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff;\n buf[offset++] = (tmh >>> 8) & 0xff;\n buf[offset++] = tmh & 0xff;\n buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10;\n buf[offset++] = (tmh >>> 16) & 0xff;\n buf[offset++] = (clockseq >>> 8) | 0x80;\n buf[offset++] = clockseq & 0xff;\n for (let n = 0; n < 6; ++n) {\n buf[offset++] = node[n];\n }\n return buf;\n}\n\nvar s;!function(e){e[e.NONE=0]=\"NONE\",e[e.ERROR=1]=\"ERROR\",e[e.WARN=2]=\"WARN\",e[e.INFO=3]=\"INFO\",e[e.DEBUG=4]=\"DEBUG\";}(s||(s={}));const i=new class{constructor(e){this.config={level:s.ERROR,enableConsole:true,enableStorage:false},this.isBrowser=\"undefined\"!=typeof window,e&&(this.config={...this.config,...e});}setConfig(e){this.config={...this.config,...e};}shouldLog(e){return e<=this.config.level}formatMessage(e,t,...s){return `[HumanBehavior ${e}] ${(new Date).toISOString()}: ${t}`}error(e,...t){if(!this.shouldLog(s.ERROR))return;const i=this.formatMessage(\"ERROR\",e);this.config.enableConsole&&console.error(i,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(i,t);}warn(e,...t){if(!this.shouldLog(s.WARN))return;const i=this.formatMessage(\"WARN\",e);this.config.enableConsole&&console.warn(i,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(i,t);}info(e,...t){if(!this.shouldLog(s.INFO))return;const i=this.formatMessage(\"INFO\",e);this.config.enableConsole&&console.log(i,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(i,t);}debug(e,...t){if(!this.shouldLog(s.DEBUG))return;const i=this.formatMessage(\"DEBUG\",e);this.config.enableConsole&&console.log(i,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(i,t);}logToStorage(e,t){try{const s=JSON.parse(localStorage.getItem(\"human_behavior_logs\")||\"[]\"),i={message:e,args:t.length>0?t:void 0,timestamp:Date.now()};s.push(i),s.length>1e3&&s.splice(0,s.length-1e3),localStorage.setItem(\"human_behavior_logs\",JSON.stringify(s));}catch(e){}}getLogs(){if(!this.isBrowser)return [];try{return JSON.parse(localStorage.getItem(\"human_behavior_logs\")||\"[]\")}catch(e){return []}}clearLogs(){this.isBrowser&&localStorage.removeItem(\"human_behavior_logs\");}};let n=false;const r=()=>n,o=(e,...t)=>{n=true;try{i.error(e,...t);}finally{n=false;}},a=(e,...t)=>{n=true;try{i.warn(e,...t);}finally{n=false;}},d=(e,...t)=>{n=true;try{i.info(e,...t);}finally{n=false;}},c=(e,...t)=>{n=true;try{i.debug(e,...t);}finally{n=false;}};class l{constructor(e){this._isPolling=false,this._pollIntervalMs=3e3,this._queue=[],this._queue=[],this._areWeOnline=true,this._sendRequest=e,\"undefined\"!=typeof window&&\"onLine\"in window.navigator&&(this._areWeOnline=window.navigator.onLine,window.addEventListener(\"online\",()=>{this._areWeOnline=true,this._flush();}),window.addEventListener(\"offline\",()=>{this._areWeOnline=false;}));}get length(){return this._queue.length}async retriableRequest(e){const t=e.retriesPerformedSoFar||0;if(t>0){const s=new URL(e.url);s.searchParams.set(\"retry_count\",t.toString()),e.url=s.toString();}try{await this._sendRequest(e);}catch(s){if(this._shouldRetry(s,t)&&t<10)return void this._enqueue(e);e.callback&&e.callback({statusCode:s.status||0,text:s.message||\"Request failed\"});}}_shouldRetry(e,t){return e.status>=400&&e.status<500?408===e.status||429===e.status:e.status>=500||!e.status}_enqueue(e){const t=e.retriesPerformedSoFar||0;e.retriesPerformedSoFar=t+1;const s=function(e){const t=3e3*2**e,s=t/2,i=Math.min(18e5,t),n=(Math.random()-.5)*(i-s);return Math.ceil(i+n)}(t),i=Date.now()+s;this._queue.push({retryAt:i,requestOptions:e});let n=`Enqueued failed request for retry in ${Math.round(s/1e3)}s`;\"undefined\"==typeof navigator||navigator.onLine||(n+=\" (Browser is offline)\"),a(n),this._isPolling||(this._isPolling=true,this._poll());}_poll(){this._poller&&clearTimeout(this._poller),this._poller=setTimeout(()=>{this._areWeOnline&&this._queue.length>0&&this._flush(),this._poll();},this._pollIntervalMs);}_flush(){const e=Date.now(),t=[],s=this._queue.filter(s=>s.retryAt<e||(t.push(s),false));if(this._queue=t,s.length>0)for(const{requestOptions:e}of s)this.retriableRequest(e).catch(e=>{o(\"Failed to retry request:\",e);});}unload(){this._poller&&(clearTimeout(this._poller),this._poller=void 0);for(const{requestOptions:e}of this._queue)try{this._sendBeaconRequest(e);}catch(e){o(\"Failed to send request via sendBeacon on unload:\",e);}this._queue=[];}_sendBeaconRequest(e){if(\"undefined\"!=typeof navigator&&navigator.sendBeacon)try{const t=new URL(e.url);t.searchParams.set(\"beacon\",\"1\");let s=null;e.body&&(\"string\"==typeof e.body?s=new Blob([e.body],{type:\"application/json\"}):e.body instanceof Blob&&(s=e.body));navigator.sendBeacon(t.toString(),s)||a(\"sendBeacon returned false for unload request\");}catch(e){o(\"Error sending beacon request:\",e);}}}class h{constructor(e,t=1e3){this.storageKey=\"human_behavior_queue\",this.maxQueueSize=t;}getQueue(){if(\"undefined\"==typeof window||!window.localStorage)return [];try{const e=window.localStorage.getItem(this.storageKey);if(!e)return [];const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch(e){return a(\"Failed to read persisted queue:\",e),[]}}setQueue(e){if(\"undefined\"!=typeof window&&window.localStorage)try{const t=e.slice(-this.maxQueueSize);window.localStorage.setItem(this.storageKey,JSON.stringify(t)),c(`Persisted ${t.length} events to storage`);}catch(t){if(\"QuotaExceededError\"===t.name||22===t.code){a(\"Storage quota exceeded, clearing old events\");try{const t=e.slice(-Math.floor(this.maxQueueSize/2));window.localStorage.setItem(this.storageKey,JSON.stringify(t));}catch(e){a(\"Failed to save smaller queue, clearing storage\"),this.clearQueue();}}else a(\"Failed to persist queue:\",t);}}addToQueue(e){const t=this.getQueue();t.push(e),t.length>this.maxQueueSize&&(t.shift(),c(\"Queue is full, the oldest event is dropped.\")),this.setQueue(t);}removeFromQueue(e){const t=this.getQueue();t.splice(0,e),this.setQueue(t);}clearQueue(){if(\"undefined\"!=typeof window&&window.localStorage)try{window.localStorage.removeItem(this.storageKey);}catch(e){a(\"Failed to clear persisted queue:\",e);}}getQueueLength(){return this.getQueue().length}}const u=\"0.8.0-beta.1\",m=1048576,p=52428.8;function g(e,t,s){return (new TextEncoder).encode(w({sessionId:s,events:[...e,t]})).length>m}function w(e){return JSON.stringify(e,(e,t)=>\"bigint\"==typeof t?t.toString():t)}function f(e,t){if(!e||\"object\"!=typeof e)return [];if((new TextEncoder).encode(w({sessionId:t,events:[e]})).length<=m)return [e];const s={...e},i=[\"screenshot\",\"html\",\"dom\",\"fullText\",\"innerHTML\",\"outerHTML\"];i.forEach(e=>{s[e]&&delete s[e];});if((new TextEncoder).encode(w({sessionId:t,events:[s]})).length<=m)return [s];return [{type:e.type,timestamp:e.timestamp,url:e.url,pathname:e.pathname,...Object.fromEntries(Object.entries(e).filter(([e,t])=>!i.includes(e)&&\"object\"!=typeof t&&\"string\"!=typeof t||\"string\"==typeof t&&t.length<1e3))}]}class y{constructor({apiKey:e,ingestionUrl:t}){this.monthlyLimitReached=false,this.sessionId=\"\",this.endUserId=null,this.cspBlocked=false,this.requestTimeout=1e4,this.currentBatchSize=100,this.apiKey=e,this.baseUrl=t,this.persistence=new h(e),this.retryQueue=new l(e=>this._sendRequestInternal(e)),this._loadPersistedEvents();}setTrackingContext(e,t){this.sessionId=e,this.endUserId=t;}async _loadPersistedEvents(){const e=this.persistence.getQueue();if(0!==e.length){c(`Loading ${e.length} persisted events from storage`);for(const t of e)try{await this.sendEventsChunked(t.events,t.sessionId,t.endUserId||void 0,t.windowId,t.automaticProperties),this.persistence.removeFromQueue(1);}catch(e){a(\"Failed to send persisted event, will retry later:\",e);}}}async _sendRequestInternal(e){const t=\"undefined\"!=typeof AbortController?new AbortController:null;let s=null;t&&(s=setTimeout(()=>{t.abort();},this.requestTimeout));try{const i=e.estimatedSize||0,n=\"POST\"===e.method&&i<p,r=await fetch(e.url,{method:e.method||\"GET\",headers:e.headers||{},body:e.body,signal:t?.signal,keepalive:n});s&&clearTimeout(s);const o=await r.text();let a=null;try{a=JSON.parse(o);}catch{}if(e.callback&&e.callback({statusCode:r.status,text:o,json:a}),!r.ok)throw {status:r.status,message:o}}catch(e){if(s&&clearTimeout(s),\"AbortError\"===e.name)throw {status:0,message:\"Request timeout\"};throw e}}unload(){this.retryQueue.unload();}checkMonthlyLimit(){return !this.monthlyLimitReached}async init(e,t){if(!this.checkMonthlyLimit())return {sessionId:e,endUserId:t};let s=null,i=null;\"undefined\"!=typeof window&&(s=window.location.href,i=document.referrer),d(\"API init called with:\",{sessionId:e,userId:t,entryURL:s,referrer:i,baseUrl:this.baseUrl});try{const n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/init`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`,Referer:i||\"\"},body:w({sessionId:e,endUserId:t,entryURL:s,referrer:i,sdkVersion:u})});if(d(\"API init response status:\",n.status),!n.ok){if(429===n.status)return this.monthlyLimitReached=!0,{sessionId:e,endUserId:t};const s=await n.text();throw o(\"API init failed:\",n.status,s),new Error(`Failed to initialize ingestion: ${n.statusText} - ${s}`)}const r=await n.json();return !0===r.monthlyLimitReached&&(this.monthlyLimitReached=!0,d(\"Monthly limit reached detected from server response\")),d(\"API init success:\",r),{sessionId:r.sessionId,endUserId:r.endUserId}}catch(e){throw o(\"API init error:\",e),e}}async sendEvents(e,t,s){const i=e.filter(e=>e&&\"object\"==typeof e),n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/events`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({sessionId:t,events:i,endUserId:s,sdkVersion:u})});if(!n.ok){if(429===n.status)throw this.monthlyLimitReached=true,new Error(\"429: Monthly video processing limit reached\");throw new Error(`Failed to send events: ${n.statusText}`)} true===(await n.json()).monthlyLimitReached&&(this.monthlyLimitReached=true,d(\"Monthly limit reached detected from events response\"));}async sendEventsChunked(e,t,s,i,n){if(!this.checkMonthlyLimit())return [];try{const r=[];let o=[];for(const a of e)if(a&&\"object\"==typeof a)if(g(o,a,t)){if(o.length>0){c(`[SDK] Sending chunk with ${o.length} events`);const e=await this.trackedFetch(`${this.baseUrl}/api/ingestion/events`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({sessionId:t,events:o,endUserId:s,windowId:i,automaticProperties:n,sdkVersion:u})});if(!e.ok){if(429===e.status)return this.monthlyLimitReached=!0,r.flat();throw new Error(`Failed to send events: ${e.statusText}`)}const a=await e.json();!0===a.monthlyLimitReached&&(this.monthlyLimitReached=!0,d(\"Monthly limit reached detected from chunked events response\")),r.push(a),o=[];}o=f(a,t);}else o.push(a);if(o.length>0){const e=await this._sendChunkWithRetry(o,t,s,i,n||o[0]?.automaticProperties);e&&r.push(e);}return r.flat()}catch(r){throw o(\"Error sending events:\",r),this._persistEvents(e,t,s,i,n),r}}async _sendChunkWithRetry(e,t,s,i,n){let r=Math.min(this.currentBatchSize,e.length),o=0;for(;o<e.length;){const c=w({sessionId:t,events:e.slice(o,o+r),endUserId:s,windowId:i,automaticProperties:n,sdkVersion:u}),l=(new TextEncoder).encode(c).length;try{const h=await this.trackedFetch(`${this.baseUrl}/api/ingestion/events`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:c},l);if(!h.ok){if(429===h.status)return this.monthlyLimitReached=!0,this._persistEvents(e.slice(o),t,s,i,n),null;if(413===h.status){a(`413 error: reducing batch size from ${r} to ${Math.max(1,Math.floor(r/2))}`),this.currentBatchSize=Math.max(1,Math.floor(r/2)),r=this.currentBatchSize;continue}return await this.retryQueue.retriableRequest({url:`${this.baseUrl}/api/ingestion/events`,method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:c,estimatedSize:l,callback:e=>{200===e.statusCode&&e.json&&!0===e.json.monthlyLimitReached&&(this.monthlyLimitReached=!0);}}),this._persistEvents(e.slice(o),t,s,i,n),null}const u=await h.json();if(!0===u.monthlyLimitReached&&(this.monthlyLimitReached=!0,d(\"Monthly limit reached detected from chunked events response\")),o+=r,o>=e.length)return u}catch(r){return a(\"Network error sending chunk, adding to retry queue:\",r),await this.retryQueue.retriableRequest({url:`${this.baseUrl}/api/ingestion/events`,method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:c,estimatedSize:l,callback:e=>{200===e.statusCode&&e.json&&true===e.json.monthlyLimitReached&&(this.monthlyLimitReached=true);}}),this._persistEvents(e.slice(o),t,s,i,n),null}}return null}_persistEvents(e,t,s,i,n){0!==e.length&&this.persistence.addToQueue({sessionId:t,events:e,endUserId:s,windowId:i,automaticProperties:n,timestamp:Date.now()});}async sendUserData(e,t,s){try{const i={userId:e,userAttributes:t,sessionId:s,posthogName:t.email||t.name||null};c(\"Sending user data to server:\",i);const n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/user`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w(i)});if(!n.ok)throw new Error(`Failed to send user data: ${n.statusText} with API key: ${this.apiKey}`);const r=await n.json();return c(\"Server response:\",r),r}catch(e){throw o(\"Error sending user data:\",e),e}}async sendUserAuth(e,t,s,i){try{const n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/user/auth`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({userId:e,userAttributes:t,sessionId:s,authFields:i})});if(!n.ok)throw new Error(`Failed to authenticate user: ${n.statusText} with API key: ${this.apiKey}`);return await n.json()}catch(e){throw o(\"Error authenticating user:\",e),e}}sendSessionEndBeacon(e,t){if(\"undefined\"==typeof navigator||\"function\"!=typeof navigator.sendBeacon)return false;try{const s={sessionId:e,endUserId:t||null,apiKey:this.apiKey},i=new Blob([w(s)],{type:\"application/json\"});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/session-end`,i)}catch{return false}}sendHeartbeatBeacon(e,t){if(\"undefined\"==typeof navigator||\"function\"!=typeof navigator.sendBeacon)return false;try{const s={sessionId:e,endUserId:t||null,apiKey:this.apiKey},i=new Blob([w(s)],{type:\"application/json\"});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/heartbeat`,i)}catch{return false}}sendBeaconEvents(e,t,s,i,n,r){const o={sessionId:t,events:e,endUserId:s||null,windowId:i,automaticProperties:n,sdkVersion:u,apiKey:this.apiKey},a=new Blob([w(o)],{type:\"application/json\"});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/events`,a)}async sendCustomEvent(e,t,s,i){d(\"[SDK] Sending custom event\",{sessionId:e,eventName:t,eventProperties:s,endUserId:i});try{const n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/customEvent`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({sessionId:e,eventName:t,eventProperties:s||{},endUserId:i||null})});if(d(\"[SDK] Custom event response\",{status:n.status,statusText:n.statusText}),!n.ok){const e=await n.text();throw o(\"[SDK] Failed to send custom event\",{status:n.status,statusText:n.statusText,errorText:e}),new Error(`Failed to send custom event: ${n.status} ${n.statusText} - ${e}`)}const r=await n.json();return c(\"[SDK] Custom event success\",r),r}catch(i){throw o(\"[SDK] Error sending custom event\",i,{sessionId:e,eventName:t,eventProperties:s}),i}}async sendCustomEventBatch(e,t,s){try{const i=await this.trackedFetch(`${this.baseUrl}/api/ingestion/customEvent/batch`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({sessionId:e,events:t,endUserId:s||null})});if(!i.ok)throw new Error(`Failed to send custom event batch: ${i.statusText}`);return await i.json()}catch(e){throw o(\"Error sending custom event batch:\",e),e}}sendCustomEventBatchBeacon(e,t,s){if(\"undefined\"==typeof navigator||\"function\"!=typeof navigator.sendBeacon)return false;try{const i={sessionId:e,events:t,endUserId:s||null,apiKey:this.apiKey},n=new Blob([w(i)],{type:\"application/json\"});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/customEvent/batch`,n)}catch{return false}}async sendLog(e){try{if(c(\"[SDK] Sending log to server:\",{level:e.level,message:e.message.substring(0,50),sessionId:e.sessionId}),!this.baseUrl)return;if(!e.sessionId)return;const t=await fetch(`${this.baseUrl}/api/ingestion/logs`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w(e)});t.ok?c(\"[SDK] Log sent successfully\"):a(\"[SDK] Failed to send log to server:\",t.status,t.statusText);}catch(e){a(\"[SDK] Failed to send log to server:\",e);}}async sendNetworkError(e){try{if(c(\"[SDK] Sending network error to server:\",{errorType:e.errorType,url:e.url.substring(0,50),sessionId:e.sessionId}),!this.baseUrl)return;if(!e.sessionId)return;const t=await fetch(`${this.baseUrl}/api/ingestion/network`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w(e)});t.ok?c(\"[SDK] Network error sent successfully\"):a(\"[SDK] Failed to send network error to server:\",t.status,t.statusText);}catch(e){a(\"[SDK] Failed to send network error to server:\",e);}}async sendIpInfo(e,t){try{if(!this.baseUrl||!e||!t)return;const s=await fetch(`${this.baseUrl}/api/ingestion/ip-info`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:w({sessionId:e,endUserId:t,ipDetectionMethod:\"server_header\"})});s.ok||a(\"[SDK] Failed to send ip-info:\",s.status,s.statusText);}catch(e){a(\"[SDK] Failed to send ip-info:\",e);}}async trackedFetch(e,s,i){const n=Date.now(),r=v1(),o=this.shouldSkipNetworkTracking(e);if(this.cspBlocked&&\"POST\"===s.method&&\"undefined\"!=typeof navigator&&\"function\"==typeof navigator.sendBeacon)return this.trackedFetchWithBeaconFallback(e,s,o);try{const t=\"undefined\"!=typeof AbortController?new AbortController:null;let a=null;t&&(a=setTimeout(()=>{t.abort();},this.requestTimeout));const d=\"POST\"===s.method&&void 0!==i&&i<p,c=await fetch(e,{...s,signal:t?.signal,keepalive:d});a&&clearTimeout(a);const l=Date.now()-n;return c.ok||o||await this.sendNetworkError({requestId:r,url:e,method:s.method||\"GET\",status:c.status,statusText:c.statusText,duration:l,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyHttpError(c.status),errorMessage:c.statusText,startTimeMs:n,spanName:`${s.method||\"GET\"} ${e}`,spanStatus:\"error\",attributes:{\"http.status_code\":c.status,\"http.status_text\":c.statusText}}).catch(()=>{}),c}catch(t){const i=Date.now()-n;if(\"AbortError\"===t.name){const e=new Error(\"Request timeout\");e.name=\"TimeoutError\",t=e;}if(this.isCSPViolation(t)&&\"POST\"===s.method&&\"undefined\"!=typeof navigator&&\"function\"==typeof navigator.sendBeacon)return this.cspBlocked=true,a(\"[SDK] CSP violation detected, falling back to sendBeacon for future requests\"),this.trackedFetchWithBeaconFallback(e,s,o);throw o||await this.sendNetworkError({requestId:r,url:e,method:s.method||\"GET\",status:null,statusText:null,duration:i,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyNetworkError(t),errorMessage:t.message,errorName:t.name,startTimeMs:n,spanName:`${s.method||\"GET\"} ${e}`,spanStatus:\"error\",attributes:{\"error.name\":t.name,\"error.message\":t.message}}).catch(()=>{}),t}}async trackedFetchWithBeaconFallback(e,t,s){try{let s=null,i=\"\";if(t.body)if(\"string\"==typeof t.body)try{s=JSON.parse(t.body),i=t.body;}catch{i=t.body;}else {if(t.body instanceof Blob){a(\"[SDK] Cannot extract apiKey from Blob body for sendBeacon, using URL param\"),e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;return navigator.sendBeacon(e,t.body)?new Response(null,{status:200,statusText:\"OK\",headers:new Headers}):new Response(null,{status:500,statusText:\"sendBeacon failed\",headers:new Headers})}i=w(t.body),s=t.body;}if(e.includes(\"/api/ingestion/\"))if(s&&\"object\"==typeof s)s.apiKey=this.apiKey,i=w(s);else if(i)try{const e=JSON.parse(i);e.apiKey=this.apiKey,i=w(e);}catch{e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;}else e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;else e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;const n=i?new Blob([i],{type:\"application/json\"}):null;return navigator.sendBeacon(e,n)?(c(\"[SDK] Successfully sent request via sendBeacon (CSP fallback)\"),new Response(null,{status:200,statusText:\"OK\",headers:new Headers})):(a(\"[SDK] sendBeacon returned false - browser may be throttling\"),new Response(null,{status:200,statusText:\"OK (sendBeacon best-effort)\",headers:new Headers}))}catch(e){return o(\"[SDK] sendBeacon fallback failed:\",e),new Response(null,{status:500,statusText:\"Failed to send via sendBeacon\",headers:new Headers})}}isCSPViolation(e){const t=(e?.message||\"\").toLowerCase();return \"typeerror\"===(e?.name||\"\").toLowerCase()&&t.includes(\"failed to fetch\")||t.includes(\"content security policy\")||t.includes(\"csp\")||t.includes(\"violates\")||t.includes(\"refused to connect\")&&t.includes(\"violates\")}shouldSkipNetworkTracking(e){if(!e||!this.baseUrl)return false;try{const t=new URL(e),s=new URL(this.baseUrl);return !(t.origin!==s.origin||!t.pathname.startsWith(\"/api/ingestion/\"))||!!e.includes(this.baseUrl)}catch(t){return e.includes(this.baseUrl)}}classifyHttpError(e){return e>=400&&e<500?\"client_error\":e>=500?\"server_error\":\"unknown_error\"}classifyNetworkError(e){const t=e.message||\"\",s=e.name||\"\";return this.isCSPViolation(e)?\"csp_violation\":t.includes(\"ERR_BLOCKED_BY_CLIENT\")||t.includes(\"ERR_BLOCKED_BY_RESPONSE\")||t.includes(\"blocked:other\")||t.includes(\"net::ERR_BLOCKED_BY_CLIENT\")||t.includes(\"net::ERR_BLOCKED_BY_RESPONSE\")||\"TypeError\"===s&&t.includes(\"Failed to fetch\")&&(t.includes(\"blocked\")||t.includes(\"ERR_BLOCKED\"))?\"blocked_by_client\":t.includes(\"CORS\")||t.includes(\"Access-Control\")?\"cors_error\":t.includes(\"timeout\")||\"TimeoutError\"===s?\"timeout_error\":t.includes(\"Failed to fetch\")||t.includes(\"NetworkError\")?\"network_error\":\"unknown_error\"}}class v{constructor(e){if(this.redactedText=\"[REDACTED]\",this.unredactedFields=new Set,this.redactedFields=new Set,this.redactionMode=\"privacy-first\",this.excludeSelectors=['[data-no-redact=\"true\"]',\".human-behavior-no-redact\"],e?.redactedText&&(this.redactedText=e.redactedText),e?.excludeSelectors&&(this.excludeSelectors=[...this.excludeSelectors,...e.excludeSelectors]),e?.redactionStrategy)if(this.redactionMode=e.redactionStrategy.mode,\"privacy-first\"===this.redactionMode)e.redactionStrategy.unredactFields&&this.setFieldsToUnredact(e.redactionStrategy.unredactFields);else {const t=['input[type=\"password\"]','[data-hb-redact=\"true\"]'],s=e.redactionStrategy.redactFields&&e.redactionStrategy.redactFields.length>0?e.redactionStrategy.redactFields:t;this.setFieldsToRedact(s);}e?.legacyRedactFields&&this.setFieldsToUnredact(e.legacyRedactFields),e?.userFields&&this.setFieldsToUnredact(e.userFields);}setFieldsToRedact(e){this.redactedFields.clear();['input[type=\"password\"]','input[type=\"password\" i]','[type=\"password\"]','[type=\"password\" i]',...e].forEach(e=>{this.redactedFields.add(e);}),this.redactedFields.size>0?c(`Redaction: Active for ${this.redactedFields.size} field(s):`,Array.from(this.redactedFields)):c(\"Redaction: No fields to redact\"),this.applyRedactionClasses();}setFieldsToUnredact(e){this.unredactedFields.clear();const t=e.filter(e=>!this.isPasswordSelector(e)||(a(`Cannot unredact password field: ${e} - Password fields are always protected`),false));t.forEach(e=>this.unredactedFields.add(e)),t.length>0?c(`Unredaction: Active for ${t.length} field(s):`,t):c(\"Unredaction: No valid fields to unredact\"),this.applyUnredactionClasses();}redactFields(e){e.forEach(e=>{this.unredactedFields.delete(e);}),this.unredactedFields.size>0?c(`Unredaction: Removed ${e.length} field(s), ${this.unredactedFields.size} remaining:`,Array.from(this.unredactedFields)):c(\"Unredaction: All fields redacted\"),this.applyUnredactionClasses();}clearUnredactedFields(){this.unredactedFields.clear(),c(\"Unredaction: All fields cleared, everything redacted\"),this.removeUnredactionClasses();}hasUnredactedFields(){return this.unredactedFields.size>0}getRedactionMode(){return this.redactionMode}getUnredactedFields(){return Array.from(this.unredactedFields)}getMaskTextSelector(){return \"privacy-first\"===this.redactionMode?0===this.unredactedFields.size?null:Array.from(this.unredactedFields).join(\",\"):0===this.redactedFields.size?null:Array.from(this.redactedFields).join(\",\")}applyRedactionClasses(){0!==this.redactedFields.size&&(\"undefined\"!=typeof document&&\"loading\"!==document.readyState?this.redactedFields.forEach(e=>{try{const t=document.querySelectorAll(e);t.forEach(e=>{e&&e.classList&&e.classList.add(\"rr-mask\");}),c(`Added rr-mask class to ${t.length} element(s) for selector: ${e}`);}catch(t){a(`Invalid selector: ${e}`);}}):c(\"DOM not ready, deferring redaction class application\"));}applyUnredactionClasses(){0!==this.unredactedFields.size&&(\"undefined\"!=typeof document&&\"loading\"!==document.readyState?this.unredactedFields.forEach(e=>{try{const t=document.querySelectorAll(e);t.forEach(e=>{e&&e.classList&&e.classList.remove(\"rr-mask\");}),c(`Removed rr-mask class from ${t.length} element(s) for selector: ${e}`);}catch(t){a(`Invalid selector: ${e}`);}}):c(\"DOM not ready, deferring unredaction class application\"));}removeUnredactionClasses(){c(\"Unredaction classes removed\");}isPasswordSelector(e){return ['input[type=\"password\"]','input[type=\"password\" i]','[type=\"password\"]','[type=\"password\" i]'].some(t=>e.toLowerCase().includes(t.toLowerCase().replace(/[\\[\\]]/g,\"\")))}getOriginalValue(e){if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)return e.value}isElementUnredacted(e){return this.shouldUnredactElement(e)}shouldUnredactElement(e){if(\"privacy-first\"===this.redactionMode){if(0===this.unredactedFields.size)return false;for(const t of this.unredactedFields)try{if(e.matches(t))return !0}catch(e){a(`Invalid selector: ${t}`);}return false}if(0===this.redactedFields.size)return true;for(const t of this.redactedFields)try{if(e.matches(t))return !1}catch(e){a(`Invalid selector: ${t}`);}return true}}new v;const _=\"undefined\"!=typeof window;function k(){if(!_)return \"unknown\";const e=navigator.userAgent.toLowerCase(),t=window.screen.width,s=window.screen.height;return /mobile|android|iphone|ipad|ipod|blackberry|windows phone/i.test(e)?/ipad/i.test(e)||t>=768&&s>=1024?\"tablet\":\"mobile\":/windows|macintosh|linux/i.test(e)?\"desktop\":\"unknown\"}function S(e){try{return new URL(e).hostname}catch{return \"\"}}function T(){if(!_)return {device_type:\"unknown\",browser:\"unknown\",browser_version:\"unknown\",os:\"unknown\",os_version:\"unknown\",screen_resolution:\"unknown\",viewport_size:\"unknown\",color_depth:0,timezone:\"unknown\",language:\"unknown\",languages:[]};const{browser:e,browser_version:t}=function(){if(!_)return {browser:\"unknown\",browser_version:\"unknown\"};const e=navigator.userAgent;if(/chrome/i.test(e)&&!/edge/i.test(e)){const t=e.match(/chrome\\/(\\d+)/i);return {browser:\"chrome\",browser_version:t?t[1]:\"unknown\"}}if(/firefox/i.test(e)){const t=e.match(/firefox\\/(\\d+)/i);return {browser:\"firefox\",browser_version:t?t[1]:\"unknown\"}}if(/safari/i.test(e)&&!/chrome/i.test(e)){const t=e.match(/version\\/(\\d+)/i);return {browser:\"safari\",browser_version:t?t[1]:\"unknown\"}}if(/edge/i.test(e)){const t=e.match(/edge\\/(\\d+)/i);return {browser:\"edge\",browser_version:t?t[1]:\"unknown\"}}if(/msie|trident/i.test(e)){const t=e.match(/msie (\\d+)/i)||e.match(/rv:(\\d+)/i);return {browser:\"ie\",browser_version:t?t[1]:\"unknown\"}}return {browser:\"unknown\",browser_version:\"unknown\"}}(),{os:s,os_version:i}=function(){if(!_)return {os:\"unknown\",os_version:\"unknown\"};const e=navigator.userAgent;if(/windows/i.test(e)){const t=e.match(/windows nt (\\d+\\.\\d+)/i);let s=\"unknown\";if(t){const e=parseFloat(t[1]);s=10===e?\"10\":6.3===e?\"8.1\":6.2===e?\"8\":6.1===e?\"7\":t[1];}return {os:\"windows\",os_version:s}}if(/macintosh|mac os x/i.test(e)){const t=e.match(/mac os x (\\d+[._]\\d+)/i);return {os:\"macos\",os_version:t?t[1].replace(\"_\",\".\"):\"unknown\"}}if(/iphone|ipad|ipod/i.test(e)){const t=e.match(/os (\\d+[._]\\d+)/i);return {os:\"ios\",os_version:t?t[1].replace(\"_\",\".\"):\"unknown\"}}if(/android/i.test(e)){const t=e.match(/android (\\d+\\.\\d+)/i);return {os:\"android\",os_version:t?t[1]:\"unknown\"}}return /linux/i.test(e)?{os:\"linux\",os_version:\"unknown\"}:{os:\"unknown\",os_version:\"unknown\"}}();return {device_type:k(),browser:e,browser_version:t,os:s,os_version:i,screen_resolution:`${window.screen.width}x${window.screen.height}`,viewport_size:`${window.innerWidth}x${window.innerHeight}`,color_depth:window.screen.colorDepth,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,language:navigator.language,languages:[...navigator.languages||[navigator.language]],raw_user_agent:navigator.userAgent}}function E(){if(!_)return {current_url:\"\",pathname:\"\",search:\"\",hash:\"\",title:\"\",referrer:\"\",referrer_domain:\"\",initial_referrer:\"\",initial_referrer_domain:\"\"};const e=window.location.href,t=document.referrer,s=function(e){const t=new URL(e),s={};return [\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_term\",\"utm_content\"].forEach(e=>{const i=t.searchParams.get(e);i&&(s[e]=i);}),s}(e);return {current_url:e,pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,title:document.title,referrer:t,referrer_domain:S(t),initial_referrer:t,initial_referrer_domain:S(t),initial_host:window.location.hostname,...s}}function I(){return {...T(),...E()}}function b(){if(!_)return {};const e=E();return {initial_referrer:e.initial_referrer,initial_referrer_domain:e.initial_referrer_domain,initial_url:e.current_url,initial_pathname:e.pathname,initial_utm_source:e.utm_source,initial_utm_medium:e.utm_medium,initial_utm_campaign:e.utm_campaign,initial_utm_term:e.utm_term,initial_utm_content:e.utm_content}}function C(){if(!_)return {};const e=E();return {current_url:e.current_url,pathname:e.pathname,search:e.search,hash:e.hash,title:e.title,referrer:e.referrer,referrer_domain:e.referrer_domain,utm_source:e.utm_source,utm_medium:e.utm_medium,utm_campaign:e.utm_campaign,utm_term:e.utm_term,utm_content:e.utm_content}}class U{constructor(e={}){this.sessionProperties={},this.userProperties={},this.initialProperties={},this.isInitialized=false,this.config={enableAutomaticProperties:true,enableSessionProperties:true,enableUserProperties:true,propertyDenylist:[],...e},this.automaticProperties=I(),this.initialize();}initialize(){this.isInitialized||(this.initialProperties=b(),this.loadSessionProperties(),this.isInitialized=true);}getEventProperties(e={}){const t={};return this.config.enableAutomaticProperties&&(Object.assign(t,this.getAutomaticProperties()),this.config.enableSessionProperties&&Object.assign(t,this.sessionProperties),this.config.enableUserProperties&&Object.assign(t,this.userProperties),this.sessionProperties.$initial_properties_captured||(Object.assign(t,this.initialProperties),this.setSessionProperty(\"$initial_properties_captured\",true))),Object.assign(t,e),this.applyDenylist(t),t}getAutomaticProperties(){return {...this.automaticProperties,...C()}}getAutomaticPropertiesWithGeoIP(e={}){return {...this.automaticProperties,...C(),...e}}setSessionProperty(e,t){this.sessionProperties[e]=t,this.saveSessionProperties();}setSessionProperties(e){Object.assign(this.sessionProperties,e),this.saveSessionProperties();}getSessionProperty(e){return this.sessionProperties[e]}removeSessionProperty(e){delete this.sessionProperties[e],this.saveSessionProperties();}setUserProperty(e,t){this.userProperties[e]=t;}setUserProperties(e){Object.assign(this.userProperties,e);}getUserProperty(e){return this.userProperties[e]}removeUserProperty(e){delete this.userProperties[e];}setOnce(e,t,s=\"user\"){\"session\"===s?e in this.sessionProperties||this.setSessionProperty(e,t):e in this.userProperties||this.setUserProperty(e,t);}clearSessionProperties(){this.sessionProperties={},this.saveSessionProperties();}clearUserProperties(){this.userProperties={};}reset(){this.clearSessionProperties(),this.clearUserProperties(),this.initialProperties={},this.isInitialized=false,this.initialize();}loadSessionProperties(){if(\"undefined\"!=typeof sessionStorage)try{const e=sessionStorage.getItem(\"hb_session_properties\");e&&(this.sessionProperties=JSON.parse(e));}catch(e){console.warn(\"Failed to load session properties:\",e);}}saveSessionProperties(){if(\"undefined\"!=typeof sessionStorage)try{sessionStorage.setItem(\"hb_session_properties\",JSON.stringify(this.sessionProperties));}catch(e){console.warn(\"Failed to save session properties:\",e);}}applyDenylist(e){this.config.propertyDenylist&&0!==this.config.propertyDenylist.length&&this.config.propertyDenylist.forEach(t=>{delete e[t];});}updateAutomaticProperties(){this.automaticProperties=I();}getAllProperties(){return {automatic:this.getAutomaticProperties(),session:{...this.sessionProperties},user:{...this.userProperties},initial:{...this.initialProperties}}}}const P=\"undefined\"!=typeof window;class D{get isTrackerStarted(){return this.isStarted}setupDomReadyHandler(){if(P)if(\"complete\"===document.readyState||\"interactive\"===document.readyState)this.onDomReady();else if(document.addEventListener){document.addEventListener(\"DOMContentLoaded\",()=>this.onDomReady(),{capture:false});const e=setInterval(()=>{\"interactive\"!==document.readyState&&\"complete\"!==document.readyState||(clearInterval(e),this.onDomReady());},10);setTimeout(()=>clearInterval(e),5e3);}else this.onDomReady();else this.onDomReady();}onDomReady(){this.isDomReady||(this.isDomReady=true,c(\"🎯 DOM is ready, processing queued requests\"),this.requestQueue.forEach(e=>{this.processRequest(e);}),this.requestQueue=[],this.domReadyHandlers.forEach(e=>e()),this.domReadyHandlers=[]);}queueRequest(e){this.isDomReady?this.processRequest(e):this.requestQueue.push(e);}async processRequest(e){switch(c(\"Processing queued request:\",e),e.type){case \"addEvent\":await this.addEvent(e.event);break;case \"identifyUser\":await this.identifyUser(e.userProperties);break;case \"trackPageView\":this.trackPageView();break;default:a(\"Unknown request type:\",e.type);}}registerDomReadyHandler(e){this.isDomReady?e():this.domReadyHandlers.push(e);}static init(e,t){if(P&&false!==t?.suppressConsoleErrors){const e=console.error;console.error=(...t)=>{const s=t.join(\" \");s.includes(\"SecurityError: Failed to execute 'toDataURL'\")||s.includes(\"Tainted canvases may not be exported\")||s.includes(\"Cannot inline img src=\")||s.includes(\"Cross-Origin\")||s.includes(\"CORS\")||s.includes(\"Access-Control-Allow-Origin\")||s.includes(\"Failed to load resource\")||s.includes(\"net::ERR_BLOCKED_BY_CLIENT\")||s.includes(\"NetworkError when attempting to fetch resource\")||s.includes(\"Failed to fetch\")||s.includes(\"TypeError: NetworkError\")||s.includes(\"HumanBehavior ERROR\")||s.includes(\"Failed to track custom event\")||s.includes(\"Error sending custom event\")||e.apply(console,t);};const t=console.warn;console.warn=(...e)=>{const s=e.join(\" \");s.includes(\"Cannot inline img src=\")||s.includes(\"Cross-Origin\")||s.includes(\"CORS\")||s.includes(\"Access-Control-Allow-Origin\")||s.includes(\"Failed to load resource\")||s.includes(\"net::ERR_BLOCKED_BY_CLIENT\")||s.includes(\"NetworkError when attempting to fetch resource\")||s.includes(\"Failed to fetch\")||s.includes(\"Custom event network error\")||s.includes(\"Request blocked by ad blocker\")||t.apply(console,e);},window.addEventListener(\"error\",e=>{const t=e.message||\"\";if(t.includes(\"SecurityError\")||t.includes(\"Tainted canvases\")||t.includes(\"toDataURL\")||t.includes(\"Cross-Origin\")||t.includes(\"CORS\")||t.includes(\"NetworkError\")||t.includes(\"Failed to fetch\"))return e.preventDefault(),false});}if(P&&window.__humanBehaviorGlobalTracker)return c(\"Tracker already initialized, returning existing instance\"),window.__humanBehaviorGlobalTracker;t?.logLevel&&this.configureLogging({level:t.logLevel});const s=new D(e,t?.ingestionUrl,{enableAutomaticProperties:t?.enableAutomaticProperties,propertyDenylist:t?.propertyDenylist,redactionStrategy:t?.redactionStrategy,redactFields:t?.redactFields,maxQueueSize:t?.maxQueueSize,enableConsoleTracking:t?.enableConsoleTracking,enableNetworkTracking:t?.enableNetworkTracking,installMetadata:t?.installMetadata});return s.recordCanvas=t?.recordCanvas??false,t?.redactFields&&s.setUnredactedFields(t.redactFields),false!==t?.enableAutomaticTracking&&s.setupAutomaticTracking(t?.automaticTrackingOptions),s.start(),s}constructor(e,s,i){if(this.eventQueue=[],this.pendingCustomEvents=[],this.pendingLogs=[],this.pendingNetworkErrors=[],this.customEventBatch=[],this.customEventBatchTimer=null,this.CUSTOM_EVENT_FLUSH_MS=100,this.CUSTOM_EVENT_BATCH_MAX=50,this._sessionActivityTimestamp=null,this._sessionStartTimestamp=null,this.userProperties={},this.isProcessing=false,this.flushInterval=null,this.FLUSH_INTERVAL_MS=3e3,this.heartbeatInterval=null,this.HEARTBEAT_INTERVAL_MS=3e4,this.SESSION_IDLE_TIMEOUT_MS=9e5,this.SESSION_MAX_LENGTH_MS=864e5,this.focusBlurGraceTimeout=null,this.FOCUS_BLUR_GRACE_MS=2e3,this.lastEmittedFocusState=null,this.endUserId=null,this.initialized=false,this.initializationPromise=null,this.monthlyLimitReached=false,this.isDomReady=false,this.requestQueue=[],this.domReadyHandlers=[],this.originalConsole=null,this.consoleTrackingEnabled=false,this.originalFetch=null,this.networkTrackingEnabled=false,this.enableConsoleTrackingFlag=true,this.enableNetworkTrackingFlag=true,this.navigationTrackingEnabled=false,this.currentUrl=\"\",this.previousUrl=\"\",this.originalPushState=null,this.originalReplaceState=null,this.navigationListeners=[],this.lastPushStateAt=0,this.NAVIGATION_DEDUPE_MS=100,this._connectionBlocked=false,this.recordInstance=null,this.sessionStartTime=Date.now(),this.rrwebRecord=null,this.fullSnapshotTimeout=null,this.recordCanvas=false,this.isStarted=false,this.minimumDurationMilliseconds=5e3,this._isIdle=\"unknown\",this._lastActivityTimestamp=Date.now(),this.IDLE_THRESHOLD_MS=3e5,this.rageClickTracker={clicks:[]},this.RAGE_CLICK_THRESHOLD_PX=30,this.RAGE_CLICK_TIMEOUT_MS=1e3,this.RAGE_CLICK_CLICK_COUNT=3,this.rageJustFiredAt=0,this.deadClickTracker={pendingClicks:new Map},this.DEAD_CLICK_SCROLL_THRESHOLD_MS=100,this.DEAD_CLICK_SELECTION_THRESHOLD_MS=2500,this.DEAD_CLICK_MUTATION_THRESHOLD_MS=100,this.DEAD_CLICK_ABSOLUTE_TIMEOUT_MS=2750,!e)throw new Error(\"Human Behavior API Key is required\");const n=s||\"https://ingest.humanbehavior.co\";if(this.api=new y({apiKey:e,ingestionUrl:n}),this.apiKey=e,this.ingestionUrl=n,this.MAX_QUEUE_SIZE=i?.maxQueueSize??1e3,this.enableConsoleTrackingFlag=false!==i?.enableConsoleTracking,this.enableNetworkTrackingFlag=false!==i?.enableNetworkTracking,this.installMetadata=i?.installMetadata,this.redactionManager=new v({redactionStrategy:i?.redactionStrategy,legacyRedactFields:i?.redactFields}),this.propertyManager=new U({enableAutomaticProperties:false!==i?.enableAutomaticProperties,propertyDenylist:i?.propertyDenylist||[]}),P){const e=\"human_behavior_end_user_id\",s=this.getCookie(e);this.endUserId=s||v1(),s?c(`Reusing existing endUserId: ${this.endUserId}`):(this.setCookie(e,this.endUserId,365),c(`Generated new endUserId: ${this.endUserId}`));}else this.endUserId=v1();if(P){const e=this.apiKey||\"default\";this._window_id_storage_key=`human_behavior_${e}_window_id`,this._primary_window_exists_storage_key=`human_behavior_${e}_primary_window_exists`,this.sessionId=this.getOrCreateSessionId(),this.windowId=this.getOrCreateWindowId(),this.currentUrl=window.location.href,window.__humanBehaviorGlobalTracker=this,this.setupWindowUnloadListener();}else this._window_id_storage_key=\"\",this._primary_window_exists_storage_key=\"\",this.sessionId=v1(),this.windowId=v1();this.api.setTrackingContext(this.sessionId,this.endUserId),this.initializationPromise=this.init().catch(e=>{o(\"Initialization failed:\",e);});}async init(){try{this.initialized=!0,P?(this.setupPageUnloadHandler(),this.setupNavigationTracking(),this.emitInstallCheck()):d(\"HumanBehaviorTracker initialized in server environment. Session tracking is disabled.\"),d(`HumanBehaviorTracker initialized with sessionId: ${this.sessionId}, endUserId: ${this.endUserId}`);}catch(e){o(\"Failed to initialize HumanBehaviorTracker:\",e),this.initialized=true;}}async emitInstallCheck(){if(!P)return;let e=\"unknown\";try{e=new URL(this.ingestionUrl).host;}catch{}await this.customEvent(\"$sdk_install_check\",{sdkVersion:\"0.8.0-beta.1\",packageName:\"humanbehavior-js\",ingestionHost:e,environment:this.installMetadata?.environment||(\"localhost\"===window.location.hostname?\"local\":\"browser\"),framework:this.installMetadata?.framework,packageManager:this.installMetadata?.packageManager,wizardVersion:this.installMetadata?.wizardVersion,installId:this.installMetadata?.installId,targetPackagePathHash:this.installMetadata?.targetPackagePathHash});}async ensureInitialized(){this.initializationPromise&&await this.initializationPromise;}setupNavigationTracking(){if(!P||this.navigationTrackingEnabled)return;this.navigationTrackingEnabled=true,c(\"Setting up navigation tracking\"),this.originalPushState=history.pushState,this.originalReplaceState=history.replaceState,history.pushState=(...e)=>{this.previousUrl=this.currentUrl,this.originalPushState.apply(history,e),this.currentUrl=window.location.href,this.lastPushStateAt=Date.now(),this.trackNavigationEvent(\"pushState\",this.previousUrl,this.currentUrl);},history.replaceState=(...e)=>{this.previousUrl=this.currentUrl,this.originalReplaceState.apply(history,e),this.currentUrl=window.location.href,this.lastPushStateAt=Date.now(),this.trackNavigationEvent(\"replaceState\",this.previousUrl,this.currentUrl);};const e=()=>{this.previousUrl=this.currentUrl,this.currentUrl=window.location.href,this.trackNavigationEvent(\"popstate\",this.previousUrl,this.currentUrl);};window.addEventListener(\"popstate\",e),this.navigationListeners.push(()=>{window.removeEventListener(\"popstate\",e);});const t=()=>{if(Date.now()-this.lastPushStateAt<this.NAVIGATION_DEDUPE_MS)return this.previousUrl=this.currentUrl,void(this.currentUrl=window.location.href);this.previousUrl=this.currentUrl,this.currentUrl=window.location.href,this.trackNavigationEvent(\"hashchange\",this.previousUrl,this.currentUrl);};window.addEventListener(\"hashchange\",t),this.navigationListeners.push(()=>{window.removeEventListener(\"hashchange\",t);});const s=setInterval(()=>{const e=window.location.href;e!==this.currentUrl&&(this.previousUrl=this.currentUrl,this.currentUrl=e,this.trackNavigationEvent(\"urlChange\",this.previousUrl,this.currentUrl));},250);this.navigationListeners.push(()=>clearInterval(s)),this.trackNavigationEvent(\"pageLoad\",\"\",this.currentUrl);}async trackNavigationEvent(e,t,s){if(this.initialized)if(\"pageLoad\"===e||t!==s)try{if(\"pageLoad\"===e||\"pushState\"===e||\"replaceState\"===e||\"popstate\"===e||\"hashchange\"===e||\"urlChange\"===e){const s={url:window.location.href,fromUrl:t,$navigation_type:e,navigationType:e,pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,referrer:document.referrer,timestamp:Date.now()};await this.customEvent(\"$pageview\",s);}c(`Navigation tracked: ${e} from ${t} to ${s}`);}catch(e){o(\"Failed to track navigation event:\",e);}else c(`Navigation dedupe: ${e} same URL (${s})`);}async trackPageView(e){if(this.initialized){this.propertyManager.updateAutomaticProperties();try{const t={url:e||window.location.href,pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,referrer:document.referrer,timestamp:(new Date).toISOString()},s=this.propertyManager.getEventProperties(t);await this.addEvent({type:5,data:{payload:{eventType:\"pageview\",...s}},timestamp:Date.now()}),c(`Pageview tracked: ${t.url}`);}catch(e){o(\"Failed to track pageview event:\",e);}}}async customEvent(e,s){if(null==e||\"string\"!=typeof e||\"\"===e.trim())return void a(\"customEvent() called with empty or invalid name; skipping\");this.endUserId||(a(`endUserId not available, using anonymous ID for event: ${e}`),this.endUserId=v1()),P&&this.checkAndRefreshSession();const i=this.propertyManager.getEventProperties(s);if(this.shouldSkipDueToMinimumDuration())return c(`Custom event '${e}' queued due to session duration below minimum`),void this.pendingCustomEvents.push({eventName:e,properties:i,timestamp:Date.now()});await this.flushPendingCustomEvents(),this.queueCustomEvent(e,i),c(`Custom event queued: ${e}`,i);}queueCustomEvent(e,t){this.customEventBatch.push({eventName:e,eventProperties:t}),this.customEventBatch.length>=this.CUSTOM_EVENT_BATCH_MAX?this.flushCustomEventBatch():null==this.customEventBatchTimer&&(this.customEventBatchTimer=setTimeout(()=>{this.customEventBatchTimer=null,this.flushCustomEventBatch();},this.CUSTOM_EVENT_FLUSH_MS));}async flushCustomEventBatch(){if(null!=this.customEventBatchTimer&&(clearTimeout(this.customEventBatchTimer),this.customEventBatchTimer=null),0===this.customEventBatch.length)return;const e=this.customEventBatch;this.customEventBatch=[];try{return await this.api.sendCustomEventBatch(this.sessionId,e,this.endUserId),void c(`Custom event batch flushed: ${e.length} event(s)`)}catch(e){o(\"Failed to flush custom event batch, falling back per-event:\",e);}for(const t of e)try{await this.api.sendCustomEvent(this.sessionId,t.eventName,t.eventProperties,this.endUserId);}catch(e){o(\"Per-event fallback also failed:\",e);try{await this.addEvent({type:5,data:{payload:{eventType:\"custom\",eventName:t.eventName,properties:t.eventProperties||{},timestamp:(new Date).toISOString(),url:P?window.location.href:\"\",pathname:P?window.location.pathname:\"\"}},timestamp:Date.now()});}catch(e){o(\"Failed to add custom event to event stream as fallback:\",e);}}}setupAutomaticTracking(e){if(!P)return;const t={trackButtons:false!==e?.trackButtons,trackLinks:false,trackForms:false!==e?.trackForms,includeText:false!==e?.includeText,includeClasses:e?.includeClasses||false};c(\"Setting up automatic tracking with config:\",t),this.setupAutocapture(t),t.trackForms&&this.setupAutomaticFormTracking(t),this.setupRageClickDetection(),this.setupDeadClickDetection();}setupAutocapture(e){document.addEventListener(\"click\",async t=>{const s=t.target;if(!s||1!==s.nodeType||\"function\"!=typeof s.closest)return;const i=s.closest('button, a, input, select, textarea, label, [role=\"button\"], [role=\"link\"], [role=\"tab\"], [role=\"menuitem\"]')||s,n=(i.tagName||\"\").toLowerCase(),r={tag:n,x:t.clientX,y:t.clientY,page:window.location.pathname,path:this.buildDomPath(i),timestamp:Date.now()};i.id&&(r.id=i.id,r.elementId=i.id);const o=i.getAttribute&&i.getAttribute(\"role\");o&&(r.role=o);const a=i.type;!a||\"input\"!==n&&\"button\"!==n||(r.type=a);const d=i.href;if(d&&(r.href=d),false!==e.includeText){const e=(i.textContent||\"\").replace(/\\s+/g,\" \").trim();e&&(r.text=e.substring(0,200),r.elementText=e.substring(0,100));}const c=i.className;e.includeClasses&&\"string\"==typeof c&&c&&(r.class=c,r.elementClass=c),await this.customEvent(\"$click\",r);});}buildDomPath(e){const t=[];let s=e,i=0;for(;s&&1===s.nodeType&&i<8;){const e=(s.tagName||\"\").toLowerCase();if(!e)break;let n=e;if(s.id)n+=\"#\"+s.id;else if(\"string\"==typeof s.className&&s.className){const e=s.className.trim().split(/\\s+/)[0];e&&(n+=\".\"+e);}if(t.unshift(n),\"body\"===e||\"html\"===e)break;s=s.parentElement,i++;}return t.join(\" > \")}setupRageClickDetection(){P&&document.addEventListener(\"click\",async e=>{const t=e.target;if(!t||1!==t.nodeType)return;const s=e.clientX,i=e.clientY,n=Date.now();if(this.isRageClick(s,i,n,t)){const e=(\"function\"==typeof t.closest?t.closest('button, a, [role=\"button\"], [role=\"link\"]'):null)||t,r=(e.tagName||\"\").toLowerCase(),o={x:s,y:i,page:window.location.pathname,element:r,clickCount:this.rageClickTracker.clicks.length,timestamp:n};e.id&&(o.elementId=e.id);const a=e.className;\"string\"==typeof a&&a&&(o.elementClass=a),e.textContent&&(o.elementText=e.textContent.trim().substring(0,100)),Object.keys(o).forEach(e=>{null!==o[e]&&void 0!==o[e]||delete o[e];}),await this.customEvent(\"$rageclick\",o),this.rageJustFiredAt=n;}});}isRageClick(e,t,s,i){if(this.rageJustFiredAt>0&&s-this.rageJustFiredAt<this.RAGE_CLICK_TIMEOUT_MS)return false;if(this.rageJustFiredAt>0&&s-this.rageJustFiredAt>=this.RAGE_CLICK_TIMEOUT_MS)return this.rageJustFiredAt=0,this.rageClickTracker.clicks=[{x:e,y:t,timestamp:s,element:i}],false;const n=this.rageClickTracker.clicks,r=n[n.length-1],o=n[0];if(o&&r&&s-r.timestamp<this.RAGE_CLICK_TIMEOUT_MS&&Math.hypot(e-o.x,t-o.y)<this.RAGE_CLICK_THRESHOLD_PX){if(n.push({x:e,y:t,timestamp:s,element:i}),n.length===this.RAGE_CLICK_CLICK_COUNT)return true}else this.rageClickTracker.clicks=[{x:e,y:t,timestamp:s,element:i}];return false}setupDeadClickDetection(){P&&(this.setupDeadClickMutationObserver(),this.setupDeadClickScrollObserver(),this.setupDeadClickSelectionObserver(),this.setupDeadClickNavigationTracking(),document.addEventListener(\"click\",e=>{const t=e.target;if(!t||1!==t.nodeType)return;if(!this.isInteractiveElement(t))return;if(this.ignoreClickForDeadDetection(t))return;const s=Date.now()+Math.random(),i=Date.now(),n=this.deadClickTracker.lastMutationTime,r=this.DEAD_CLICK_ABSOLUTE_TIMEOUT_MS,o=window.setTimeout(()=>{this.handleDeadClickTimeout(s);},r);this.deadClickTracker.pendingClicks.set(s,{element:t,originalEvent:e,timestamp:i,timer:o,cancelled:false,lastMutationTimeAtClick:n});}));}setupDeadClickMutationObserver(){P&&(this.deadClickTracker.mutationObserver||(this.deadClickTracker.mutationObserver=new MutationObserver(()=>{const e=Date.now();this.deadClickTracker.lastMutationTime=e,this.deadClickTracker.pendingClicks.forEach((t,s)=>{if(t.cancelled)return;const i=e-t.timestamp,n=t.lastMutationTimeAtClick||0,r=e>n,o=i>=0&&i<this.DEAD_CLICK_MUTATION_THRESHOLD_MS,a=i<0&&Math.abs(i)<50;(o&&r||a)&&this.cancelPendingClick(s);});}),this.deadClickTracker.mutationObserver.observe(document,{attributes:true,characterData:true,childList:true,subtree:true})));}setupDeadClickScrollObserver(){P&&window.addEventListener(\"scroll\",()=>{const e=Date.now();this.deadClickTracker.pendingClicks.forEach((t,s)=>{e-t.timestamp<this.DEAD_CLICK_SCROLL_THRESHOLD_MS&&this.cancelPendingClick(s);});},{capture:true,passive:true});}setupDeadClickSelectionObserver(){P&&document.addEventListener(\"selectionchange\",()=>{const e=Date.now();this.deadClickTracker.lastSelectionChangedTime=e,this.deadClickTracker.pendingClicks.forEach((t,s)=>{e-t.timestamp<this.DEAD_CLICK_SELECTION_THRESHOLD_MS&&this.cancelPendingClick(s);});});}setupDeadClickNavigationTracking(){if(!P)return;let e=window.location.href;const t=this.trackNavigationEvent.bind(this);this.trackNavigationEvent=async(s,i,n)=>(this.cancelAllPendingClicks(),e=window.location.href,t(s,i,n));const s=()=>{const t=window.location.href;t!==e&&(this.cancelAllPendingClicks(),e=t);};window.addEventListener(\"popstate\",s),window.addEventListener(\"hashchange\",s),window.addEventListener(\"beforeunload\",()=>{this.cancelAllPendingClicks();}),setInterval(()=>{s();},100);}isInteractiveElement(e){if(!e||1!==e.nodeType||!e.tagName)return false;const t=e.tagName.toLowerCase();if(\"button\"===t||\"a\"===t)return true;if(\"input\"===t)return false;if([\"select\",\"textarea\"].includes(t))return true;const s=e.getAttribute(\"role\");if(s&&[\"button\",\"link\",\"tab\",\"menuitem\",\"checkbox\",\"radio\"].includes(s))return true;if(e.onclick||e.getAttribute(\"onclick\"))return true;try{if(\"pointer\"===window.getComputedStyle(e).cursor)return !0}catch(e){}return !!e.closest('button, a, [role=\"button\"], [role=\"link\"], [role=\"tab\"], [role=\"menuitem\"]')}ignoreClickForDeadDetection(e){if(!e||!e.tagName)return true;if(\"html\"===e.tagName.toLowerCase())return true;const t=Date.now();for(const s of this.deadClickTracker.pendingClicks.values())if(s.element===e&&Math.abs(t-s.timestamp)<1e3)return true;return false}cancelPendingClick(e){const t=this.deadClickTracker.pendingClicks.get(e);t&&!t.cancelled&&(clearTimeout(t.timer),t.cancelled=true,this.deadClickTracker.pendingClicks.delete(e));}cancelAllPendingClicks(){this.deadClickTracker.pendingClicks.forEach((e,t)=>{e.cancelled||(clearTimeout(e.timer),this.deadClickTracker.pendingClicks.delete(t));});}async handleDeadClickTimeout(e){const t=this.deadClickTracker.pendingClicks.get(e);if(!t||t.cancelled)return;const s=Date.now()-t.timestamp;let i;const n=t.lastMutationTimeAtClick||0,r=this.deadClickTracker.lastMutationTime||0,o=r>n&&r>=t.timestamp,a=n>0&&n<t.timestamp&&t.timestamp-n<50;let d;o?i=r-t.timestamp:a&&(i=0),this.deadClickTracker.lastSelectionChangedTime&&t.timestamp<=this.deadClickTracker.lastSelectionChangedTime&&(d=this.deadClickTracker.lastSelectionChangedTime-t.timestamp);const c=void 0!==i&&i<this.DEAD_CLICK_MUTATION_THRESHOLD_MS,l=void 0!==d&&d<this.DEAD_CLICK_SELECTION_THRESHOLD_MS;c||l||await this.fireDeadClickEvent(t,s,i,d),this.deadClickTracker.pendingClicks.delete(e);}async fireDeadClickEvent(e,t,s,i){const n=e.element.closest('button, a, [role=\"button\"], [role=\"link\"]')||e.element,r={x:e.originalEvent.clientX,y:e.originalEvent.clientY,page:window.location.pathname,element:n.tagName.toLowerCase(),absoluteDelayMs:t,timestamp:e.timestamp};void 0!==s&&(r.mutationDelayMs=s),void 0!==i&&(r.selectionChangedDelayMs=i),n.id&&(r.elementId=n.id),n.className&&(r.elementClass=n.className),n.textContent&&(r.elementText=n.textContent.trim().substring(0,100)),Object.keys(r).forEach(e=>{null!==r[e]&&void 0!==r[e]||delete r[e];}),await this.customEvent(\"$deadclick\",r);}setupAutomaticLinkTracking(e){}setupAutomaticFormTracking(e){document.addEventListener(\"submit\",async t=>{const s=t.target,i=new FormData(s),n={formId:s.id||null,formAction:s.action||null,formMethod:s.method||\"get\",fields:Array.from(i.keys()),page:window.location.pathname,timestamp:Date.now()};e.includeClasses&&(n.formClass=s.className||null),Object.keys(n).forEach(e=>{null===n[e]&&delete n[e];}),await this.customEvent(\"$form_submitted\",n);});}cleanupNavigationTracking(){this.navigationTrackingEnabled&&(this.originalPushState&&(history.pushState=this.originalPushState),this.originalReplaceState&&(history.replaceState=this.originalReplaceState),this.navigationListeners.forEach(e=>e()),this.navigationListeners=[],this.navigationTrackingEnabled=false,c(\"Navigation tracking cleaned up\"));}static logToStorage(e){d(e);}static configureLogging(e){i.setConfig({level:{none:0,error:1,warn:2,info:3,debug:4}[e.level||\"error\"],enableConsole:false!==e.enableConsole,enableStorage:e.enableStorage||false});}enableConsoleTracking(){P&&!this.consoleTrackingEnabled&&(this.originalConsole={log:console.log,warn:console.warn,error:console.error},console.log=(...e)=>{this.trackConsoleEvent(\"log\",e),this.originalConsole.log(...e);},console.warn=(...e)=>{this.trackConsoleEvent(\"warn\",e),this.originalConsole.warn(...e);},console.error=(...e)=>{this.trackConsoleEvent(\"error\",e),this.originalConsole.error(...e);},this.consoleTrackingEnabled=true,c(\"Console tracking enabled\"));}enableNetworkTracking(){P&&!this.networkTrackingEnabled&&\"undefined\"!=typeof fetch&&(this.originalFetch=window.fetch.bind(window),window.fetch=async(e,s)=>{const i=Date.now(),n=v1(),r=\"string\"==typeof e?e:e instanceof URL?e.toString():e.url,o=(s?.method||(\"object\"==typeof e&&\"method\"in e?e.method:void 0)||\"GET\").toUpperCase(),a=this.shouldSkipNetworkTracking(r),d=1e4;let l=null,h=false;a||(l=setTimeout(()=>{const e=Date.now()-i;if(!h){h=true;const t={requestId:n,url:r,method:o,status:null,statusText:null,duration:e,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:\"long_loading\",errorMessage:`Request took longer than 10000ms (${e}ms elapsed)`,startTimeMs:i,spanName:`${o} ${r}`,spanStatus:\"slow\",attributes:{\"http.method\":o,\"http.url\":r,\"request.duration_ms\":e,\"request.long_loading_threshold_ms\":d},automaticProperties:this.propertyManager.getAutomaticProperties()};return this.shouldSkipDueToMinimumDuration()?(c(\"Long-loading network error queued due to session duration below minimum\"),void this.pendingNetworkErrors.push({errorData:t,timestamp:Date.now()})):(this.flushPendingNetworkErrors(),void this.api.sendNetworkError(t).catch(()=>{}))}},d));try{const t=await this.originalFetch(e,s),d=Date.now()-i;if(l&&clearTimeout(l),!t.ok&&!a){const e={requestId:n,url:r,method:o,status:t.status,statusText:t.statusText,duration:d,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyHttpError(t.status),errorMessage:t.statusText,startTimeMs:i,spanName:`${o} ${r}`,spanStatus:\"error\",attributes:{\"http.status_code\":t.status,\"http.status_text\":t.statusText},automaticProperties:this.propertyManager.getAutomaticProperties()};if(this.shouldSkipDueToMinimumDuration())return c(\"Failed request network error queued due to session duration below minimum\"),this.pendingNetworkErrors.push({errorData:e,timestamp:Date.now()}),t;this.flushPendingNetworkErrors(),this.api.sendNetworkError(e).catch(()=>{});}return t}catch(e){const t=Date.now()-i;if(l&&clearTimeout(l),!a){const s={requestId:n,url:r,method:o,status:null,statusText:null,duration:t,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyNetworkError(e),errorMessage:e.message,errorName:e.name,startTimeMs:i,spanName:`${o} ${r}`,spanStatus:\"error\",attributes:{\"error.name\":e.name,\"error.message\":e.message},automaticProperties:this.propertyManager.getAutomaticProperties()};if(this.shouldSkipDueToMinimumDuration())throw c(\"Network error queued due to session duration below minimum\"),this.pendingNetworkErrors.push({errorData:s,timestamp:Date.now()}),e;this.flushPendingNetworkErrors(),this.api.sendNetworkError(s).catch(()=>{});}throw e}},this.networkTrackingEnabled=true,c(\"Network tracking enabled\"));}async flushPendingCustomEvents(){if(0===this.pendingCustomEvents.length)return;const e=[...this.pendingCustomEvents];this.pendingCustomEvents=[],c(`Flushing ${e.length} pending custom events`);for(const{eventName:t,properties:s}of e)this.queueCustomEvent(t,s);}async flushPendingLogs(){if(0===this.pendingLogs.length)return;const e=[...this.pendingLogs];this.pendingLogs=[],c(`Flushing ${e.length} pending logs`);for(const{logData:t}of e)try{await this.api.sendLog(t);}catch(e){o(\"Failed to flush pending log:\",e);}}async flushPendingNetworkErrors(){if(0===this.pendingNetworkErrors.length)return;const e=[...this.pendingNetworkErrors];this.pendingNetworkErrors=[],c(`Flushing ${e.length} pending network errors`);for(const{errorData:t}of e)try{await this.api.sendNetworkError(t);}catch(e){o(\"Failed to flush pending network error:\",e);}}enablePageLoadTracking(){P&&\"undefined\"!=typeof window&&(\"complete\"===document.readyState?this.trackPageLoad():window.addEventListener(\"load\",()=>{this.trackPageLoad();}),c(\"Page load tracking enabled\"));}trackPageLoad(){if(P&&\"undefined\"!=typeof performance)try{const e=performance.getEntriesByType(\"navigation\")[0];if(!e)return;const s=e.loadEventEnd-e.fetchStart;if(s>3e3){const i=v1(),n=e.domContentLoadedEventEnd-e.fetchStart,r=e.domComplete-e.fetchStart,o={requestId:i,url:window.location.href,method:\"GET\",status:200,statusText:\"OK\",duration:s,timestampMs:e.loadEventEnd+performance.timeOrigin,sessionId:this.sessionId,endUserId:this.endUserId,errorType:\"slow_page_load\",errorMessage:`Page load took ${s}ms`,startTimeMs:e.fetchStart+performance.timeOrigin,spanName:\"page_load\",spanStatus:\"slow\",attributes:{\"page.url\":window.location.href,\"page.load_time\":s,\"page.dom_content_loaded\":n,\"page.dom_complete\":r}};if(this.shouldSkipDueToMinimumDuration())return c(\"Slow page load network error queued due to session duration below minimum\"),void this.pendingNetworkErrors.push({errorData:o,timestamp:Date.now()});this.flushPendingNetworkErrors(),this.api.sendNetworkError(o).catch(()=>{});}}catch(e){a(\"Failed to track page load:\",e);}}shouldSkipNetworkTracking(e){if(!e||!this.ingestionUrl)return false;try{const t=new URL(e),s=new URL(this.ingestionUrl);return !(t.origin!==s.origin||!t.pathname.startsWith(\"/api/ingestion/\"))||!!e.includes(this.ingestionUrl)}catch(t){return e.includes(this.ingestionUrl)}}classifyHttpError(e){return e>=400&&e<500?\"client_error\":e>=500?\"server_error\":\"unknown_error\"}classifyNetworkError(e){const t=e.message||\"\",s=e.name||\"\";return t.includes(\"blocked\")||t.includes(\"ERR_BLOCKED_BY_CLIENT\")||t.includes(\"net::ERR_BLOCKED_BY_CLIENT\")||\"TypeError\"===s&&t.includes(\"Failed to fetch\")?\"blocked_by_client\":t.includes(\"CORS\")||t.includes(\"Cross-Origin\")||t.includes(\"Access-Control-Allow-Origin\")||\"TypeError\"===s&&t.includes(\"CORS\")?\"cors_error\":t.includes(\"timeout\")||t.includes(\"TIMEOUT\")||t.includes(\"NetworkError\")||\"NetworkError\"===s?\"network_error\":t.includes(\"abort\")||\"AbortError\"===s?\"aborted\":\"unknown_error\"}disableConsoleTracking(){P&&this.consoleTrackingEnabled&&(this.originalConsole&&(console.log=this.originalConsole.log,console.warn=this.originalConsole.warn,console.error=this.originalConsole.error),this.consoleTrackingEnabled=false,c(\"Console tracking disabled\"));}trackConsoleEvent(e,t){if(this.initialized)if(\"log\"!==e)try{if(r())return void(this.originalConsole&&this.originalConsole[e](...t));const s=(new Error).stack||\"\";if(this.isSDKStackFrame(s))return void(this.originalConsole&&this.originalConsole[e](...t));const i={level:e,message:t.map(e=>\"object\"==typeof e?JSON.stringify(e):String(e)).join(\" \"),timestampMs:Date.now(),url:P?window.location.href:\"\",userAgent:P?navigator.userAgent:\"\",stack:s,sessionId:this.sessionId,endUserId:this.endUserId,automaticProperties:this.propertyManager.getAutomaticProperties()};if(this.shouldSkipDueToMinimumDuration())return c(`Console ${e} queued due to session duration below minimum`),void this.pendingLogs.push({logData:i,timestamp:Date.now()});this.flushPendingLogs(),this.api.sendLog(i).catch(e=>{this.addEvent({type:5,data:{payload:{eventType:\"console\",...i}},timestamp:Date.now()}).catch(()=>{});});}catch(e){o(\"Error in trackConsoleEvent:\",e);}else this.originalConsole&&this.originalConsole.log(...t);}isSDKStackFrame(e){if(!e)return false;const t=[\"humanbehavior-js\",\"@humanbehavior/core\",\"@humanbehavior/browser\",\"tracker.ts\",\"api.ts\",\"logger.ts\",\"utils/logger\",\"packages/core\",\"packages/browser\",\"index.mjs\",\"index.js\"],s=e.split(\"\\n\");e.toLowerCase();let i=false;for(let e=0;e<s.length;e++){const n=s[e].trim().toLowerCase();if(!n||\"error\"===n||n.startsWith(\"error:\"))continue;if(!t.some(e=>n.includes(e.toLowerCase()))){i=true;break}}return !i}setupPageUnloadHandler(){if(!P)return;const e=\"__humanBehaviorUnloadAttached\";if(window[e])return c(\"Page unload handlers already attached on window — skipping re-attach\"),void(window.__humanBehaviorActiveTracker=this);window[e]=true,window.__humanBehaviorActiveTracker=this,c(\"Setting up page unload handler\"),window.addEventListener(\"visibilitychange\",()=>{const e=\"hidden\"===document.visibilityState?\"hidden\":\"visible\";this.emitVisibilityMarker(e),\"hidden\"===document.visibilityState&&(c(\"Page hidden - sending pending events\"),this.flushEvents());}),this.setupWindowFocusTracking();const t=\"onpagehide\"in window?\"pagehide\":\"beforeunload\";window.addEventListener(t,()=>{c(\"Page unloading - sending final events via sendBeacon\");let e=false;try{if(this.customEventBatch.length>0){null!=this.customEventBatchTimer&&(clearTimeout(this.customEventBatchTimer),this.customEventBatchTimer=null);const e=this.customEventBatch;this.customEventBatch=[];const t=this.api?.sendCustomEventBatchBeacon(this.sessionId,e,this.endUserId);t||this.api?.sendCustomEventBatch(this.sessionId,e,this.endUserId).catch(()=>{});}}catch{}const t=[...this.eventQueue];if(P&&window.__hb_pending_snapshots){const e=window.__hb_pending_snapshots;Array.isArray(e)&&e.length>0&&(c(\"Including pending FullSnapshot(s) in sendBeacon for short session\"),t.unshift(...e),delete window.__hb_pending_snapshots);}if(t.length>0&&this.api)try{const e=this.propertyManager.getAutomaticProperties();this.api.sendBeaconEvents(t,this.sessionId,this.endUserId||void 0,this.windowId,e),this.eventQueue=[];}catch(e){a(\"Failed to send events via sendBeacon on unload:\",e);}this.api&&this.api.unload(),(()=>{if(!e){e=true;try{this.api?.sendSessionEndBeacon(this.sessionId,this.endUserId);}catch{}}})();});const s=()=>{localStorage.setItem(\"human_behavior_last_activity\",Date.now().toString());};window.addEventListener(\"click\",s),window.addEventListener(\"keydown\",s),window.addEventListener(\"scroll\",s),window.addEventListener(\"mousemove\",s);}viewLogs(){try{const e=i.getLogs();d(\"HumanBehavior Logs:\",e),i.clearLogs();}catch(e){o(\"Failed to read logs:\",e);}}async identifyUser(e){const t=e?.userProperties&&\"object\"==typeof e.userProperties?e.userProperties:e||{},s=this.endUserId;this.userProperties={...this.userProperties,...t};try{this.propertyManager?.setUserProperties(t);}catch{}c(\"Identifying user:\",{userProperties:t,originalEndUserId:s,sessionId:this.sessionId}),!P||this.propertyManager.getAutomaticProperties();const i=await this.api.sendUserData(s||\"\",t,this.sessionId);if(i.actualUserId||i.wasExistingUser){const e=i.actualUserId||s;if(e&&e!==s){const t=\"human_behavior_end_user_id\";if(this.setCookie(t,e,365),P)try{localStorage.setItem(t,e);}catch(e){c(\"Failed to set canonical endUserId in localStorage:\",e);}c(`🔗 Preexisting user detected. Future sessions will use canonical ID: ${e} (current session stays: ${s})`);}}return s||\"\"}getUserAttributes(){return {...(()=>{try{return this.propertyManager?.getAllProperties().user||{}}catch{return {}}})(),...this.userProperties}}async start(){if(!P)return;if(this.isStarted)return void c(\"HumanBehaviorTracker already started, skipping start() call.\");this.isStarted=true,this._lastActivityTimestamp=null!==this._sessionActivityTimestamp?this._sessionActivityTimestamp:Date.now(),this._isIdle=\"unknown\",this.flushInterval=window.setInterval(()=>{this.flushEvents();},this.FLUSH_INTERVAL_MS),this.heartbeatInterval=window.setInterval(()=>{try{if(\"undefined\"!=typeof document&&\"visible\"!==document.visibilityState)return;if(!this.sessionId||!this.api)return;this.api.sendHeartbeatBeacon(this.sessionId,this.endUserId);}catch{}},this.HEARTBEAT_INTERVAL_MS),this.enableConsoleTrackingFlag&&this.enableConsoleTracking(),this.enableNetworkTrackingFlag&&this.enableNetworkTracking(),this.enablePageLoadTracking(),this.api.sendIpInfo(this.sessionId,this.endUserId);const t=()=>{if(this.recordInstance)return void c(\"🎯 Recording already started, skipping duplicate start\");c(\"🎯 DOM ready, starting session recording\"),this.rrwebRecord=record;const t=record({emit:e=>{this.addRecordingEvent(e),2===e.type&&c(`🎯 FullSnapshot generated at ${(new Date).toISOString()}`);},maskTextSelector:this.redactionManager.getMaskTextSelector()||void 0,maskTextFn:void 0,maskAllInputs:\"privacy-first\"===this.redactionManager.getRedactionMode(),maskInputOptions:{password:true,text:true,textarea:true,email:true,number:true,tel:true,url:true,search:true,date:true,time:true,month:true,week:true},maskInputFn:(e,t)=>{try{const s=this.redactionManager.getRedactionMode();if(!(t instanceof HTMLElement))return e;if(\"privacy-first\"===s)return \"*\".repeat(e.length||1);const i=this.redactionManager.shouldUnredactElement(t);t.id,t.name,t.type;return i?e:\"*\".repeat(e.length||1)}catch{return e}},slimDOMOptions:{},collectFonts:false,inlineStylesheet:true,recordCrossOriginIframes:false,recordCanvas:this.recordCanvas,sampling:this.recordCanvas?{canvas:4}:void 0,dataURLOptions:this.recordCanvas?{type:\"image/webp\",quality:.4}:void 0,hooks:{input:e=>{try{if(\"privacy-first\"===this.redactionManager.getRedactionMode())return;const t=\"undefined\"!=typeof document?document.querySelector(`[data-rrweb-id=\"${e.id}\"]`):null;if(t&&t instanceof HTMLElement){this.redactionManager.shouldUnredactElement(t)||(void 0!==e.text&&(e.text=\"*\".repeat(e.text?.length||1)),void 0!==e.value&&(e.value=\"*\".repeat(e.value?.length||1)));}}catch{}}}});this.recordInstance=t||null;};if(c(`🎯 DOM ready state: ${document.readyState}`),\"complete\"===document.readyState||\"interactive\"===document.readyState)c(`🎯 DOM ready (${document.readyState}), starting recording immediately`),t();else {c(\"🎯 DOM not ready, waiting for DOMContentLoaded event\");const e=()=>(\"interactive\"===document.readyState||\"complete\"===document.readyState)&&(c(`🎯 DOM ready (${document.readyState}), starting recording`),t(),true);if(e())return;document.addEventListener(\"DOMContentLoaded\",()=>{c(\"🎯 DOMContentLoaded fired, starting recording\"),t();},{once:true});const s=setInterval(()=>{e()&&clearInterval(s);},10);setTimeout(()=>clearInterval(s),5e3);}}emitVisibilityMarker(e){try{const t={type:5,data:{tag:\"$visibility\",payload:{state:e}},timestamp:Date.now()};this.eventQueue.push(t);}catch{}}emitFocusMarker(e){try{const t={type:5,data:{tag:\"$focus\",payload:{state:e}},timestamp:Date.now()};this.eventQueue.push(t);}catch{}}setupWindowFocusTracking(){if(P){try{\"function\"!=typeof document.hasFocus||document.hasFocus()||(this.emitFocusMarker(\"blurred\"),this.lastEmittedFocusState=\"blurred\");}catch{}window.addEventListener(\"blur\",()=>this.onWindowBlur(),false),window.addEventListener(\"focus\",()=>this.onWindowFocus(),false);}}onWindowBlur(){P&&(null!==this.focusBlurGraceTimeout&&clearTimeout(this.focusBlurGraceTimeout),this.focusBlurGraceTimeout=window.setTimeout(()=>{this.focusBlurGraceTimeout=null;try{if(\"function\"==typeof document.hasFocus&&document.hasFocus())return;if(\"blurred\"===this.lastEmittedFocusState)return;this.emitFocusMarker(\"blurred\"),this.lastEmittedFocusState=\"blurred\";}catch{}},this.FOCUS_BLUR_GRACE_MS));}onWindowFocus(){if(P&&(null!==this.focusBlurGraceTimeout&&(clearTimeout(this.focusBlurGraceTimeout),this.focusBlurGraceTimeout=null),\"blurred\"===this.lastEmittedFocusState))try{this.emitFocusMarker(\"focused\"),this.lastEmittedFocusState=\"focused\";}catch{}}takeFullSnapshot(){this.fullSnapshotTimeout&&clearTimeout(this.fullSnapshotTimeout),this.fullSnapshotTimeout=window.setTimeout(()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{try{this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.takeFullSnapshot?(this.rrwebRecord.takeFullSnapshot(),c(\"✅ FullSnapshot taken (delayed for animations)\")):a(\"⚠️ takeFullSnapshot not available on record function\");}catch(e){o(\"❌ Failed to take FullSnapshot:\",e);}});});},1e3);}async stop(){await this.ensureInitialized(),P&&(this.flushInterval&&(clearInterval(this.flushInterval),this.flushInterval=null),this.heartbeatInterval&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null),this.recordInstance&&(this.recordInstance(),this.recordInstance=null),this.fullSnapshotTimeout&&(clearTimeout(this.fullSnapshotTimeout),this.fullSnapshotTimeout=null),null!==this.focusBlurGraceTimeout&&(clearTimeout(this.focusBlurGraceTimeout),this.focusBlurGraceTimeout=null),this.rrwebRecord=null,this.disableConsoleTracking(),this.cleanupNavigationTracking(),this.deadClickTracker.mutationObserver&&(this.deadClickTracker.mutationObserver.disconnect(),this.deadClickTracker.mutationObserver=void 0),this.deadClickTracker.pendingClicks.forEach((e,t)=>{e.cancelled||clearTimeout(e.timer);}),this.deadClickTracker.pendingClicks.clear());}async addEvent(e){if(P&&this.checkAndRefreshSession(),e&&\"object\"==typeof e){if(2===e.type){const t=!!e.data,s=!(!e.data||!e.data.node);c(t&&s?`✅ Valid FullSnapshot: hasData=${t}, hasNode=${s}, dataType=${e.data?.node?.type}`:`⚠️ Empty FullSnapshot detected: hasData=${t}, hasNode=${s} - continuing session`);}this.eventQueue.length>=this.MAX_QUEUE_SIZE&&(this.eventQueue.shift(),c(\"Queue is full, the oldest event is dropped.\")),this.eventQueue.push(e),2===e.type?(c(\"FullSnapshot added, triggering immediate flush\"),this.flushEvents()):this.eventQueue.length>=.8*this.MAX_QUEUE_SIZE&&(c(`Queue at ${this.eventQueue.length}/${this.MAX_QUEUE_SIZE}, triggering immediate flush`),this.flushEvents());}else c(\"⚠️ Skipping invalid event:\",e);}getSessionDuration(){const e=this._sessionStartTimestamp??this.sessionStartTime;if(!e)return null;const t=this.eventQueue.filter(e=>e&&e.timestamp);if(0===t.length)return null;const s=t.reduce((e,t)=>!e||t.timestamp&&t.timestamp>e.timestamp?t:e,null);if(!s||!s.timestamp)return null;const i=s.timestamp-e;return i>=0?i:null}shouldSkipDueToMinimumDuration(){const e=this.minimumDurationMilliseconds,t=this.getSessionDuration();return !!(null!==t&&t>=0&&t<e)&&(c(`Session duration (${t}ms) below minimum (${e}ms), skipping send`),true)}async flushEvents(){if(this.isProcessing)return;if(this.monthlyLimitReached)return;if(true===this._isIdle&&0===this.eventQueue.length)return;const e=this.minimumDurationMilliseconds,t=this.getSessionDuration();if(null!==t&&t>=0&&t<e)return c(`Session duration (${t}ms) below minimum (${e}ms), buffering`),void setTimeout(()=>{this.flushEvents();},2e3);this.isProcessing=true;try{const e=this.eventQueue,t=e.filter(e=>e&&2===e.type);if(this.eventQueue=[],t.length>0&&P&&(window.__hb_pending_snapshots=t,setTimeout(()=>{delete window.__hb_pending_snapshots;},5e3)),e.length>0){c(\"Flushing events:\",e);const t=e.filter(e=>2===e.type);t.length>0&&c(`[FIXED] Sending ${t.length} FullSnapshot(s) with valid data`);try{const t=this.propertyManager.getAutomaticProperties();await this.api.sendEventsChunked(e,this.sessionId,this.endUserId,this.windowId,t);}catch(e){if(e.message?.includes(\"ERROR: Session already completed\"))a(\"Session expired, events will be lost\");else if(e.message?.includes(\"413\")||e.message?.includes(\"Content Too Large\"))a(\"Payload too large, events will be lost\");else {if(!(e.message?.includes(\"ERR_BLOCKED_BY_CLIENT\")||e.message?.includes(\"Failed to fetch\")||e.message?.includes(\"NetworkError\")))throw e;a(\"Request blocked by ad blocker or network issue, events will be lost\");}}}await this.flushPendingCustomEvents(),await this.flushPendingLogs(),await this.flushPendingNetworkErrors();}finally{this.isProcessing=false;}}isInteractiveEvent(e){if(3!==e.type)return false;const t=e.data?.source;return [1,2,3,4,5,6,11].includes(t)}updateIdleState(e){const t=this.isInteractiveEvent(e),s=e.timestamp||Date.now();if(t){const e=true===this._isIdle;this._lastActivityTimestamp=s,null!==this._sessionActivityTimestamp&&(this._sessionActivityTimestamp=s),e?(c(\"✅ User activity detected, exiting idle state\"),this._isIdle=false):\"unknown\"===this._isIdle&&(this._isIdle=false);}else if(true!==this._isIdle){const e=s-this._lastActivityTimestamp;e>this.IDLE_THRESHOLD_MS&&(c(`⏸️ Session idle detected (${Math.round(e/1e3)}s since last activity) - stopping background event recording`),c(`ℹ️ Session will expire after ${Math.round(this.SESSION_IDLE_TIMEOUT_MS/6e4)} minutes of inactivity (${Math.round((this.SESSION_IDLE_TIMEOUT_MS-e)/1e3)}s remaining)`),this._isIdle=true,this.flushEvents());}}async addRecordingEvent(e){if(P&&this.checkAndRefreshSession(),e&&\"object\"==typeof e){if(this.updateIdleState(e),true!==this._isIdle||3!==e.type||this.isInteractiveEvent(e)){if(2===e.type){const t=!!e.data,s=!(!e.data||!e.data.node);c(t&&s?`✅ Valid FullSnapshot: hasData=${t}, hasNode=${s}, dataType=${e.data?.node?.type}`:`⚠️ Empty FullSnapshot detected: hasData=${t}, hasNode=${s} - continuing session`);}this.eventQueue.length>=this.MAX_QUEUE_SIZE&&(this.eventQueue.shift(),c(\"Queue is full, the oldest event is dropped.\")),this.eventQueue.push(e),2===e.type?(c(\"FullSnapshot added, triggering immediate flush\"),this.flushEvents()):true!==this._isIdle&&this.eventQueue.length>=.8*this.MAX_QUEUE_SIZE&&(c(`Queue at ${this.eventQueue.length}/${this.MAX_QUEUE_SIZE}, triggering immediate flush`),this.flushEvents());}}else c(\"⚠️ Skipping invalid recording event:\",e);}_canUseSessionStorage(){if(!P)return false;try{const e=\"__sessionStorage_test__\";return sessionStorage.setItem(e,e),sessionStorage.removeItem(e),!0}catch{return false}}_getWindowIdFromStorage(){if(!this._canUseSessionStorage())return null;try{return sessionStorage.getItem(this._window_id_storage_key)}catch{return null}}_setWindowIdInStorage(e){if(this._canUseSessionStorage())try{sessionStorage.setItem(this._window_id_storage_key,e),c(`Stored windowId in sessionStorage: ${e}`);}catch(e){a(\"Failed to store windowId in sessionStorage:\",e);}}_removeWindowIdFromStorage(){if(this._canUseSessionStorage())try{sessionStorage.removeItem(this._window_id_storage_key);}catch(e){a(\"Failed to remove windowId from sessionStorage:\",e);}}_getPrimaryWindowExists(){if(!this._canUseSessionStorage())return false;try{return \"true\"===sessionStorage.getItem(this._primary_window_exists_storage_key)}catch{return false}}_setPrimaryWindowExists(e){if(this._canUseSessionStorage())try{e?sessionStorage.setItem(this._primary_window_exists_storage_key,\"true\"):sessionStorage.removeItem(this._primary_window_exists_storage_key);}catch(e){a(\"Failed to set primary_window_exists flag:\",e);}}getOrCreateWindowId(){if(!P)return v1();const e=this._getWindowIdFromStorage(),s=this._getPrimaryWindowExists();if(e&&!s)return c(`Reusing windowId from previous page load: ${e}`),this._setWindowIdInStorage(e),this._setPrimaryWindowExists(true),e;{const e=v1();return c(`Creating new windowId: ${e} (new window/tab detected)`),this._setWindowIdInStorage(e),this._setPrimaryWindowExists(true),e}}setupWindowUnloadListener(){P&&window.addEventListener(\"beforeunload\",()=>{this._canUseSessionStorage()&&(this._setPrimaryWindowExists(false),c(\"Cleared primary_window_exists flag on beforeunload\"));},{capture:false});}setCookie(e,t,s){if(P)try{const i=new Date;i.setTime(i.getTime()+24*s*60*60*1e3);const n=`expires=${i.toUTCString()}`;document.cookie=`${e}=${t};${n};path=/;SameSite=Lax`,localStorage.setItem(e,t),c(`Set cookie and localStorage: ${e}`);}catch(s){try{localStorage.setItem(e,t),c(`Cookie blocked, using localStorage: ${e}`);}catch(e){o(\"Failed to store user ID in both cookie and localStorage:\",e);}}}getCookie(e){if(!P)return null;try{const t=e+\"=\",s=document.cookie.split(\";\");for(let i=0;i<s.length;i++){let n=s[i];for(;\" \"===n.charAt(0);)n=n.substring(1,n.length);if(0===n.indexOf(t)){const s=n.substring(t.length,n.length);return c(`Found cookie: ${e}`),s}}const i=localStorage.getItem(e);return i?(c(`Cookie not found, using localStorage: ${e}`),i):null}catch(t){try{const t=localStorage.getItem(e);if(t)return c(`Cookie access failed, using localStorage: ${e}`),t}catch(e){o(\"Failed to access both cookie and localStorage:\",e);}return null}}deleteCookie(e){if(P){try{document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; SameSite=Lax`,c(`Deleted cookie: ${e}`);}catch(t){o(`Failed to delete cookie: ${e}`,t);}try{localStorage.removeItem(e),c(`Removed from localStorage: ${e}`);}catch(t){o(`Failed to remove from localStorage: ${e}`,t);}}}logout(){if(P)try{const e=\"human_behavior_end_user_id\";this.deleteCookie(e);const s=\"human_behavior_session\";localStorage.removeItem(s),this.endUserId=null,this.userProperties={},this.endUserId=v1(),this.setCookie(\"human_behavior_end_user_id\",this.endUserId,365),this.sessionId=this.createNewSession(s),this.windowId=v1(),this._setWindowIdInStorage(this.windowId),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),d(\"User logged out - cleared all user data and started fresh session\");}catch(e){o(\"Error during logout:\",e);}}async redact(e){await this.ensureInitialized(),P?this.redactionManager=new v(e):a(\"Redaction is only available in browser environments\");}setRedactedFields(e){this.redactionManager.setFieldsToRedact(e),this.recordInstance&&this.restartWithNewRedaction();}setUnredactedFields(e){this.redactionManager.setFieldsToUnredact(e),this.recordInstance&&this.restartWithNewRedaction();}restartWithNewRedaction(){this.recordInstance&&(this.recordInstance(),this.start());}hasUnredactedFields(){return this.redactionManager.hasUnredactedFields()}getUnredactedFields(){return this.redactionManager.getUnredactedFields()}redactFields(e){this.redactionManager.redactFields(e),this.recordInstance&&this.restartWithNewRedaction();}clearUnredactedFields(){this.redactionManager.clearUnredactedFields(),this.recordInstance&&this.restartWithNewRedaction();}checkAndRefreshSession(){if(!P)return;const e=\"human_behavior_session\",s=Date.now(),i=this.getStoredSession(e);if(!i||!i.sessionId)return this.createNewSession(e),this.windowId=v1(),this._setWindowIdInStorage(this.windowId),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),void c(`Created new session (no stored session): ${this.sessionId}`);this.updateSessionActivity(e,s,i.sessionId,i.sessionStartTimestamp);}getOrCreateSessionId(){if(!P)return v1();const e=\"human_behavior_session\",s=Date.now(),i=this.getStoredSession(e);if(!i||!i.sessionId){const t=this.createNewSession(e);return this.api.setTrackingContext(t,this.endUserId),t}const n=s-i.lastActivityTimestamp,r=s-i.sessionStartTimestamp;if(n>this.SESSION_IDLE_TIMEOUT_MS||r>this.SESSION_MAX_LENGTH_MS){c(`Session expired: idle=${n}ms, age=${r}ms`);const t=this.createNewSession(e);return this.api.setTrackingContext(t,this.endUserId),t}return this.updateSessionActivity(e,s,i.sessionId,i.sessionStartTimestamp),i.sessionId}getStoredSession(e){const s=Date.now(),i=this.SESSION_IDLE_TIMEOUT_MS,n=this.SESSION_MAX_LENGTH_MS;if(this.sessionId&&null!==this._sessionActivityTimestamp&&null!==this._sessionStartTimestamp){const r=s-this._sessionActivityTimestamp,o=s-this._sessionStartTimestamp;if(!(r>i||o>n))return {sessionId:this.sessionId,lastActivityTimestamp:this._sessionActivityTimestamp,sessionStartTimestamp:this._sessionStartTimestamp};{c(\"Session in memory expired: creating new session immediately\");const s=this.sessionId;if(this.createNewSession(e),this.windowId=v1(),this._setWindowIdInStorage(this.windowId),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),d(`🔄 Session timeout (memory): Created new session ${this.sessionId} (previous: ${s})`),null!==this._sessionActivityTimestamp&&null!==this._sessionStartTimestamp)return {sessionId:this.sessionId,lastActivityTimestamp:this._sessionActivityTimestamp,sessionStartTimestamp:this._sessionStartTimestamp}}}try{const r=localStorage.getItem(e);if(!r)return null;const o=JSON.parse(r),a=s-o.lastActivityTimestamp,l=s-o.sessionStartTimestamp;if(a>i||l>n){c(`Session in localStorage expired: idle=${Math.round(a/1e3/60)}min, age=${Math.round(l/1e3/60/60)}hrs`);const s=o.sessionId;if(this.createNewSession(e),this.windowId=v1(),this._setWindowIdInStorage(this.windowId),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),d(`🔄 Session timeout (localStorage): Created new session ${this.sessionId} (previous: ${s})`),null!==this._sessionActivityTimestamp&&null!==this._sessionStartTimestamp)return {sessionId:this.sessionId,lastActivityTimestamp:this._sessionActivityTimestamp,sessionStartTimestamp:this._sessionStartTimestamp}}return o.sessionId&&(this.sessionId=o.sessionId,this._sessionActivityTimestamp=o.lastActivityTimestamp,this._sessionStartTimestamp=o.sessionStartTimestamp),o}catch{return null}}createNewSession(e){const s=v1(),i=Date.now();this.sessionId=s,this._sessionActivityTimestamp=i,this._sessionStartTimestamp=i,this._lastActivityTimestamp=i;const n={sessionId:s,lastActivityTimestamp:i,sessionStartTimestamp:i};try{localStorage.setItem(e,JSON.stringify(n));}catch(e){a(`Failed to save session to localStorage: ${e}`);}return c(`Created new session: ${s}`),s}updateSessionActivity(e,t,s,i){this.sessionId=s,this._sessionActivityTimestamp=t,this._sessionStartTimestamp=i;const n={sessionId:s,lastActivityTimestamp:t,sessionStartTimestamp:i};try{localStorage.setItem(e,JSON.stringify(n));}catch(e){a(`Failed to update session in localStorage: ${e}`);}}getSessionId(){return this.sessionId}getCurrentUrl(){return P&&\"undefined\"!=typeof window&&window.location?window.location.href:this.currentUrl}getSnapshotFrequencyInfo(){return {sessionDuration:Date.now()-this.sessionStartTime,currentInterval:3e5,currentThreshold:1e3,phase:\"configured\"}}async testConnection(){try{return await this.api.init(this.sessionId,this.endUserId),{success:!0}}catch(e){return {success:false,error:e.message||\"Unknown error\"}}}getConnectionStatus(){const e=[];let t=false;return this.eventQueue.length>0&&(t=true,e.push(\"Some requests may be blocked by ad blockers\")),this._connectionBlocked&&(t=true,e.push(\"Initial connection test failed - ad blocker may be active\")),\"undefined\"==typeof window&&e.push(\"Not running in browser environment\"),void 0===navigator.sendBeacon&&e.push(\"sendBeacon not available, using fetch fallback\"),{blocked:t,recommendations:e}}isPreexistingUser(){if(!P)return false;const e=this.getCookie(\"human_behavior_end_user_id\");return null!==e&&e!==this.endUserId}getUserInfo(){return {endUserId:this.endUserId,sessionId:this.sessionId,isPreexistingUser:this.isPreexistingUser(),initialized:this.initialized}}setSessionProperty(e,t){this.propertyManager.setSessionProperty(e,t);}setSessionProperties(e){this.propertyManager.setSessionProperties(e);}getSessionProperty(e){return this.propertyManager.getSessionProperty(e)}removeSessionProperty(e){this.propertyManager.removeSessionProperty(e);}setUserProperty(e,t){this.propertyManager.setUserProperty(e,t);}setUserProperties(e){this.propertyManager.setUserProperties(e);}getUserProperty(e){return this.propertyManager.getUserProperty(e)}removeUserProperty(e){this.propertyManager.removeUserProperty(e);}setOnce(e,t,s=\"user\"){this.propertyManager.setOnce(e,t,s);}clearSessionProperties(){this.propertyManager.clearSessionProperties();}clearUserProperties(){this.propertyManager.clearUserProperties();}getAllProperties(){return this.propertyManager.getAllProperties()}}function F(e){const t=globalThis.__humanBehaviorGlobalTracker;return t?.identifyUser?t.identifyUser({userProperties:e}):(console.warn(\"HumanBehavior tracker not found. Make sure the SDK is initialized.\"),null)}function M(e,t){const s=(\"undefined\"!=typeof window?window:globalThis).__humanBehaviorGlobalTracker;return s?.customEvent?s.customEvent(e,t):s?.track?s.track(e,t):(console.warn(\"HumanBehavior tracker not found. Make sure the SDK is initialized.\"),null)}function L(){const e=globalThis.__humanBehaviorGlobalTracker;return !!e?.identifyUser}P&&(window.HumanBehaviorTracker=D);\n\n/**\n * Main entry point for the HumanBehavior SDK\n */\n// Import the main tracker first\n// Create an initialization function\nconst init = (apiKey, ingestionUrl, options) => {\n return new D(apiKey, ingestionUrl, options);\n};\n// For UMD builds, expose the class and init function globally\nif (typeof window !== 'undefined') {\n window.HumanBehaviorTracker = D;\n window.humanbehavior = { init };\n}\n\nexport { y as HumanBehaviorAPI, D as HumanBehaviorTracker, s as LogLevel, U as PropertyManager, v as RedactionManager, I as getAutomaticProperties, C as getCurrentPageProperties, T as getDeviceInfo, b as getInitialProperties, E as getLocationInfo, F as identifyUserGlobally, init, L as isGlobalTrackerAvailable, r as isSDKLogging, c as logDebug, o as logError, d as logInfo, a as logWarn, i as logger, M as sendEventGlobally };\n//# sourceMappingURL=index.js.map\n","import React, { useEffect, useState, createContext, useContext, ReactNode, useCallback, useMemo, useRef } from \"react\";\nimport { HumanBehaviorTracker, logError, logWarn, logDebug } from \"./browser\";\n\n// Check if we're in a browser environment\nconst isBrowser = () => typeof window !== 'undefined';\n\n// Define the public interface that components will interact with\ninterface HumanBehaviorInterface {\n addEvent: (event: any) => void;\n identifyUser: ({ userProperties }: { userProperties: Record<string, any> }) => Promise<string>;\n start: () => void;\n stop: () => void;\n logout: () => void;\n viewLogs: () => void;\n setUnredactedFields: (fields: string[]) => void;\n hasUnredactedFields: () => boolean;\n getUnredactedFields: () => string[];\n trackPageView: () => void;\n}\n\ninterface HumanBehaviorContextType {\n humanBehavior: HumanBehaviorTracker | null;\n queueEvent: (event: any) => void;\n}\n\ninterface HumanBehaviorProviderProps {\n // Either provide an apiKey to create a new client, or provide an existing client\n apiKey?: string;\n client?: HumanBehaviorTracker;\n children: ReactNode;\n options?: {\n ingestionUrl?: string;\n logLevel?: 'none' | 'error' | 'warn' | 'info' | 'debug';\n redactFields?: string[]; // DEPRECATED: Use redactionStrategy instead\n redactionStrategy?: {\n mode: 'privacy-first' | 'visibility-first'; // Default: 'privacy-first'\n unredactFields?: string[]; // Fields to make visible (when mode: 'privacy-first')\n redactFields?: string[]; // Fields to hide (when mode: 'visibility-first')\n };\n enableAutomaticTracking?: boolean;\n suppressConsoleErrors?: boolean;\n recordCanvas?: boolean; // Enable canvas recording with protection\n enableAutomaticProperties?: boolean; // Enable automatic property detection\n propertyDenylist?: string[]; // Properties to exclude from tracking\n automaticTrackingOptions?: {\n trackButtons?: boolean;\n trackLinks?: boolean;\n trackForms?: boolean;\n includeText?: boolean;\n includeClasses?: boolean;\n };\n maxQueueSize?: number; // Configurable queue size\n enableConsoleTracking?: boolean; // Enable console warn/error tracking (default: true, set to false to opt-out)\n enableNetworkTracking?: boolean; // Enable network error tracking (default: true, set to false to opt-out)\n };\n}\n\n// Default context to prevent unnecessary re-renders\nconst defaultContext: HumanBehaviorContextType = {\n humanBehavior: null,\n queueEvent: (event: any) => {\n // In server-side, just no-op\n if (typeof window === 'undefined') {\n return;\n }\n logWarn('HumanBehavior not initialized yet, event queued:', event);\n }\n};\n\nconst HumanBehaviorContext = createContext<HumanBehaviorTracker | HumanBehaviorInterface | null>(null);\n\nexport const HumanBehaviorProvider = ({ apiKey, client, children, options }: HumanBehaviorProviderProps) => {\n const [humanBehavior, setHumanBehavior] = useState<HumanBehaviorTracker | null>(client || null);\n const [eventQueue, setEventQueue] = useState<any[]>([]);\n const [isMounted, setIsMounted] = useState(false);\n const [isInitialized, setIsInitialized] = useState(false);\n \n // Use refs to avoid dependency issues in useEffect\n const apiKeyRef = useRef(apiKey);\n const clientRef = useRef(client);\n const eventQueueRef = useRef(eventQueue);\n \n // Update refs when props change\n useEffect(() => {\n apiKeyRef.current = apiKey;\n clientRef.current = client;\n }, [apiKey, client]);\n \n // Update eventQueue ref when queue changes\n useEffect(() => {\n eventQueueRef.current = eventQueue;\n }, [eventQueue]);\n\n // Memoized queueEvent function to prevent unnecessary re-renders\n const queueEvent = useCallback((event: any) => {\n setEventQueue(prev => [...prev, event]);\n }, []);\n\n // Handle mounting state\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n useEffect(() => {\n // Only run in browser\n if (!(isBrowser())) {\n return;\n }\n\n // If client is provided, use that\n if (clientRef.current) {\n setHumanBehavior(clientRef.current);\n setIsInitialized(true);\n return;\n }\n\n // If no client is provided, apiKey is required\n if (!apiKeyRef.current || apiKeyRef.current.trim() === '') {\n logError(\"An apiKey is required when no client is provided\");\n return;\n }\n\n // Prevent multiple initializations\n if (humanBehavior !== null) {\n return;\n }\n\n try {\n \n // Create new tracker instance with the validated apiKey and options\n const tracker = HumanBehaviorTracker.init(\n apiKeyRef.current.trim(),\n {\n ingestionUrl: options?.ingestionUrl,\n logLevel: options?.logLevel,\n redactFields: options?.redactFields, // Legacy support\n redactionStrategy: options?.redactionStrategy, // New redaction strategy\n enableAutomaticTracking: options?.enableAutomaticTracking,\n suppressConsoleErrors: options?.suppressConsoleErrors,\n recordCanvas: options?.recordCanvas,\n enableAutomaticProperties: options?.enableAutomaticProperties,\n propertyDenylist: options?.propertyDenylist,\n automaticTrackingOptions: options?.automaticTrackingOptions,\n maxQueueSize: options?.maxQueueSize,\n enableConsoleTracking: options?.enableConsoleTracking,\n enableNetworkTracking: options?.enableNetworkTracking,\n }\n );\n \n setHumanBehavior(tracker);\n\n // Mark as initialized immediately (don't wait for server init)\n setIsInitialized(true);\n \n // Start tracking in background\n tracker.initializationPromise?.then(async () => {\n // Only start if not already started\n if (!tracker.isTrackerStarted) {\n await tracker.start();\n }\n \n // Process any queued events\n const currentQueue = eventQueueRef.current;\n if (currentQueue.length > 0) {\n for (const event of currentQueue) {\n if (event.type === 'identify') {\n logDebug('Processing queued identify event', event);\n try {\n await tracker.identifyUser({ userProperties: event.userProperties });\n } catch (error) {\n logError('Failed to process queued user info:', error);\n }\n } else {\n tracker.addEvent(event);\n }\n }\n setEventQueue([]); // Clear the queue\n }\n }).catch(error => {\n logError('Failed to initialize HumanBehaviorTracker:', error);\n });\n } catch (error) {\n logError('Failed to create HumanBehaviorTracker:', error);\n }\n }, [isMounted]); // Removed humanBehavior from dependencies to prevent infinite loop\n\n // Memoized context value to prevent unnecessary re-renders\n const contextValue = useMemo(() => {\n if (!isMounted) {\n return createQueuingImplementation(queueEvent);\n }\n \n if (!isInitialized) {\n return createQueuingImplementation(queueEvent);\n }\n \n return humanBehavior;\n }, [isMounted, isInitialized, humanBehavior, queueEvent]);\n\n // If not in browser, render children without context\n if (!(isBrowser())) {\n return <>{children}</>;\n }\n\n return (\n <HumanBehaviorContext.Provider value={contextValue}>\n <HumanBehaviorPageView />\n {children}\n </HumanBehaviorContext.Provider>\n );\n};\n\n// Default implementation for when tracker is not available\nconst defaultImplementation: HumanBehaviorInterface = {\n addEvent: () => {},\n identifyUser: async ({ userProperties }: { userProperties: Record<string, any> }) => {\n return '';\n },\n start: () => {},\n stop: () => {},\n logout: () => {},\n viewLogs: () => {},\n setUnredactedFields: () => {},\n hasUnredactedFields: () => false,\n getUnredactedFields: () => [],\n trackPageView: () => {},\n};\n\n// Memoized queuing implementation for initialization period\nconst createQueuingImplementation = (queueEvent: (event: any) => void): HumanBehaviorInterface => ({\n addEvent: (event: any) => {\n queueEvent(event);\n },\n identifyUser: async ({ userProperties }: { userProperties: Record<string, any> }) => {\n queueEvent({\n type: 'identify',\n userProperties,\n });\n return ''; // Return empty string to match interface\n },\n start: () => {\n // Start will be called automatically when initialized\n },\n stop: () => {\n // Stop is a no-op when not initialized\n },\n logout: () => {\n // Logout is a no-op when not initialized\n },\n viewLogs: () => {\n logWarn('Logs are not available until HumanBehaviorTracker is initialized');\n },\n setUnredactedFields: () => {},\n hasUnredactedFields: () => false,\n getUnredactedFields: () => [],\n trackPageView: () => {},\n});\n\nexport const useHumanBehavior = () => {\n const tracker = useContext(HumanBehaviorContext);\n if (!tracker) {\n throw new Error('useHumanBehavior must be used within a HumanBehaviorProvider');\n }\n return tracker;\n};\n\n// Custom hook for managing unredaction fields dynamically\nexport const useRedaction = () => {\n const tracker = useHumanBehavior();\n \n const setUnredactedFields = useCallback((fields: string[]) => {\n tracker.setUnredactedFields(fields);\n }, [tracker]);\n \n const hasUnredactedFields = useCallback(() => {\n return tracker.hasUnredactedFields();\n }, [tracker]);\n \n const getUnredactedFields = useCallback(() => {\n return tracker.getUnredactedFields();\n }, [tracker]);\n \n return {\n setUnredactedFields,\n hasUnredactedFields,\n getUnredactedFields\n };\n};\n\n// Custom hook for managing user info\nexport const useUserTracking = () => {\n const tracker = useHumanBehavior();\n \n const identifyUser = useCallback(async ({ userProperties }: { userProperties: Record<string, any> }) => {\n try {\n await tracker.identifyUser({ userProperties });\n return { success: true };\n } catch (error) {\n logError('Failed to identify user:', error);\n return { success: false, error };\n }\n }, [tracker]);\n \n return {\n identifyUser\n };\n};\n\n// Automatic page tracking component\nfunction HumanBehaviorPageView() {\n const tracker = useContext(HumanBehaviorContext);\n\n useEffect(() => {\n if (tracker && typeof window !== 'undefined') {\n // Track initial page load\n tracker.trackPageView();\n\n // Listen for route changes (for SPAs)\n const handleRouteChange = () => {\n tracker.trackPageView();\n };\n\n // Listen for popstate (back/forward navigation)\n window.addEventListener('popstate', handleRouteChange);\n\n // Listen for pushstate/replacestate (programmatic navigation)\n const originalPushState = history.pushState;\n const originalReplaceState = history.replaceState;\n\n history.pushState = function(...args) {\n originalPushState.apply(this, args);\n handleRouteChange();\n };\n\n history.replaceState = function(...args) {\n originalReplaceState.apply(this, args);\n handleRouteChange();\n };\n\n return () => {\n window.removeEventListener('popstate', handleRouteChange);\n history.pushState = originalPushState;\n history.replaceState = originalReplaceState;\n };\n }\n }, [tracker]);\n\n return null;\n}\n\n// Export the tracker class for direct use\nexport { HumanBehaviorTracker };\n"],"names":["_a","__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","__defProp$1","__publicField$1","__defNormalProp$1","NodeType$3","NodeType2","testableAccessors$1","Node","ShadowRoot","Element","MutationObserver","testableMethods$1","untaintedBasePrototype$1","getUntaintedPrototype$1","defaultObj","globalThis","defaultPrototype","prototype","accessorNames","isUntaintedAccessors","Boolean","every","accessor","_a2","_b","getOwnPropertyDescriptor","get","toString","includes","methodNames","isUntaintedMethods","method","Zone","iframeEl","document","createElement","body","appendChild","win","contentWindow","untaintedObject","removeChild","untaintedAccessorCache$1","getUntaintedAccessor$1","instance","cacheKey","String","call","untaintedPrototype","untaintedAccessor","untaintedMethodCache$1","getUntaintedMethod$1","bind","untaintedMethod","index$1","ownerDocument","n2","childNodes","parentNode","parentElement","textContent","contains","other","getRootNode","host","styleSheets","shadowRoot","querySelector","selectors","querySelectorAll","mutationObserver","constructor","patch","source","name","replacement","original","wrapped","defineProperties","__rrweb_original__","isElement","nodeType","ELEMENT_NODE","isShadowRoot","hostEl","isNativeShadowDom","shadowRoot2","stringifyStylesheet","s2","rules2","rules","cssRules","sheetHref","href","ownerNode","baseURI","stringifiedRules","Array","from","rule2","stringifyRule","join","cssText","replace","error","isCSSImportRule","importStringified","styleSheet","split","length","statement","JSON","stringify","layerName","push","supportsText","media","mediaText","escapeImportStatement","absolutifyURLs","ruleStringified","isCSSStyleRule","selectorText","cssStringified","regex","fixSafariColons","Mirror","this","Map","WeakMap","getId","getMeta","id","getNode","idNodeMap","getIds","keys","nodeMetaMap","removeNodeFromMap","delete","forEach","childNode","has","hasNode","node2","add","meta","set","oldNode","reset","maskInputValue","element","maskInputOptions","tagName","type","maskInputFn","text","actualType","toLowerCase","repeat","str","ORIGINAL_ATTRIBUTE_NAME","getInputType","hasAttribute","extractFileExtension","path","baseURL","url","URL","window","location","err","match","pathname","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","origin","quote1","path1","quote2","path2","path3","filePath","maybeQuote","test","indexOf","slice","extractOrigin","stack","parts","pop","part","normalizeCssString","_testNoPxNorm","markCssSplits","style","childNodes2","splits","iterCount","cssTextNorm","normFactor","i2","textContentNorm","jLimit","j","substring","startSubstring","cssNormSplits","splitNorm","prevTextContent","prevMinLength","k","Math","floor","normPart","max","splitCssText","_id","tagNameRegex","RegExp","genId","canvasService","canvasCtx","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","cachedDocument","absoluteToDoc","doc","attributeValue","trim","getHref","isSVGElement","el","ownerSVGElement","customHref","a2","startsWith","setAttribute","transformAttribute","pos","collectCharacters","regEx","chars2","exec","output","descriptorsStr","inParens","c2","charAt","getAbsoluteSrcsetString","ignoreAttribute","_value","classMatchesRegex","checkAncestors","eIndex","classList","className","needMaskingText","maskTextClass","maskTextSelector","closest","matches","e2","serializeNode","options","mirror","mirror2","blockClass","blockSelector","needsMask","inlineStylesheet","maskTextFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","cssCaptured","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName$1","attributes","len","attr","stylesheet","find","rel","_cssText","sheet","checked","selected","open","rr_open_mode","__context","canvas","ctx","getContext","x2","width","y","height","getImageData","originalGetImageData","Uint32Array","min","data","buffer","some","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image","imageSrc","currentSrc","getAttribute","priorCrossOrigin","crossOrigin","recordInlineImage","removeEventListener","naturalWidth","naturalHeight","drawImage","complete","addEventListener","console","warn","removeAttribute","mediaAttributes","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","rr_mediaPlaybackRate","playbackRate","rr_mediaMuted","muted","rr_mediaLoop","loop","rr_mediaVolume","volume","scrollLeft","rr_scrollLeft","scrollTop","rr_scrollTop","getBoundingClientRect","class","rr_width","rr_height","src","contentDocument","rr_src","isCustomElement","customElements","isSVG","isCustom","serializeElementNode","TEXT_NODE","parent","parentTagName","textContent2","isStyle","isScript","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","slimDOMDefaults","_slimDOMOptions","script","comment","headFavicon","headWhitespace","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaVerification","headMetaAuthorship","headMetaDescKeywords","headTitleMutations","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","sn","as","property","slimDOMExcluded","serializedNode","assign","recordChild","shadowRootEl","isShadowHost","bypassOptions","childN","serializedChildNode","isShadow","listener","readyState","fired","timer","setTimeout","clearTimeout","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","link","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","getDefaultExportFromCjs$1","__esModule","hasOwnProperty","getAugmentedNamespace$1","f2","default","a22","Reflect","construct","arguments","apply","d","picocolors_browser$1","exports","x$1","create$1","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","picocolors_browserExports$1","require$$2$1","freeze","__proto__","Symbol","toStringTag","pico$1","terminalHighlight$1$1","CssSyntaxError$3$1","CssSyntaxError","Error","message","line","column","file","plugin22","super","reason","plugin","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","start","end","maxWidth","map","index2","number","gutter","spacing","code","cssSyntaxError$1","symbols$1","isClean","my","DEFAULT_RAW$1","after","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","colon","commentLeft","commentRight","emptyBody","indent","semicolon","Stringifier$2$1","builder","atrule","params","rawValue","raws","afterName","nodes","block","between","beforeAfter","detect","raw","buf","depth","step","last","child","before","left","right","decl","string","prop","important","own","first","root2","root","rawCache","toUpperCase","walk","rawBeforeClose","rawBeforeComment","walkComments","rawBeforeDecl","walkDecls","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","p","rawSemicolon","rule","ownSemicolon","stringifier$1","Stringifier$1$1","stringify$4$1","stringify_1$1","isClean$2$1","my$2$1","CssSyntaxError$2$1","Stringifier2$1","stringify$3$1","cloneNode$1","cloned","isArray","Node$4$1","defaults","clone","append","addToError","postcssNode","input","insertAfter","overrides","insertBefore","cleanRaws","keepBetween","cloneAfter","cloneBefore","opts","rangeBy","getProxyProcessor","toProxy","markDirty","next","index","positionBy","stringRepresentation","positionInside","word","prev","endIndex","defaultType","remove","replaceWith","bookmark","foundSelf","result2","toJSON","_","inputs","fixed","emitInputs","inputsNextIndex","inputId","input2","proxyCache","Proxy","stringifier2","node","proxyOf","node$1","Node$3$1","Declaration$4$1","variable","declaration$1","nonSecure$1","nanoid","size","random","SourceMapConsumer","SourceMapConsumer$2$1","SourceMapGenerator","SourceMapGenerator$2$1","existsSync","existsSync$1","readFileSync","readFileSync$1","dirname","dirname$1$1","join$1","PreviousMap$2$1","loadAnnotation","inline","startWith","annotation","loadMap","mapFile","consumer","consumerCache","decodeInline","decodeURIComponent","substr","lastMatch","Buffer","atob","encoding","getAnnotationURL","sourceMapString","isMap","mappings","_mappings","sections","comments","lastIndexOf","loadFile","fromSourceMap","prevPath","withContent","sourcesContent","previousMap$1","SourceMapConsumer$1$1","SourceMapGenerator$1$1","fileURLToPath","fileURLToPath$1","pathToFileURL","pathToFileURL$1$1","isAbsolute","isAbsolute$1","resolve","resolve$1$1","nanoid$2","terminalHighlight$2","CssSyntaxError$1$1","PreviousMap$1$1","fromOffsetCache$1","sourceMapAvailable$1$1","pathAvailable$1$1","Input$4$1","hasBOM","mapResolve","offset","fromOffset","col","lastLine","lineToIndex","prevIndex","l2","mid","sourceRoot","to","fromUrl","originalPositionFor","protocol","sourceContentFor","json","input$1","registerInput","SourceMapConsumer$3","SourceMapGenerator$3","dirname$2","relative","relative$1","resolve$2","sep","sep$1","pathToFileURL$2","Input$3$1","sourceMapAvailable$2","pathAvailable$2","mapGenerator$1","stringify2","cssString","mapOpts","originalCSS","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","content","isInline","toBase64","outputFile","eol","applyPrevMaps","previous","toUrl","applySourceMap","clearAnnotation","generate","generateMap","generateString","ignoreInvalidMapping","addMapping","generated","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","charCodeAt","cached","previousMaps","already","toFileUrl","setSourceContent","btoa","unescape","encodeURIComponent","fileURL","encodeURI","Node$2$1","Comment$4$1","comment$1","parse$4$1","Rule$4$1","AtRule$4$1","Root$6$1","isClean$1$1","my$1$1","Declaration$3$1","Comment$3$1","Node$1$1","cleanSource$1","markDirtyUp$1","Container$7$1","Container","children","normalize","each","callback","iterator","getIterator","indexes","condition","lastEach","args","cb","exist","existIndex","reverse","splice","sample","selector","rebuild","prepend","unshift","removeAll","replaceValues","pattern","props","fast","walkAtRules","walkRules","registerParse","dependant","registerRule","registerAtRule","registerRoot","container$1","setPrototypeOf","LazyResult$4$1","Processor$3$1","Container$6$1","Document$3$1","toResult","registerLazyResult","registerProcessor","document$1$1","printed$1","warnOnce$2$1","Warning$2$1","range","opt","warning$1","Warning$1$1","Result$3$1","processor2","processor","messages","lastPlugin","postcssPlugin","warning2","warnings","filter","result$1","SINGLE_QUOTE$1","DOUBLE_QUOTE$1","BACKSLASH$1","SLASH$1","NEWLINE$1","SPACE$1","FEED$1","TAB$1","CR$1","OPEN_SQUARE$1","CLOSE_SQUARE$1","OPEN_PARENTHESES$1","CLOSE_PARENTHESES$1","OPEN_CURLY$1","CLOSE_CURLY$1","SEMICOLON$1","ASTERISK$1","COLON$1","AT$1","RE_AT_END$1","RE_WORD_END$1","RE_BAD_BRACKET$1","RE_HEX_ESCAPE$1","Container$5$1","AtRule$3$1","atRule$1","LazyResult$3$1","Processor$2$1","Container$4$1","Root$5$1","ignore","root$1","list$2$1","comma","space","separators","array","current","func","inQuote","prevQuote","escape","letter","list_1$1","Container$3$1","list$1$1","Rule$3$1","values","sep2","rule$1","Declaration$2$1","tokenizer2$1","quote","escaped","escapePos","currentToken","valueOf","ignoreErrors","returned","unclosed","what","back","token","endOfFile","nextToken","ignoreUnclosed","controlChar","fromCharCode","lastIndex","position","Comment$2$1","AtRule$2$1","Root$4$1","Rule$2$1","SAFE_COMMENT_NEIGHBOR$1","empty","Container$2$1","Parser2$1","spaces","createTokenizer","shift","unnamedAtrule","init","brackets","tokenizer","getPosition","spacesAndCommentsFromEnd","spacesAndCommentsFromStart","checkMissedSemicolon","tokens","founded","entries","doubleColon","customProperty","findLastWithPosition$1","unknownWord","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","cache","concat","emptyRule","unexpectedClose","endFile","unclosedBlock","freeSemicolon","bracket","unclosedBracket","parse","clean","reduce","all","lastTokenType","Input$2$1","parse$3$1","parser2","process","env","NODE_ENV","parse_1$1","isClean$3","my$3","MapGenerator$1$1","stringify$2$1","Container$1$1","Document$2$1","warnOnce$1$1","Result$2$1","parse$2$1","Root$3$1","TYPE_TO_CLASS_NAME$1","PLUGIN_PROPS$1","AtRule","AtRuleExit","CommentExit","Declaration","DeclarationExit","DocumentExit","Once","OnceExit","prepare","Root","RootExit","Rule","RuleExit","NOT_VISITORS$1","isPromise$1","then","getEvents$1","toStack$1","events","eventIndex","visitorIndex","visitors","cleanMarks$1","postcss$2$1","LazyResult$2$1","LazyResult","stringified","processed","syntax","parser","result","helpers","postcss","plugins","async","Promise","reject","processing","runAsync","onRejected","catch","onFinally","getAsyncError","handleError","postcssVersion","pluginName","pluginVer","runtimeVer","version","b","parseInt","prepareVisitors","listeners","event","hasListener","promise","runOnRoot","visitTick","visitor","roots","subRoot","sync","stringifier","walkSync","visitSync","onFulfilled","visit2","registerPostcss","lazyResult$1","MapGenerator2$1","stringify$1$1","warnOnce2$1","parse$1$1","Result$1$1","NoWorkResult$1$1","_processor","_css","_opts","_map","self","generatedCSS","generatedMap","_root","noWorkResult$1","NoWorkResult2$1","LazyResult$1$1","Document$1$1","Root$2$1","Processor$1$1","normalized","use","processor$1","Declaration$1$1","PreviousMap2$1","Comment$1$1","AtRule$1$1","Input$1$1","Root$1$1","Rule$1$1","fromJSON$1$1","ownInputs","inputHydrated","fromJSON_1$1","CssSyntaxError2$1","Declaration2$1","LazyResult2$1","Container2$1","Processor2$1","stringify$5","fromJSON$2","Document22","Warning2$1","Comment2$1","AtRule2$1","Result2$1","Input2$1","parse$5","list$3","Rule2$1","Root2$1","Node2$1","postcss$3","initializer","warningPrinted","creator","LANG","transformer","processOpts","pluginOpts","fromJSON","list","atRule","Processor","Warning","Result","Input","postcss_1$1","postcss$1$1","__defProp2","__publicField2","__defNormalProp2","getDefaultExportFromCjs","getAugmentedNamespace","picocolors_browser","x","create","picocolors_browserExports","require$$2","pico","terminalHighlight$1","CssSyntaxError$3","CssSyntaxError2","cssSyntaxError","symbols","DEFAULT_RAW","Stringifier$2","Stringifier$1","stringify$4","stringify_1","isClean$2","my$2","CssSyntaxError$2","Stringifier22","stringify$3","cloneNode","Node$4","Node$3","Declaration$4","declaration","nonSecure","SourceMapConsumer$2","SourceMapGenerator$2","dirname$1","PreviousMap$2","previousMap","SourceMapConsumer$1","SourceMapGenerator$1","pathToFileURL$1","resolve$1","terminalHighlight","CssSyntaxError$1","PreviousMap$1","fromOffsetCache","sourceMapAvailable$1","pathAvailable$1","Input$4","Input$3","sourceMapAvailable","pathAvailable","mapGenerator","Node$2","Comment$4","parse$4","Rule$4","AtRule$4","Root$6","isClean$1","my$1","Declaration$3","Comment$3","Node$1","cleanSource","markDirtyUp","Container$7","Container2","container","LazyResult$4","Processor$3","Container$6","Document$3","document$1","printed","warnOnce$2","Warning$2","warning","Warning$1","Result$3","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","Container$5","AtRule$3","LazyResult$3","Processor$2","Container$4","Root$5","list$2","list_1","Container$3","list$1","Rule$3","Declaration$2","tokenizer22","Comment$2","AtRule$2","Root$4","Rule$2","SAFE_COMMENT_NEIGHBOR","Container$2","Parser22","findLastWithPosition","Input$2","parse$3","parse_1","MapGenerator$1","stringify$2","Container$1","Document$2","warnOnce$1","Result$2","parse$2","Root$3","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","isPromise","getEvents","toStack","cleanMarks","postcss$2","LazyResult$2","LazyResult2","lazyResult","MapGenerator22","stringify$1","warnOnce22","parse$1","Result$1","NoWorkResult$1","noWorkResult","NoWorkResult22","LazyResult$1","Document$1","Root$2","Processor$1","Declaration$1","PreviousMap22","Comment$1","AtRule$1","Input$1","Root$1","Rule$1","fromJSON$1","fromJSON_1","CssSyntaxError22","Declaration22","LazyResult22","Container22","Processor22","Document222","Warning22","Comment22","AtRule22","Result22","Input22","Rule22","Root22","Node22","postcss_1","postcss$1","BaseRRNode","_args","childIterator","firstChild","nextSibling","_newChild","_refChild","_node","testableAccessors","testableMethods","untaintedBasePrototype","getUntaintedPrototype","untaintedAccessorCache","getUntaintedAccessor","untaintedMethodCache","getUntaintedMethod","mutationObserverCtor","on","fn","target","capture","passive","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle","wait","timeout","now","Date","leading","remaining","context","trailing","hookSetter","isRevoked","receiver","nowTimestamp","getWindowScroll","_c","_d","scrollingElement","pageXOffset","documentElement","top","pageYOffset","getWindowHeight","innerHeight","clientHeight","getWindowWidth","innerWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","isAncestorRemoved","legacy_isTouchEvent","changedTouches","isSerializedIframe","nodeName","isSerializedStylesheet","hasShadowRoot","getTime","StyleSheetMirror","styleIDMap","newId","idStyleMap","getStyle","generateId","getShadowHost","shadowHost","DOCUMENT_FRAGMENT_NODE","shadowHostInDom","rootShadowHost","getRootShadowHost","inDom","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","MediaInteractions","MediaInteractions2","NodeType","isNodeInLinkedList","DoubleLinkedList","head","addNode","__ln","previousSibling","tail","removeNode","moveKey","parentId","MutationBuffer","Set","mutations","processMutation","emit","frozen","locked","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","parentTag","addedSet","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","mapRemoves","movedSet","isParentRemoved","removesSubTreeCache","isAncestorInSet","droppedSet","candidate","tailNode","unhandledNode","payload","texts","genTextAreaValueMutation","attribute","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","removes","attributeMap","movedMap","mutationCb","textarea","item","cn","m","oldValue","attributeName","unattachedDoc","implementation","createHTMLDocument","old","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","queue","n22","processRemoves","processedNodeManager","inOtherBuffer","targetId","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","_isParentRemoved","_isAncestorInSet","errorHandler","callbackWrapper","rest","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","observer","processMutations","observe","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","handlers","currentPointerType","Number","isNaN","endsWith","eventKey","eventName","handler","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","clientX","clientY","getHandler","PointerEvent","TouchStart","TouchEnd","h","initScrollObserver","scrollCb","evt","defaultView","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","recurse","getIdAndStyleId","styleMirror","styleId","initAdoptedStyleSheetObserver","host2","hostId","patchTarget","originalPropertyDescriptor","_a3","sheets","adoptStyleSheets","initObservers","o2","hooks","currentWindow","mousemoveCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","mutation","mousemove","viewportResize","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","mergeHooks","recordDOM","mousemoveHandler","threshold","callbackThreshold","mousemoveCallback","timeBaseline","positions","wrappedCb","totalOffset","timeOffset","updatePosition","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","text2","v2","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","Play","Pause","Seeked","VolumeChange","RateChange","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","CSSStyleSheet","insertRule","thisArg","argumentsList","addRule","styleBlock","deleteRule","replaceSync","removeRule","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","priority","removeProperty","initStyleDeclarationObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","Uint8Array","restoreHandler","fonts","initFontObserver","selectionObserver","param","collapsed","updateSelection","getSelection","isCollapsed","ranges","count","rangeCount","getRangeAt","startContainer","startOffset","endContainer","endOffset","initSelectionObserver","customElementObserver","define","initCustomElementObserver","pluginHandlers","plugin3","disconnect","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","ids","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","IframeManager","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","iframes","crossOriginIframeMap","addLoadListener","loadListener","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","crossOriginIframeMirror","replaceIdOnNode","crossOriginIframeRootIdMap","patchRootIdOnNode","timestamp","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","styles","iframeMirror","ShadowDomManager","WeakSet","patchAttachShadow","shadowDoms","restoreHandlers","iframeElement","manager","option","sRoot","chars","lookup","i$1","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","list2","ctor","contextMap","variableListFor$1","serializeArg","arg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","ArrayBuffer","base64","arraybuffer","bytes","encode","DataView","byteOffset","byteLength","HTMLImageElement","HTMLCanvasElement","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","ctxName","getNormalizedContextName","contextAttributes","preserveDrawingBuffer","patchGLPrototype","getOwnPropertyNames","recordArgs","hookHandler","setter","encodedJs","blob","Blob","WorkerWrapper","objURL","webkitURL","createObjectURL","worker","Worker","revokeObjectURL","CanvasManager","latestId","invokeId","rafStamps","pendingCanvasMutations","initCanvasMutationObserver","initCanvasFPSObserver","clear","resetObservers","fps","canvasContextReset","snapshotInProgressMap","onmessage","commands","timeBetweenSnapshots","rafId","lastSnapshotTime","takeCanvasSnapshots","matchedCanvas","getCanvas","getContextAttributes","COLOR_BUFFER_BIT","bitmap","createImageBitmap","postMessage","requestAnimationFrame","cancelAnimationFrame","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","props2D","CanvasRenderingContext2D","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","flushPendingCanvasMutations","setLatestRAFTimestamp","_values","flushPendingCanvasMutationFor","valuesWithType","type2","StylesheetManager","adoptedStyleSheetCb","linkEl","trackedLinkElements","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","CSSRule","r2","_linkEl","ProcessedNodeManager","thisBuffer","buffers","nodeMap","active","destroy","takeFullSnapshot$1","recording","cleanFrame","debug","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","packFn","mousemoveWait","recordAfter","errorHandler2","inEmittingFrame","passEmitsToParent","date","email","month","search","tel","time","week","select","password","lastFullSnapshotEvent","NodeList","DOMTokenList","polyfill$1","incrementalSnapshotCount","eventProcessor","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","getMirror","nodeMirror","slimDOM","snapshot","initialOffset","CustomElement","n$1","t2","addCustomEvent","tag","freezePage","takeFullSnapshot","NotStarted","Running","Stopped","byteToHex","i","getRandomValues","rnds8","_state","v1","rnds","crypto","rng","state","msecs","Infinity","nsecs","undefined","clockseq","updateV1State","RangeError","tl","tmh","n","v1Bytes","arr","unsafeStringify","s","e","NONE","ERROR","WARN","INFO","DEBUG","config","level","enableConsole","enableStorage","isBrowser","setConfig","shouldLog","formatMessage","t","toISOString","logToStorage","info","log","localStorage","getItem","setItem","getLogs","clearLogs","removeItem","o","a","c","l","_isPolling","_pollIntervalMs","_queue","_areWeOnline","_sendRequest","navigator","onLine","_flush","retriableRequest","retriesPerformedSoFar","searchParams","_shouldRetry","_enqueue","statusCode","status","ceil","retryAt","requestOptions","round","_poll","_poller","unload","_sendBeaconRequest","sendBeacon","storageKey","maxQueueSize","getQueue","setQueue","clearQueue","addToQueue","removeFromQueue","getQueueLength","u","g","TextEncoder","w","sessionId","f","fromEntries","apiKey","ingestionUrl","monthlyLimitReached","endUserId","cspBlocked","requestTimeout","currentBatchSize","baseUrl","persistence","retryQueue","_sendRequestInternal","_loadPersistedEvents","setTrackingContext","sendEventsChunked","windowId","automaticProperties","AbortController","abort","estimatedSize","r","fetch","headers","signal","keepalive","ok","checkMonthlyLimit","referrer","userId","entryURL","trackedFetch","Authorization","Referer","sdkVersion","statusText","sendEvents","flat","_sendChunkWithRetry","_persistEvents","sendUserData","userAttributes","posthogName","sendUserAuth","authFields","sendSessionEndBeacon","sendHeartbeatBeacon","sendBeaconEvents","sendCustomEvent","eventProperties","errorText","sendCustomEventBatch","sendCustomEventBatchBeacon","sendLog","sendNetworkError","errorType","sendIpInfo","ipDetectionMethod","shouldSkipNetworkTracking","trackedFetchWithBeaconFallback","requestId","duration","timestampMs","classifyHttpError","errorMessage","startTimeMs","spanName","spanStatus","isCSPViolation","classifyNetworkError","errorName","Response","Headers","v","redactedText","unredactedFields","redactedFields","redactionMode","excludeSelectors","redactionStrategy","mode","unredactFields","setFieldsToUnredact","redactFields","setFieldsToRedact","legacyRedactFields","userFields","applyRedactionClasses","isPasswordSelector","applyUnredactionClasses","clearUnredactedFields","removeUnredactionClasses","hasUnredactedFields","getRedactionMode","getUnredactedFields","getMaskTextSelector","getOriginalValue","isElementUnredacted","shouldUnredactElement","userAgent","screen","S","hostname","T","device_type","browser","browser_version","os","os_version","screen_resolution","viewport_size","color_depth","timezone","language","languages","parseFloat","colorDepth","Intl","DateTimeFormat","resolvedOptions","timeZone","raw_user_agent","E","current_url","hash","title","referrer_domain","initial_referrer","initial_referrer_domain","initial_host","I","C","utm_source","utm_medium","utm_campaign","utm_term","utm_content","U","sessionProperties","userProperties","initialProperties","isInitialized","enableAutomaticProperties","enableSessionProperties","enableUserProperties","propertyDenylist","initialize","initial_url","initial_pathname","initial_utm_source","initial_utm_medium","initial_utm_campaign","initial_utm_term","initial_utm_content","loadSessionProperties","getEventProperties","getAutomaticProperties","$initial_properties_captured","setSessionProperty","applyDenylist","getAutomaticPropertiesWithGeoIP","saveSessionProperties","setSessionProperties","getSessionProperty","removeSessionProperty","setUserProperty","setUserProperties","getUserProperty","removeUserProperty","setOnce","clearSessionProperties","clearUserProperties","sessionStorage","updateAutomaticProperties","getAllProperties","automatic","session","user","initial","P","D","isTrackerStarted","isStarted","setupDomReadyHandler","onDomReady","setInterval","clearInterval","isDomReady","requestQueue","processRequest","domReadyHandlers","queueRequest","addEvent","identifyUser","trackPageView","registerDomReadyHandler","suppressConsoleErrors","preventDefault","__humanBehaviorGlobalTracker","logLevel","configureLogging","enableConsoleTracking","enableNetworkTracking","installMetadata","setUnredactedFields","enableAutomaticTracking","setupAutomaticTracking","automaticTrackingOptions","eventQueue","pendingCustomEvents","pendingLogs","pendingNetworkErrors","customEventBatch","customEventBatchTimer","CUSTOM_EVENT_FLUSH_MS","CUSTOM_EVENT_BATCH_MAX","_sessionActivityTimestamp","_sessionStartTimestamp","isProcessing","flushInterval","FLUSH_INTERVAL_MS","heartbeatInterval","HEARTBEAT_INTERVAL_MS","SESSION_IDLE_TIMEOUT_MS","SESSION_MAX_LENGTH_MS","focusBlurGraceTimeout","FOCUS_BLUR_GRACE_MS","lastEmittedFocusState","initialized","initializationPromise","originalConsole","consoleTrackingEnabled","originalFetch","networkTrackingEnabled","enableConsoleTrackingFlag","enableNetworkTrackingFlag","navigationTrackingEnabled","currentUrl","previousUrl","originalPushState","originalReplaceState","navigationListeners","lastPushStateAt","NAVIGATION_DEDUPE_MS","_connectionBlocked","recordInstance","sessionStartTime","rrwebRecord","fullSnapshotTimeout","minimumDurationMilliseconds","_isIdle","_lastActivityTimestamp","IDLE_THRESHOLD_MS","rageClickTracker","clicks","RAGE_CLICK_THRESHOLD_PX","RAGE_CLICK_TIMEOUT_MS","RAGE_CLICK_CLICK_COUNT","rageJustFiredAt","deadClickTracker","pendingClicks","DEAD_CLICK_SCROLL_THRESHOLD_MS","DEAD_CLICK_SELECTION_THRESHOLD_MS","DEAD_CLICK_MUTATION_THRESHOLD_MS","DEAD_CLICK_ABSOLUTE_TIMEOUT_MS","api","MAX_QUEUE_SIZE","redactionManager","propertyManager","getCookie","setCookie","_window_id_storage_key","_primary_window_exists_storage_key","getOrCreateSessionId","getOrCreateWindowId","setupWindowUnloadListener","setupPageUnloadHandler","setupNavigationTracking","emitInstallCheck","customEvent","packageName","ingestionHost","environment","framework","packageManager","wizardVersion","installId","targetPackagePathHash","ensureInitialized","history","pushState","replaceState","trackNavigationEvent","$navigation_type","navigationType","eventType","checkAndRefreshSession","shouldSkipDueToMinimumDuration","properties","flushPendingCustomEvents","queueCustomEvent","flushCustomEventBatch","trackButtons","trackLinks","trackForms","includeText","includeClasses","setupAutocapture","setupAutomaticFormTracking","setupRageClickDetection","setupDeadClickDetection","page","buildDomPath","elementId","role","elementText","elementClass","isRageClick","clickCount","hypot","setupDeadClickMutationObserver","setupDeadClickScrollObserver","setupDeadClickSelectionObserver","setupDeadClickNavigationTracking","isInteractiveElement","ignoreClickForDeadDetection","lastMutationTime","handleDeadClickTimeout","originalEvent","cancelled","lastMutationTimeAtClick","abs","cancelPendingClick","lastSelectionChangedTime","cancelAllPendingClicks","onclick","getComputedStyle","cursor","fireDeadClickEvent","absoluteDelayMs","mutationDelayMs","selectionChangedDelayMs","setupAutomaticLinkTracking","FormData","formId","formAction","action","formMethod","fields","formClass","cleanupNavigationTracking","none","trackConsoleEvent","errorData","flushPendingNetworkErrors","flushPendingLogs","logData","enablePageLoadTracking","trackPageLoad","performance","getEntriesByType","loadEventEnd","fetchStart","domContentLoadedEventEnd","domComplete","timeOrigin","disableConsoleTracking","isSDKStackFrame","__humanBehaviorActiveTracker","visibilityState","emitVisibilityMarker","flushEvents","setupWindowFocusTracking","__hb_pending_snapshots","viewLogs","originalEndUserId","actualUserId","wasExistingUser","getUserAttributes","addRecordingEvent","HTMLElement","once","emitFocusMarker","hasFocus","onWindowBlur","onWindowFocus","stop","getSessionDuration","isInteractiveEvent","updateIdleState","_canUseSessionStorage","_getWindowIdFromStorage","_setWindowIdInStorage","_removeWindowIdFromStorage","_getPrimaryWindowExists","_setPrimaryWindowExists","setTime","toUTCString","cookie","deleteCookie","logout","createNewSession","redact","setRedactedFields","restartWithNewRedaction","getStoredSession","updateSessionActivity","sessionStartTimestamp","lastActivityTimestamp","getSessionId","getCurrentUrl","getSnapshotFrequencyInfo","sessionDuration","currentInterval","currentThreshold","phase","testConnection","success","getConnectionStatus","blocked","recommendations","isPreexistingUser","getUserInfo","HumanBehaviorTracker","humanbehavior","HumanBehaviorContext","createContext","HumanBehaviorProvider","client","humanBehavior","setHumanBehavior","useState","setEventQueue","isMounted","setIsMounted","setIsInitialized","apiKeyRef","useRef","clientRef","eventQueueRef","useEffect","queueEvent","useCallback","tracker","currentQueue","logDebug","logError","contextValue","useMemo","createQueuingImplementation","_jsxs","Provider","_jsx","HumanBehaviorPageView","_Fragment","logWarn","useHumanBehavior","useContext","useRedaction","useUserTracking","handleRouteChange"],"mappings":"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"}
|