humanbehavior-js 0.5.67 → 0.5.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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$2 = /* @__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$2 || {});\nconst testableAccessors$1 = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\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 = {};\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) {\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 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}\nconst index$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};\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 const stringifiedRules = Array.from(\n rules2,\n (rule2) => stringifyRule(rule2, s2.href)\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}\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\" && (tagName === \"table\" || tagName === \"td\" || tagName === \"th\")) {\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 (tagName === \"video\" || tagName === \"audio\") && 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 } = 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$2.Document,\n childNodes: [],\n compatMode: n2.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType$2.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$2.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 });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$2.CDATA,\n textContent: \"\",\n rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$2.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 var _a2;\n const { needsMask, maskTextFn, rootId } = options;\n const parent = index$1.parentNode(n2);\n const parentTagName = parent && parent.tagName;\n let text = index$1.textContent(n2);\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isStyle && text) {\n try {\n if (n2.nextSibling || n2.previousSibling) {\n } else if ((_a2 = parent.sheet) == null ? void 0 : _a2.cssRules) {\n text = stringifyStylesheet(parent.sheet);\n }\n } catch (err) {\n console.warn(\n `Cannot get CSS styles from text's parentNode. Error: ${err}`,\n n2\n );\n }\n text = absolutifyURLs(text, getHref(options.doc));\n }\n if (isScript) {\n text = \"SCRIPT_PLACEHOLDER\";\n }\n if (!isStyle && !isScript && text && needsMask) {\n text = maskTextFn ? maskTextFn(text, index$1.parentElement(n2)) : text.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$2.Text,\n textContent: text || \"\",\n isStyle,\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 && // TODO: Currently we only try to get dynamic stylesheet when it is an empty style element\n !(n2.innerText || index$1.textContent(n2) || \"\").trim().length) {\n const cssText = stringifyStylesheet(\n n2.sheet\n );\n if (cssText) {\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\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 (tagName === \"audio\" || tagName === \"video\") {\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$2.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 slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$2.Comment) {\n return true;\n } else if (sn.type === NodeType$2.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" || sn.attributes.rel === \"modulepreload\") && sn.attributes.as === \"script\" || // 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 } = 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 });\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$2.Text && !_serializedNode.isStyle && !_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$2.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$2.Document || serializedNode.type === NodeType$2.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$2.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 };\n if (serializedNode.type === NodeType$2.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\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$2.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$2.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 = slimDOM === true || slimDOM === \"all\" ? (\n // if true: set of sensible options that should not throw away any information\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === \"all\",\n // destructive\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n }\n ) : slimDOM === false ? {} : 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: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nfunction 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) {\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 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}\nconst index = {\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor\n};\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}\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}\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 = n2.ownerDocument;\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n2);\n return index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n const doc = n2.ownerDocument;\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 || {});\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, \"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) || parent.tagName === \"TEXTAREA\") {\n return;\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 });\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.removes, 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.removes, 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.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 item.attributes.value = Array.from(\n index.childNodes(textarea),\n (cn) => index.textContent(cn) || \"\"\n ).join(\"\");\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 }\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 isParentRemoved(removes, n2, mirror2) {\n if (removes.length === 0) return false;\n return _isParentRemoved(removes, n2, mirror2);\n}\nfunction _isParentRemoved(removes, n2, mirror2) {\n let node2 = index.parentNode(n2);\n while (node2) {\n const parentId = mirror2.getId(node2);\n if (removes.some((r2) => r2.id === parentId)) {\n return true;\n }\n node2 = index.parentNode(node2);\n }\n return false;\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$2.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 = _slimDOMOptions === true || _slimDOMOptions === \"all\" ? {\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 } : _slimDOMOptions ? _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 (document.readyState === \"interactive\" || document.readyState === \"complete\") {\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((h) => h());\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.5.67\",p=1048576,m=52428.8;function g(e,t,s){return (new TextEncoder).encode(w({sessionId:s,events:[...e,t]})).length>p}function w(e){return JSON.stringify(e,(e,t)=>\"bigint\"==typeof t?t.toString():t)}function y(e,t){if(!e||\"object\"!=typeof e)return [];if((new TextEncoder).encode(w({sessionId:t,events:[e]})).length<=p)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<=p)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 f{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<m,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=y(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}}sendBeaconEvents(e,t,s,i,n){const r={sessionId:t,events:e,endUserId:s||null,windowId:i,automaticProperties:n,sdkVersion:u,apiKey:this.apiKey},o=new Blob([w(r)],{type:\"application/json\"});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/events`,o)}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}}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 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<m,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 S=\"undefined\"!=typeof window;function k(){if(!S)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 _(e){try{return new URL(e).hostname}catch{return \"\"}}function b(){if(!S)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(!S)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(!S)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 T(){if(!S)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:_(t),initial_referrer:t,initial_referrer_domain:_(t),initial_host:window.location.hostname,...s}}function I(){return {...b(),...T()}}function E(){if(!S)return {};const e=T();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 U(){if(!S)return {};const e=T();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 C{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=E(),this.loadSessionProperties(),this.isInitialized=true);}getEventProperties(e={}){const t={...e};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)),this.applyDenylist(t),t}getAutomaticProperties(){return {...this.automaticProperties,...U()}}getAutomaticPropertiesWithGeoIP(e={}){return {...this.automaticProperties,...U(),...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 R=\"undefined\"!=typeof window;class P{get isTrackerStarted(){return this.isStarted}setupDomReadyHandler(){if(R)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(R&&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(R&&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._sessionActivityTimestamp=null,this._sessionStartTimestamp=null,this.userProperties={},this.isProcessing=false,this.flushInterval=null,this.FLUSH_INTERVAL_MS=3e3,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._connectionBlocked=false,this.recordInstance=null,this.sessionStartTime=Date.now(),this.rrwebRecord=null,this.fullSnapshotTimeout=null,this.recordCanvas=false,this.isStarted=false,this.rageClickTracker={clicks:[]},this.RAGE_CLICK_THRESHOLD_PX=30,this.RAGE_CLICK_TIMEOUT_MS=1e3,this.RAGE_CLICK_CLICK_COUNT=3,this.deadClickTracker={pendingClicks:new Map},this.DEAD_CLICK_SCROLL_THRESHOLD_MS=100,this.DEAD_CLICK_SELECTION_THRESHOLD_MS=100,this.DEAD_CLICK_MUTATION_THRESHOLD_MS=2e3,this.DEAD_CLICK_ABSOLUTE_TIMEOUT_MS=1400,!e)throw new Error(\"Human Behavior API Key is required\");const n=s||\"https://ingest.humanbehavior.co\";if(this.api=new f({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 C({enableAutomaticProperties:false!==i?.enableAutomaticProperties,propertyDenylist:i?.propertyDenylist||[]}),R){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();R?(this.sessionId=this.getOrCreateSessionId(),this.windowId=v1(),this.currentUrl=window.location.href,window.__humanBehaviorGlobalTracker=this):(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{R?(this.setupPageUnloadHandler(),this.setupNavigationTracking()):d(\"HumanBehaviorTracker initialized in server environment. Session tracking is disabled.\"),this.initialized=!0,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(!R||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.currentUrl=window.location.href,this.originalPushState.apply(history,e),this.trackNavigationEvent(\"pushState\",this.previousUrl,this.currentUrl),this.takeFullSnapshot();},history.replaceState=(...e)=>{this.previousUrl=this.currentUrl,this.currentUrl=window.location.href,this.originalReplaceState.apply(history,e),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=()=>{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)try{const i={type:e,from:t,to:s,timestamp:(new Date).toISOString(),pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,referrer:document.referrer};if(await this.addEvent({type:5,data:{payload:{eventType:\"navigation\",...i}},timestamp:Date.now()}),\"pageLoad\"===e||\"pushState\"===e||\"replaceState\"===e||\"popstate\"===e||\"hashchange\"===e){const s={url:window.location.href,fromUrl:t,navigationType:e,pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,referrer:document.referrer,timestamp:Date.now()};await this.customEvent(\"$page_viewed\",s);}c(`Navigation tracked: ${e} from ${t} to ${s}`);}catch(e){o(\"Failed to track navigation event:\",e);}}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){this.endUserId||(a(`endUserId not available, using anonymous ID for event: ${e}`),this.endUserId=v1()),R&&this.checkAndRefreshSession();const i=this.propertyManager.getEventProperties(s);try{await this.api.sendCustomEvent(this.sessionId,e,i,this.endUserId),c(`Custom event tracked: ${e}`,i);}catch(t){o(\"Failed to track custom event:\",t),t.message?.includes(\"500\")||t.message?.includes(\"Internal Server Error\")||t.message?.includes(\"Failed to send custom event\")?a(\"Custom event endpoint failed, using fallback\"):t.message?.includes(\"ERR_BLOCKED_BY_CLIENT\")?a(\"Custom event request blocked by ad blocker, using fallback\"):t.message?.includes(\"Failed to fetch\")&&a(\"Custom event network error, using fallback\");try{const t={eventName:e,properties:i||{},timestamp:(new Date).toISOString(),url:window.location.href,pathname:window.location.pathname};await this.addEvent({type:5,data:{payload:{eventType:\"custom\",...t}},timestamp:Date.now()}),c(`Custom event added to event stream as fallback: ${e}`);}catch(e){o(\"Failed to add custom event to event stream as fallback:\",e);}}}setupAutomaticTracking(e){if(!R)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),t.trackButtons&&this.setupAutomaticButtonTracking(t),t.trackForms&&this.setupAutomaticFormTracking(t),this.setupRageClickDetection();}setupAutomaticButtonTracking(e){document.addEventListener(\"click\",async t=>{const s=t.target;if(\"BUTTON\"===s.tagName||s.closest(\"button\")){const t=\"BUTTON\"===s.tagName?s:s.closest(\"button\"),i={buttonId:t.id||null,buttonType:t.type||\"button\",page:window.location.pathname,timestamp:Date.now()};e.includeText&&(i.buttonText=t.textContent?.trim()||null),e.includeClasses&&(i.buttonClass=t.className||null),Object.keys(i).forEach(e=>{null===i[e]&&delete i[e];}),await this.customEvent(\"$button_clicked\",i);}});}setupRageClickDetection(){R&&document.addEventListener(\"click\",async e=>{const t=e.target,s=e.clientX,i=e.clientY,n=Date.now();if(this.isRageClick(s,i,n,t)){const e=t.closest('button, a, [role=\"button\"], [role=\"link\"]')||t,r={x:s,y:i,page:window.location.pathname,element:e.tagName.toLowerCase(),clickCount:this.RAGE_CLICK_CLICK_COUNT,timestamp:n};e.id&&(r.elementId=e.id),e.className&&(r.elementClass=e.className),e.textContent&&(r.elementText=e.textContent.trim().substring(0,100)),Object.keys(r).forEach(e=>{null!==r[e]&&void 0!==r[e]||delete r[e];}),await this.customEvent(\"$rageclick\",r),this.rageClickTracker.clicks=[];}});}isRageClick(e,t,s,i){const n=this.rageClickTracker.clicks,r=n[n.length-1];if(r&&Math.abs(e-r.x)+Math.abs(t-r.y)<this.RAGE_CLICK_THRESHOLD_PX&&s-r.timestamp<this.RAGE_CLICK_TIMEOUT_MS){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}isInteractiveElement(e){const t=e.tagName.toLowerCase();if(\"button\"===t||\"a\"===t)return true;if([\"input\",\"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\"]')}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(){R&&!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(){R&&!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 c=null,l=false;a||(c=setTimeout(()=>{const e=Date.now()-i;l||(l=true,this.api.sendNetworkError({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}}).catch(()=>{}));},d));try{const t=await this.originalFetch(e,s),d=Date.now()-i;return c&&clearTimeout(c),t.ok||a||this.api.sendNetworkError({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}}).catch(()=>{}),t}catch(e){const t=Date.now()-i;throw c&&clearTimeout(c),a||this.api.sendNetworkError({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}}).catch(()=>{}),e}},this.networkTrackingEnabled=true,c(\"Network tracking enabled\"));}enablePageLoadTracking(){R&&\"undefined\"!=typeof window&&(\"complete\"===document.readyState?this.trackPageLoad():window.addEventListener(\"load\",()=>{this.trackPageLoad();}),c(\"Page load tracking enabled\"));}trackPageLoad(){if(R&&\"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;this.api.sendNetworkError({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,\"page.fetch_start\":e.fetchStart,\"page.response_start\":e.responseStart-e.fetchStart,\"page.response_end\":e.responseEnd-e.fetchStart}}).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(){R&&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:R?window.location.href:\"\",userAgent:R?navigator.userAgent:\"\",stack:s,sessionId:this.sessionId,endUserId:this.endUserId};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(!R)return;c(\"Setting up page unload handler\"),window.addEventListener(\"visibilitychange\",()=>{\"hidden\"===document.visibilityState&&(c(\"Page hidden - sending pending events\"),this.flushEvents());});const e=\"onpagehide\"in window?\"pagehide\":\"beforeunload\";window.addEventListener(e,()=>{c(\"Page unloading - sending final events via sendBeacon\");const e=[...this.eventQueue],t=e.some(e=>e&&2===e.type);if(!t&&R&&window.__hb_pending_snapshots){const t=window.__hb_pending_snapshots;Array.isArray(t)&&t.length>0&&(c(\"⚠️ Including pending FullSnapshot(s) in sendBeacon for short session\"),e.unshift(...t),delete window.__hb_pending_snapshots);}if(!t&&e.length>0&&a(\"⚠️ No FullSnapshot in queue on unload - if session was very short, initial snapshot may be lost\"),e.length>0&&this.api)try{const t=this.propertyManager.getAutomaticProperties();this.api.sendBeaconEvents(e,this.sessionId,this.endUserId||void 0,this.windowId,t),this.eventQueue=[];}catch(e){a(\"Failed to send events via sendBeacon on unload:\",e);}this.api&&this.api.unload();});const t=()=>{localStorage.setItem(\"human_behavior_last_activity\",Date.now().toString());};window.addEventListener(\"click\",t),window.addEventListener(\"keydown\",t),window.addEventListener(\"scroll\",t),window.addEventListener(\"mousemove\",t);}viewLogs(){try{const e=i.getLogs();d(\"HumanBehavior Logs:\",e),i.clearLogs();}catch(e){o(\"Failed to read logs:\",e);}}async identifyUser({userProperties:e}){const t=this.endUserId;this.userProperties=e,c(\"Identifying user:\",{userProperties:e,originalEndUserId:t,sessionId:this.sessionId}),!R||this.propertyManager.getAutomaticProperties();const s=await this.api.sendUserData(t||\"\",e,this.sessionId);if(s.actualUserId||s.wasExistingUser){const e=s.actualUserId||t;if(e&&e!==t){const s=\"human_behavior_end_user_id\";if(this.setCookie(s,e,365),R)try{localStorage.setItem(s,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: ${t})`);}}return t||\"\"}getUserAttributes(){return {...this.userProperties}}async start(){if(!R)return;if(this.isStarted)return void c(\"HumanBehaviorTracker already started, skipping start() call.\");this.isStarted=true,this.flushInterval=window.setInterval(()=>{this.flushEvents();},this.FLUSH_INTERVAL_MS),this.enableConsoleTrackingFlag&&this.enableConsoleTracking(),this.enableNetworkTrackingFlag&&this.enableNetworkTracking(),this.enablePageLoadTracking();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);}}takeFullSnapshot(){this.fullSnapshotTimeout&&clearTimeout(this.fullSnapshotTimeout),this.fullSnapshotTimeout=window.setTimeout(()=>{try{requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.takeFullSnapshot?(this.rrwebRecord.takeFullSnapshot(),c(\"✅ FullSnapshot taken for navigation (delayed for animations)\")):a(\"⚠️ takeFullSnapshot not available on record function\");});});}catch(e){o(\"❌ Failed to take FullSnapshot for navigation:\",e);}},1e3);}async stop(){await this.ensureInitialized(),R&&(this.flushInterval&&(clearInterval(this.flushInterval),this.flushInterval=null),this.recordInstance&&(this.recordInstance(),this.recordInstance=null),this.fullSnapshotTimeout&&(clearTimeout(this.fullSnapshotTimeout),this.fullSnapshotTimeout=null),this.rrwebRecord=null,this.disableConsoleTracking(),this.cleanupNavigationTracking());}async addEvent(e){if(R&&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);}async flushEvents(){if(!this.isProcessing&&!this.monthlyLimitReached){this.isProcessing=true;try{const e=this.eventQueue,t=e.filter(e=>e&&2===e.type);if(this.eventQueue=[],t.length>0&&R&&(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\");}}}}finally{this.isProcessing=false;}}}async addRecordingEvent(e){if(R&&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 recording event:\",e);}setCookie(e,t,s){if(R)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(!R)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(R){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(R)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.api.setTrackingContext(this.sessionId,this.endUserId),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(),R?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(!R)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.api.setTrackingContext(this.sessionId,this.endUserId),void c(`Created new session (no stored session): ${this.sessionId}`);this.updateSessionActivity(e,s,i.sessionId,i.sessionStartTimestamp);}getOrCreateSessionId(){if(!R)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>9e5||r>864e5){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=9e5,n=864e5;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.api.setTrackingContext(this.sessionId,this.endUserId),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.api.setTrackingContext(this.sessionId,this.endUserId),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;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 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(!R)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=globalThis.__humanBehaviorGlobalTracker;return s?.track?s.track(e,t):(console.warn(\"HumanBehavior tracker not found. Make sure the SDK is initialized.\"),null)}function $(){const e=globalThis.__humanBehaviorGlobalTracker;return !!e?.identifyUser}R&&(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 { f as HumanBehaviorAPI, P as HumanBehaviorTracker, s as LogLevel, C as PropertyManager, v as RedactionManager, I as getAutomaticProperties, U as getCurrentPageProperties, b as getDeviceInfo, E as getInitialProperties, T as getLocationInfo, F as identifyUserGlobally, init, $ 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$2","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","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","childNodes","n2","parentNode","parentElement","textContent","contains","other","getRootNode","host","styleSheets","shadowRoot","querySelector","selectors","querySelectorAll","mutationObserver","constructor","isElement","nodeType","ELEMENT_NODE","isShadowRoot","hostEl","isNativeShadowDom","shadowRoot2","stringifyStylesheet","s2","rules2","rules","cssRules","stringifiedRules","Array","from","rule2","stringifyRule","href","join","cssText","replace","error","sheetHref","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","_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","name","pos","collectCharacters","regEx","chars2","exec","substring","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","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName$1","attributes","len","i2","attr","stylesheet","find","rel","_cssText","sheet","innerText","checked","selected","open","rr_open_mode","__context","canvas","ctx","getContext","x2","width","y","height","getImageData","originalGetImageData","Uint32Array","Math","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","isStyle","isScript","nextSibling","previousSibling","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","sn","comment","script","as","headFavicon","headMetaDescKeywords","headMetaSocial","property","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","assign","recordChild","shadowRootEl","isShadowHost","headWhitespace","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","k","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","source","file","plugin22","super","reason","plugin","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","start","max","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","j","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","original","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","childNodes2","childIterator","firstChild","ownerDocument","_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","patch","replacement","wrapped","defineProperties","__rrweb_original__","receiver","nowTimestamp","getWindowScroll","_c","_d","scrollingElement","pageXOffset","documentElement","top","pageYOffset","getWindowHeight","innerHeight","clientHeight","getWindowWidth","innerWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","headTitleMutations","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","isNodeInLinkedList","DoubleLinkedList","head","addNode","__ln","tail","removeNode","moveKey","parentId","MutationBuffer","Set","mutations","processMutation","emit","frozen","locked","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","mapRemoves","movedSet","isParentRemoved","removes","addedSet","isAncestorInSet","droppedSet","candidate","tailNode","unhandledNode","payload","texts","genTextAreaValueMutation","attribute","style","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","attributeMap","movedMap","mutationCb","textarea","item","cn","m","oldValue","attributeName","unattachedDoc","implementation","createHTMLDocument","old","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","processedNodeManager","inOtherBuffer","targetId","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","r2","_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","ownerNode","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","_linkEl","ProcessedNodeManager","thisBuffer","buffers","nodeMap","active","destroy","takeFullSnapshot$1","recording","cleanFrame","debug","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","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","floor","clearQueue","addToQueue","removeFromQueue","getQueueLength","u","g","TextEncoder","w","sessionId","fromEntries","f","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","sendBeaconEvents","sendCustomEvent","eventProperties","errorText","sendCustomEventBatch","sendLog","sendNetworkError","errorType","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","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","T","current_url","hash","title","referrer_domain","initial_referrer","initial_referrer_domain","initial_host","I","U","utm_source","utm_medium","utm_campaign","utm_term","utm_content","C","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","E","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","R","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","_sessionActivityTimestamp","_sessionStartTimestamp","isProcessing","flushInterval","FLUSH_INTERVAL_MS","initialized","initializationPromise","originalConsole","consoleTrackingEnabled","originalFetch","networkTrackingEnabled","enableConsoleTrackingFlag","enableNetworkTrackingFlag","navigationTrackingEnabled","currentUrl","previousUrl","originalPushState","originalReplaceState","navigationListeners","_connectionBlocked","recordInstance","sessionStartTime","rrwebRecord","fullSnapshotTimeout","rageClickTracker","clicks","RAGE_CLICK_THRESHOLD_PX","RAGE_CLICK_TIMEOUT_MS","RAGE_CLICK_CLICK_COUNT","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","getOrCreateSessionId","setupPageUnloadHandler","setupNavigationTracking","ensureInitialized","history","pushState","replaceState","trackNavigationEvent","eventType","navigationType","customEvent","checkAndRefreshSession","properties","trackButtons","trackLinks","trackForms","includeText","includeClasses","setupAutomaticButtonTracking","setupAutomaticFormTracking","setupRageClickDetection","buttonId","buttonType","page","buttonText","buttonClass","isRageClick","clickCount","elementId","elementClass","elementText","abs","isInteractiveElement","onclick","getComputedStyle","cursor","setupAutomaticLinkTracking","FormData","formId","formAction","action","formMethod","fields","formClass","cleanupNavigationTracking","none","trackConsoleEvent","enablePageLoadTracking","trackPageLoad","performance","getEntriesByType","loadEventEnd","fetchStart","domContentLoadedEventEnd","domComplete","timeOrigin","responseStart","responseEnd","disableConsoleTracking","isSDKStackFrame","visibilityState","flushEvents","__hb_pending_snapshots","viewLogs","originalEndUserId","actualUserId","wasExistingUser","getUserAttributes","addRecordingEvent","HTMLElement","once","stop","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","createQueuingImplementation","queueEvent","logWarn","useHumanBehavior","tracker","useContext","HumanBehaviorPageView","useEffect","handleRouteChange","client","humanBehavior","setHumanBehavior","useState","setEventQueue","isMounted","setIsMounted","setIsInitialized","apiKeyRef","useRef","clientRef","eventQueueRef","useCallback","currentQueue","logDebug","logError","contextValue","useMemo","_jsxs","Provider","_jsx","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","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$2 = /* @__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$2 || {});\nconst testableAccessors$1 = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\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 = {};\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) {\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 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}\nconst index$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};\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 const stringifiedRules = Array.from(\n rules2,\n (rule2) => stringifyRule(rule2, s2.href)\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}\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\" && (tagName === \"table\" || tagName === \"td\" || tagName === \"th\")) {\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 (tagName === \"video\" || tagName === \"audio\") && 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 } = 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$2.Document,\n childNodes: [],\n compatMode: n2.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType$2.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$2.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 });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$2.CDATA,\n textContent: \"\",\n rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$2.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 var _a2;\n const { needsMask, maskTextFn, rootId } = options;\n const parent = index$1.parentNode(n2);\n const parentTagName = parent && parent.tagName;\n let text = index$1.textContent(n2);\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isStyle && text) {\n try {\n if (n2.nextSibling || n2.previousSibling) {\n } else if ((_a2 = parent.sheet) == null ? void 0 : _a2.cssRules) {\n text = stringifyStylesheet(parent.sheet);\n }\n } catch (err) {\n console.warn(\n `Cannot get CSS styles from text's parentNode. Error: ${err}`,\n n2\n );\n }\n text = absolutifyURLs(text, getHref(options.doc));\n }\n if (isScript) {\n text = \"SCRIPT_PLACEHOLDER\";\n }\n if (!isStyle && !isScript && text && needsMask) {\n text = maskTextFn ? maskTextFn(text, index$1.parentElement(n2)) : text.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$2.Text,\n textContent: text || \"\",\n isStyle,\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 && // TODO: Currently we only try to get dynamic stylesheet when it is an empty style element\n !(n2.innerText || index$1.textContent(n2) || \"\").trim().length) {\n const cssText = stringifyStylesheet(\n n2.sheet\n );\n if (cssText) {\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\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 (tagName === \"audio\" || tagName === \"video\") {\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$2.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 slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$2.Comment) {\n return true;\n } else if (sn.type === NodeType$2.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" || sn.attributes.rel === \"modulepreload\") && sn.attributes.as === \"script\" || // 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 } = 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 });\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$2.Text && !_serializedNode.isStyle && !_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$2.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$2.Document || serializedNode.type === NodeType$2.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$2.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 };\n if (serializedNode.type === NodeType$2.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\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$2.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$2.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 = slimDOM === true || slimDOM === \"all\" ? (\n // if true: set of sensible options that should not throw away any information\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === \"all\",\n // destructive\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n }\n ) : slimDOM === false ? {} : 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: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nfunction 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) {\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 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}\nconst index = {\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor\n};\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}\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}\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 = n2.ownerDocument;\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n2);\n return index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n const doc = n2.ownerDocument;\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 || {});\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, \"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) || parent.tagName === \"TEXTAREA\") {\n return;\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 });\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.removes, 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.removes, 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.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 item.attributes.value = Array.from(\n index.childNodes(textarea),\n (cn) => index.textContent(cn) || \"\"\n ).join(\"\");\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 }\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 isParentRemoved(removes, n2, mirror2) {\n if (removes.length === 0) return false;\n return _isParentRemoved(removes, n2, mirror2);\n}\nfunction _isParentRemoved(removes, n2, mirror2) {\n let node2 = index.parentNode(n2);\n while (node2) {\n const parentId = mirror2.getId(node2);\n if (removes.some((r2) => r2.id === parentId)) {\n return true;\n }\n node2 = index.parentNode(node2);\n }\n return false;\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$2.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 = _slimDOMOptions === true || _slimDOMOptions === \"all\" ? {\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 } : _slimDOMOptions ? _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 (document.readyState === \"interactive\" || document.readyState === \"complete\") {\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((h) => h());\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;}},l=(e,...t)=>{n=true;try{i.debug(e,...t);}finally{n=false;}};class c{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)),l(`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(),l(\"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.5.69\",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 c(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){l(`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){l(`[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 l=w({sessionId:t,events:e.slice(o,o+r),endUserId:s,windowId:i,automaticProperties:n,sdkVersion:u}),c=(new TextEncoder).encode(l).length;try{const h=await this.trackedFetch(`${this.baseUrl}/api/ingestion/events`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:l},c);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:l,estimatedSize:c,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:l,estimatedSize:c,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};l(\"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 l(\"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}}sendBeaconEvents(e,t,s,i,n){const r={sessionId:t,events:e,endUserId:s||null,windowId:i,automaticProperties:n,sdkVersion:u,apiKey:this.apiKey},o=new Blob([w(r)],{type:\"application/json\"});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/events`,o)}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 l(\"[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}}async sendLog(e){try{if(l(\"[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?l(\"[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(l(\"[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?l(\"[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 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,l=await fetch(e,{...s,signal:t?.signal,keepalive:d});a&&clearTimeout(a);const c=Date.now()-n;return l.ok||o||await this.sendNetworkError({requestId:r,url:e,method:s.method||\"GET\",status:l.status,statusText:l.statusText,duration:c,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyHttpError(l.status),errorMessage:l.statusText,startTimeMs:n,spanName:`${s.method||\"GET\"} ${e}`,spanStatus:\"error\",attributes:{\"http.status_code\":l.status,\"http.status_text\":l.statusText}}).catch(()=>{}),l}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)?(l(\"[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?l(`Redaction: Active for ${this.redactedFields.size} field(s):`,Array.from(this.redactedFields)):l(\"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?l(`Unredaction: Active for ${t.length} field(s):`,t):l(\"Unredaction: No valid fields to unredact\"),this.applyUnredactionClasses();}redactFields(e){e.forEach(e=>{this.unredactedFields.delete(e);}),this.unredactedFields.size>0?l(`Unredaction: Removed ${e.length} field(s), ${this.unredactedFields.size} remaining:`,Array.from(this.unredactedFields)):l(\"Unredaction: All fields redacted\"),this.applyUnredactionClasses();}clearUnredactedFields(){this.unredactedFields.clear(),l(\"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\");}),l(`Added rr-mask class to ${t.length} element(s) for selector: ${e}`);}catch(t){a(`Invalid selector: ${e}`);}}):l(\"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\");}),l(`Removed rr-mask class from ${t.length} element(s) for selector: ${e}`);}catch(t){a(`Invalid selector: ${e}`);}}):l(\"DOM not ready, deferring unredaction class application\"));}removeUnredactionClasses(){l(\"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 I(){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 b(){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 T(){return {...I(),...b()}}function E(){if(!_)return {};const e=b();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=b();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=T(),this.initialize();}initialize(){this.isInitialized||(this.initialProperties=E(),this.loadSessionProperties(),this.isInitialized=true);}getEventProperties(e={}){const t={...e};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)),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=T();}getAllProperties(){return {automatic:this.getAutomaticProperties(),session:{...this.sessionProperties},user:{...this.userProperties},initial:{...this.initialProperties}}}}const P=\"undefined\"!=typeof window;class R{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,l(\"🎯 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(l(\"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 l(\"Tracker already initialized, returning existing instance\"),window.__humanBehaviorGlobalTracker;t?.logLevel&&this.configureLogging({level:t.logLevel});const s=new R(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._sessionActivityTimestamp=null,this._sessionStartTimestamp=null,this.userProperties={},this.isProcessing=false,this.flushInterval=null,this.FLUSH_INTERVAL_MS=3e3,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._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.deadClickTracker={pendingClicks:new Map},this.DEAD_CLICK_SCROLL_THRESHOLD_MS=100,this.DEAD_CLICK_SELECTION_THRESHOLD_MS=100,this.DEAD_CLICK_MUTATION_THRESHOLD_MS=2e3,this.DEAD_CLICK_ABSOLUTE_TIMEOUT_MS=1400,!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||[]}),P){const e=\"human_behavior_end_user_id\",s=this.getCookie(e);this.endUserId=s||v1(),s?l(`Reusing existing endUserId: ${this.endUserId}`):(this.setCookie(e,this.endUserId,365),l(`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{P?(this.setupPageUnloadHandler(),this.setupNavigationTracking()):d(\"HumanBehaviorTracker initialized in server environment. Session tracking is disabled.\"),this.initialized=!0,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(!P||this.navigationTrackingEnabled)return;this.navigationTrackingEnabled=true,l(\"Setting up navigation tracking\"),this.originalPushState=history.pushState,this.originalReplaceState=history.replaceState,history.pushState=(...e)=>{this.previousUrl=this.currentUrl,this.currentUrl=window.location.href,this.originalPushState.apply(history,e),this.trackNavigationEvent(\"pushState\",this.previousUrl,this.currentUrl),this.takeFullSnapshot();},history.replaceState=(...e)=>{this.previousUrl=this.currentUrl,this.currentUrl=window.location.href,this.originalReplaceState.apply(history,e),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=()=>{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)try{const i={type:e,from:t,to:s,timestamp:(new Date).toISOString(),pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,referrer:document.referrer};if(await this.addEvent({type:5,data:{payload:{eventType:\"navigation\",...i}},timestamp:Date.now()}),\"pageLoad\"===e||\"pushState\"===e||\"replaceState\"===e||\"popstate\"===e||\"hashchange\"===e){const s={url:window.location.href,fromUrl:t,navigationType:e,pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,referrer:document.referrer,timestamp:Date.now()};await this.customEvent(\"$page_viewed\",s);}l(`Navigation tracked: ${e} from ${t} to ${s}`);}catch(e){o(\"Failed to track navigation event:\",e);}}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()}),l(`Pageview tracked: ${t.url}`);}catch(e){o(\"Failed to track pageview event:\",e);}}}async customEvent(e,s){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 l(`Custom event '${e}' queued due to session duration below minimum`),void this.pendingCustomEvents.push({eventName:e,properties:i,timestamp:Date.now()});await this.flushPendingCustomEvents();try{await this.api.sendCustomEvent(this.sessionId,e,i,this.endUserId),l(`Custom event tracked: ${e}`,i);}catch(t){o(\"Failed to track custom event:\",t),t.message?.includes(\"500\")||t.message?.includes(\"Internal Server Error\")||t.message?.includes(\"Failed to send custom event\")?a(\"Custom event endpoint failed, using fallback\"):t.message?.includes(\"ERR_BLOCKED_BY_CLIENT\")?a(\"Custom event request blocked by ad blocker, using fallback\"):t.message?.includes(\"Failed to fetch\")&&a(\"Custom event network error, using fallback\");try{const t={eventName:e,properties:i||{},timestamp:(new Date).toISOString(),url:window.location.href,pathname:window.location.pathname};await this.addEvent({type:5,data:{payload:{eventType:\"custom\",...t}},timestamp:Date.now()}),l(`Custom event added to event stream as fallback: ${e}`);}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};l(\"Setting up automatic tracking with config:\",t),t.trackButtons&&this.setupAutomaticButtonTracking(t),t.trackForms&&this.setupAutomaticFormTracking(t),this.setupRageClickDetection();}setupAutomaticButtonTracking(e){document.addEventListener(\"click\",async t=>{const s=t.target;if(\"BUTTON\"===s.tagName||s.closest(\"button\")){const t=\"BUTTON\"===s.tagName?s:s.closest(\"button\"),i={buttonId:t.id||null,buttonType:t.type||\"button\",page:window.location.pathname,timestamp:Date.now()};e.includeText&&(i.buttonText=t.textContent?.trim()||null),e.includeClasses&&(i.buttonClass=t.className||null),Object.keys(i).forEach(e=>{null===i[e]&&delete i[e];}),await this.customEvent(\"$button_clicked\",i);}});}setupRageClickDetection(){P&&document.addEventListener(\"click\",async e=>{const t=e.target,s=e.clientX,i=e.clientY,n=Date.now();if(this.isRageClick(s,i,n,t)){const e=t.closest('button, a, [role=\"button\"], [role=\"link\"]')||t,r={x:s,y:i,page:window.location.pathname,element:e.tagName.toLowerCase(),clickCount:this.RAGE_CLICK_CLICK_COUNT,timestamp:n};e.id&&(r.elementId=e.id),e.className&&(r.elementClass=e.className),e.textContent&&(r.elementText=e.textContent.trim().substring(0,100)),Object.keys(r).forEach(e=>{null!==r[e]&&void 0!==r[e]||delete r[e];}),await this.customEvent(\"$rageclick\",r),this.rageClickTracker.clicks=[];}});}isRageClick(e,t,s,i){const n=this.rageClickTracker.clicks,r=n[n.length-1];if(r&&Math.abs(e-r.x)+Math.abs(t-r.y)<this.RAGE_CLICK_THRESHOLD_PX&&s-r.timestamp<this.RAGE_CLICK_TIMEOUT_MS){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}isInteractiveElement(e){const t=e.tagName.toLowerCase();if(\"button\"===t||\"a\"===t)return true;if([\"input\",\"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\"]')}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,l(\"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,l(\"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 c=null,h=false;a||(c=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}};return this.shouldSkipDueToMinimumDuration()?(l(\"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(c&&clearTimeout(c),!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}};if(this.shouldSkipDueToMinimumDuration())return l(\"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(c&&clearTimeout(c),!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}};if(this.shouldSkipDueToMinimumDuration())throw l(\"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,l(\"Network tracking enabled\"));}async flushPendingCustomEvents(){if(0===this.pendingCustomEvents.length)return;const e=[...this.pendingCustomEvents];this.pendingCustomEvents=[],l(`Flushing ${e.length} pending custom events`);for(const{eventName:t,properties:s}of e)try{await this.api.sendCustomEvent(this.sessionId,t,s,this.endUserId);}catch(e){o(\"Failed to flush pending custom event:\",e);}}async flushPendingLogs(){if(0===this.pendingLogs.length)return;const e=[...this.pendingLogs];this.pendingLogs=[],l(`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=[],l(`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();}),l(\"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 l(\"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,l(\"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};if(this.shouldSkipDueToMinimumDuration())return l(`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;l(\"Setting up page unload handler\"),window.addEventListener(\"visibilitychange\",()=>{\"hidden\"===document.visibilityState&&(l(\"Page hidden - sending pending events\"),this.flushEvents());});const e=\"onpagehide\"in window?\"pagehide\":\"beforeunload\";window.addEventListener(e,()=>{l(\"Page unloading - sending final events via sendBeacon\");const e=this.minimumDurationMilliseconds,t=this.getSessionDuration();if(null!==t&&t>=0&&t<e)return void l(`Session duration (${t}ms) below minimum (${e}ms), not sending on unload`);const s=[...this.eventQueue];if(P&&window.__hb_pending_snapshots){const e=window.__hb_pending_snapshots;Array.isArray(e)&&e.length>0&&(l(\"Including pending FullSnapshot(s) in sendBeacon for short session\"),s.unshift(...e),delete window.__hb_pending_snapshots);}if(s.length>0&&this.api)try{const e=this.propertyManager.getAutomaticProperties();this.api.sendBeaconEvents(s,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();});const t=()=>{localStorage.setItem(\"human_behavior_last_activity\",Date.now().toString());};window.addEventListener(\"click\",t),window.addEventListener(\"keydown\",t),window.addEventListener(\"scroll\",t),window.addEventListener(\"mousemove\",t);}viewLogs(){try{const e=i.getLogs();d(\"HumanBehavior Logs:\",e),i.clearLogs();}catch(e){o(\"Failed to read logs:\",e);}}async identifyUser({userProperties:e}){const t=this.endUserId;this.userProperties=e,l(\"Identifying user:\",{userProperties:e,originalEndUserId:t,sessionId:this.sessionId}),!P||this.propertyManager.getAutomaticProperties();const s=await this.api.sendUserData(t||\"\",e,this.sessionId);if(s.actualUserId||s.wasExistingUser){const e=s.actualUserId||t;if(e&&e!==t){const s=\"human_behavior_end_user_id\";if(this.setCookie(s,e,365),P)try{localStorage.setItem(s,e);}catch(e){l(\"Failed to set canonical endUserId in localStorage:\",e);}l(`🔗 Preexisting user detected. Future sessions will use canonical ID: ${e} (current session stays: ${t})`);}}return t||\"\"}getUserAttributes(){return {...this.userProperties}}async start(){if(!P)return;if(this.isStarted)return void l(\"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.enableConsoleTrackingFlag&&this.enableConsoleTracking(),this.enableNetworkTrackingFlag&&this.enableNetworkTracking(),this.enablePageLoadTracking();const t=()=>{if(this.recordInstance)return void l(\"🎯 Recording already started, skipping duplicate start\");l(\"🎯 DOM ready, starting session recording\"),this.rrwebRecord=record;const t=record({emit:e=>{this.addRecordingEvent(e),2===e.type&&l(`🎯 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(l(`🎯 DOM ready state: ${document.readyState}`),\"complete\"===document.readyState||\"interactive\"===document.readyState)l(`🎯 DOM ready (${document.readyState}), starting recording immediately`),t();else {l(\"🎯 DOM not ready, waiting for DOMContentLoaded event\");const e=()=>(\"interactive\"===document.readyState||\"complete\"===document.readyState)&&(l(`🎯 DOM ready (${document.readyState}), starting recording`),t(),true);if(e())return;document.addEventListener(\"DOMContentLoaded\",()=>{l(\"🎯 DOMContentLoaded fired, starting recording\"),t();},{once:true});const s=setInterval(()=>{e()&&clearInterval(s);},10);setTimeout(()=>clearInterval(s),5e3);}}takeFullSnapshot(){this.fullSnapshotTimeout&&clearTimeout(this.fullSnapshotTimeout),this.fullSnapshotTimeout=window.setTimeout(()=>{try{requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.takeFullSnapshot?(this.rrwebRecord.takeFullSnapshot(),l(\"✅ FullSnapshot taken for navigation (delayed for animations)\")):a(\"⚠️ takeFullSnapshot not available on record function\");});});}catch(e){o(\"❌ Failed to take FullSnapshot for navigation:\",e);}},1e3);}async stop(){await this.ensureInitialized(),P&&(this.flushInterval&&(clearInterval(this.flushInterval),this.flushInterval=null),this.recordInstance&&(this.recordInstance(),this.recordInstance=null),this.fullSnapshotTimeout&&(clearTimeout(this.fullSnapshotTimeout),this.fullSnapshotTimeout=null),this.rrwebRecord=null,this.disableConsoleTracking(),this.cleanupNavigationTracking());}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);l(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(),l(\"Queue is full, the oldest event is dropped.\")),this.eventQueue.push(e),2===e.type?(l(\"FullSnapshot added, triggering immediate flush\"),this.flushEvents()):this.eventQueue.length>=.8*this.MAX_QUEUE_SIZE&&(l(`Queue at ${this.eventQueue.length}/${this.MAX_QUEUE_SIZE}, triggering immediate flush`),this.flushEvents());}else l(\"⚠️ 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)&&(l(`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 l(`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){l(\"Flushing events:\",e);const t=e.filter(e=>2===e.type);t.length>0&&l(`[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?(l(\"✅ User activity detected, exiting idle state\"),this._isIdle=false,this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.takeFullSnapshot&&(this.rrwebRecord.takeFullSnapshot(),l(\"✅ 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&&(l(`⏸️ Session idle detected (${Math.round(e/1e3)}s since last activity) - stopping background event recording`),l(`ℹ️ Session will expire after 15 minutes of inactivity (${Math.round((9e5-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);l(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(),l(\"Queue is full, the oldest event is dropped.\")),this.eventQueue.push(e),2===e.type?(l(\"FullSnapshot added, triggering immediate flush\"),this.flushEvents()):true!==this._isIdle&&this.eventQueue.length>=.8*this.MAX_QUEUE_SIZE&&(l(`Queue at ${this.eventQueue.length}/${this.MAX_QUEUE_SIZE}, triggering immediate flush`),this.flushEvents());}}else l(\"⚠️ 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),l(`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 l(`Reusing windowId from previous page load: ${e}`),this._setWindowIdInStorage(e),this._setPrimaryWindowExists(true),e;{const e=v1();return l(`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),l(\"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),l(`Set cookie and localStorage: ${e}`);}catch(s){try{localStorage.setItem(e,t),l(`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 l(`Found cookie: ${e}`),s}}const i=localStorage.getItem(e);return i?(l(`Cookie not found, using localStorage: ${e}`),i):null}catch(t){try{const t=localStorage.getItem(e);if(t)return l(`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`,l(`Deleted cookie: ${e}`);}catch(t){o(`Failed to delete cookie: ${e}`,t);}try{localStorage.removeItem(e),l(`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),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),void l(`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>9e5||r>864e5){l(`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=9e5,n=864e5;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};{l(\"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),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,c=s-o.sessionStartTimestamp;if(a>i||c>n){l(`Session in localStorage expired: idle=${Math.round(a/1e3/60)}min, age=${Math.round(c/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),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 l(`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 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 D(e,t){const s=globalThis.__humanBehaviorGlobalTracker;return 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=R);\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 R(apiKey, ingestionUrl, options);\n};\n// For UMD builds, expose the class and init function globally\nif (typeof window !== 'undefined') {\n window.HumanBehaviorTracker = R;\n window.humanbehavior = { init };\n}\n\nexport { y as HumanBehaviorAPI, R as HumanBehaviorTracker, s as LogLevel, U as PropertyManager, v as RedactionManager, T as getAutomaticProperties, C as getCurrentPageProperties, I as getDeviceInfo, E as getInitialProperties, b as getLocationInfo, F as identifyUserGlobally, init, L as isGlobalTrackerAvailable, r as isSDKLogging, l as logDebug, o as logError, d as logInfo, a as logWarn, i as logger, D 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$2","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","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","childNodes","n2","parentNode","parentElement","textContent","contains","other","getRootNode","host","styleSheets","shadowRoot","querySelector","selectors","querySelectorAll","mutationObserver","constructor","isElement","nodeType","ELEMENT_NODE","isShadowRoot","hostEl","isNativeShadowDom","shadowRoot2","stringifyStylesheet","s2","rules2","rules","cssRules","stringifiedRules","Array","from","rule2","stringifyRule","href","join","cssText","replace","error","sheetHref","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","_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","name","pos","collectCharacters","regEx","chars2","exec","substring","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","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName$1","attributes","len","i2","attr","stylesheet","find","rel","_cssText","sheet","innerText","checked","selected","open","rr_open_mode","__context","canvas","ctx","getContext","x2","width","y","height","getImageData","originalGetImageData","Uint32Array","Math","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","isStyle","isScript","nextSibling","previousSibling","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","sn","comment","script","as","headFavicon","headMetaDescKeywords","headMetaSocial","property","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","assign","recordChild","shadowRootEl","isShadowHost","headWhitespace","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","k","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","source","file","plugin22","super","reason","plugin","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","start","max","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","j","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","original","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","childNodes2","childIterator","firstChild","ownerDocument","_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","patch","replacement","wrapped","defineProperties","__rrweb_original__","receiver","nowTimestamp","getWindowScroll","_c","_d","scrollingElement","pageXOffset","documentElement","top","pageYOffset","getWindowHeight","innerHeight","clientHeight","getWindowWidth","innerWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","headTitleMutations","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","isNodeInLinkedList","DoubleLinkedList","head","addNode","__ln","tail","removeNode","moveKey","parentId","MutationBuffer","Set","mutations","processMutation","emit","frozen","locked","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","mapRemoves","movedSet","isParentRemoved","removes","addedSet","isAncestorInSet","droppedSet","candidate","tailNode","unhandledNode","payload","texts","genTextAreaValueMutation","attribute","style","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","attributeMap","movedMap","mutationCb","textarea","item","cn","m","oldValue","attributeName","unattachedDoc","implementation","createHTMLDocument","old","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","processedNodeManager","inOtherBuffer","targetId","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","r2","_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","ownerNode","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","_linkEl","ProcessedNodeManager","thisBuffer","buffers","nodeMap","active","destroy","takeFullSnapshot$1","recording","cleanFrame","debug","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","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","l","c","_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","floor","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","sendBeaconEvents","sendCustomEvent","eventProperties","errorText","sendCustomEventBatch","sendLog","sendNetworkError","errorType","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","I","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","current_url","hash","title","referrer_domain","initial_referrer","initial_referrer_domain","initial_host","T","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","E","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","R","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","_sessionActivityTimestamp","_sessionStartTimestamp","isProcessing","flushInterval","FLUSH_INTERVAL_MS","initialized","initializationPromise","originalConsole","consoleTrackingEnabled","originalFetch","networkTrackingEnabled","enableConsoleTrackingFlag","enableNetworkTrackingFlag","navigationTrackingEnabled","currentUrl","previousUrl","originalPushState","originalReplaceState","navigationListeners","_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","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","eventType","navigationType","customEvent","checkAndRefreshSession","shouldSkipDueToMinimumDuration","properties","flushPendingCustomEvents","trackButtons","trackLinks","trackForms","includeText","includeClasses","setupAutomaticButtonTracking","setupAutomaticFormTracking","setupRageClickDetection","buttonId","buttonType","page","buttonText","buttonClass","isRageClick","clickCount","elementId","elementClass","elementText","abs","isInteractiveElement","onclick","getComputedStyle","cursor","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","visibilityState","flushEvents","getSessionDuration","__hb_pending_snapshots","viewLogs","originalEndUserId","actualUserId","wasExistingUser","getUserAttributes","addRecordingEvent","HTMLElement","once","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","createQueuingImplementation","queueEvent","logWarn","useHumanBehavior","tracker","useContext","HumanBehaviorPageView","useEffect","handleRouteChange","client","humanBehavior","setHumanBehavior","useState","setEventQueue","isMounted","setIsMounted","setIsInitialized","apiKeyRef","useRef","clientRef","eventQueueRef","useCallback","currentQueue","logDebug","logError","contextValue","useMemo","_jsxs","Provider","_jsx","_Fragment"],"mappings":"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"}