@redvars/peacock 3.8.2 → 3.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/components.css.map +1 -1
- package/dist/assets/styles.css.map +1 -1
- package/dist/babel-DBsfpl3B.js +18 -0
- package/dist/babel-DBsfpl3B.js.map +1 -0
- package/dist/button-group.js +4 -4
- package/dist/button-group.js.map +1 -1
- package/dist/button.js +5 -5
- package/dist/card.js +22 -7
- package/dist/card.js.map +1 -1
- package/dist/code-highlighter.js +74 -11212
- package/dist/code-highlighter.js.map +1 -1
- package/dist/color-picker.js +701 -0
- package/dist/color-picker.js.map +1 -0
- package/dist/custom-elements-jsdocs.json +96 -3
- package/dist/custom-elements.json +1202 -576
- package/dist/estree-C2LDzX4U.js +47 -0
- package/dist/estree-C2LDzX4U.js.map +1 -0
- package/dist/fab.js +1 -3
- package/dist/fab.js.map +1 -1
- package/dist/html-D22sQuVy.js +27 -0
- package/dist/html-D22sQuVy.js.map +1 -0
- package/dist/icon-button.js +5 -5
- package/dist/index-_g_oLekF.js +14095 -0
- package/dist/index-_g_oLekF.js.map +1 -0
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/item.js +3 -2
- package/dist/item.js.map +1 -1
- package/dist/{list-D6JLh1uh.js → list-H0itjRte.js} +194 -20
- package/dist/list-H0itjRte.js.map +1 -0
- package/dist/list.js +2 -2
- package/dist/loader.js +6 -2
- package/dist/loader.js.map +1 -1
- package/dist/menu-item.js +103 -33
- package/dist/menu-item.js.map +1 -1
- package/dist/menu.js +4 -18
- package/dist/menu.js.map +1 -1
- package/dist/navigation-rail-item.js +21 -6
- package/dist/navigation-rail-item.js.map +1 -1
- package/dist/navigation-rail.js +22 -20
- package/dist/navigation-rail.js.map +1 -1
- package/dist/pierre-dark-DFWl0m-C.js +4 -0
- package/dist/pierre-dark-DFWl0m-C.js.map +1 -0
- package/dist/pierre-light-BEkAPImt.js +4 -0
- package/dist/pierre-light-BEkAPImt.js.map +1 -0
- package/dist/postcss-BhbitHaI.js +64 -0
- package/dist/postcss-BhbitHaI.js.map +1 -0
- package/dist/{select-Dwtk0RIU.js → select-CspawZ18.js} +13 -6
- package/dist/{select-Dwtk0RIU.js.map → select-CspawZ18.js.map} +1 -1
- package/dist/side-sheet.js +1 -1
- package/dist/side-sheet.js.map +1 -1
- package/dist/src/button/button-group/button-group.d.ts +4 -4
- package/dist/src/code-highlighter/code-highlighter.d.ts +2 -2
- package/dist/src/color-picker/color-picker.d.ts +85 -0
- package/dist/src/color-picker/index.d.ts +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/item/item.d.ts +0 -1
- package/dist/src/list/list-item.d.ts +3 -1
- package/dist/src/list/list.d.ts +24 -0
- package/dist/src/menu/menu-item/menu-item.d.ts +1 -2
- package/dist/standalone-Ccq0tWwA.js +32 -0
- package/dist/standalone-Ccq0tWwA.js.map +1 -0
- package/dist/sub-menu.js +6 -1
- package/dist/sub-menu.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/readme.md +3 -3
- package/scss/mixin.scss +1 -0
- package/src/button/button/button-base.scss +2 -1
- package/src/button/button/button-layers.scss +2 -6
- package/src/button/button-group/button-group.ts +4 -4
- package/src/button/fab/fab.ts +0 -4
- package/src/card/card.scss +18 -5
- package/src/code-highlighter/code-highlighter.ts +94 -39
- package/src/color-picker/color-picker.scss +217 -0
- package/src/color-picker/color-picker.ts +478 -0
- package/src/color-picker/index.ts +1 -0
- package/src/index.ts +1 -0
- package/src/item/item.scss +3 -1
- package/src/item/item.ts +0 -1
- package/src/list/list-item.scss +5 -1
- package/src/list/list-item.ts +40 -14
- package/src/list/list.ts +164 -2
- package/src/loader.ts +4 -0
- package/src/menu/menu/menu.scss +4 -18
- package/src/menu/menu/menu.ts +0 -1
- package/src/menu/menu-item/menu-item.scss +73 -43
- package/src/menu/menu-item/menu-item.ts +60 -27
- package/src/menu/sub-menu/sub-menu.scss +5 -1
- package/src/navigation-rail/navigation-rail-item.scss +25 -8
- package/src/navigation-rail/navigation-rail.scss +25 -22
- package/src/side-sheet/side-sheet.ts +1 -1
- package/src/sidebar-menu/sidebar-menu-item.scss +12 -6
- package/dist/list-D6JLh1uh.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-_g_oLekF.js","sources":["../node_modules/@shikijs/types/dist/index.mjs","../node_modules/@shikijs/vscode-textmate/dist/index.js","../node_modules/html-void-elements/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/index.js","../node_modules/zwitch/index.js","../node_modules/stringify-entities/lib/core.js","../node_modules/stringify-entities/lib/util/to-hexadecimal.js","../node_modules/stringify-entities/lib/util/to-decimal.js","../node_modules/character-entities-legacy/index.js","../node_modules/character-entities-html4/index.js","../node_modules/stringify-entities/lib/constant/dangerous.js","../node_modules/stringify-entities/lib/util/to-named.js","../node_modules/stringify-entities/lib/util/format-smart.js","../node_modules/stringify-entities/lib/index.js","../node_modules/hast-util-to-html/lib/handle/comment.js","../node_modules/hast-util-to-html/lib/handle/doctype.js","../node_modules/ccount/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/hast-util-to-html/lib/omission/util/siblings.js","../node_modules/hast-util-to-html/lib/omission/omission.js","../node_modules/hast-util-to-html/lib/omission/closing.js","../node_modules/hast-util-to-html/lib/omission/opening.js","../node_modules/hast-util-to-html/lib/handle/element.js","../node_modules/hast-util-to-html/lib/handle/text.js","../node_modules/hast-util-to-html/lib/handle/raw.js","../node_modules/hast-util-to-html/lib/handle/root.js","../node_modules/hast-util-to-html/lib/handle/index.js","../node_modules/hast-util-to-html/lib/index.js","../node_modules/@shikijs/core/dist/index.mjs","../node_modules/shiki/dist/langs.mjs","../node_modules/shiki/dist/themes.mjs","../node_modules/@shikijs/engine-oniguruma/dist/index.mjs","../node_modules/shiki/dist/bundle-full.mjs","../node_modules/oniguruma-parser/dist/utils.js","../node_modules/oniguruma-parser/dist/tokenizer/tokenize.js","../node_modules/oniguruma-parser/dist/parser/node-utils.js","../node_modules/oniguruma-parser/dist/parser/parse.js","../node_modules/oniguruma-parser/dist/traverser/traverse.js","../node_modules/regex/src/utils-internals.js","../node_modules/regex-utilities/src/index.js","../node_modules/regex/src/atomic.js","../node_modules/regex-recursion/src/index.js","../node_modules/oniguruma-to-es/dist/esm/index.js","../node_modules/@shikijs/engine-javascript/dist/shared/engine-javascript.hzpS1_41.mjs","../node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs"],"sourcesContent":["class ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ShikiError\";\n }\n}\n\nexport { ShikiError };\n","// src/utils.ts\nfunction clone(something) {\n return doClone(something);\n}\nfunction doClone(something) {\n if (Array.isArray(something)) {\n return cloneArray(something);\n }\n if (something instanceof RegExp) {\n return something;\n }\n if (typeof something === \"object\") {\n return cloneObj(something);\n }\n return something;\n}\nfunction cloneArray(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = doClone(arr[i]);\n }\n return r;\n}\nfunction cloneObj(obj) {\n let r = {};\n for (let key in obj) {\n r[key] = doClone(obj[key]);\n }\n return r;\n}\nfunction mergeObjects(target, ...sources) {\n sources.forEach((source) => {\n for (let key in source) {\n target[key] = source[key];\n }\n });\n return target;\n}\nfunction basename(path) {\n const idx = ~path.lastIndexOf(\"/\") || ~path.lastIndexOf(\"\\\\\");\n if (idx === 0) {\n return path;\n } else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n } else {\n return path.substr(~idx + 1);\n }\n}\nvar CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nvar RegexSource = class {\n static hasCaptures(regexSource) {\n if (regexSource === null) {\n return false;\n }\n CAPTURING_REGEX_SOURCE.lastIndex = 0;\n return CAPTURING_REGEX_SOURCE.test(regexSource);\n }\n static replaceCaptures(regexSource, captureSource, captureIndices) {\n return regexSource.replace(CAPTURING_REGEX_SOURCE, (match, index, commandIndex, command) => {\n let capture = captureIndices[parseInt(index || commandIndex, 10)];\n if (capture) {\n let result = captureSource.substring(capture.start, capture.end);\n while (result[0] === \".\") {\n result = result.substring(1);\n }\n switch (command) {\n case \"downcase\":\n return result.toLowerCase();\n case \"upcase\":\n return result.toUpperCase();\n default:\n return result;\n }\n } else {\n return match;\n }\n });\n }\n};\nfunction strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nfunction strArrCmp(a, b) {\n if (a === null && b === null) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n let len1 = a.length;\n let len2 = b.length;\n if (len1 === len2) {\n for (let i = 0; i < len1; i++) {\n let res = strcmp(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n }\n return len1 - len2;\n}\nfunction isValidHexColor(hex) {\n if (/^#[0-9a-f]{6}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n return true;\n }\n return false;\n}\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, \"\\\\$&\");\n}\nvar CachedFn = class {\n constructor(fn) {\n this.fn = fn;\n }\n cache = /* @__PURE__ */ new Map();\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const value = this.fn(key);\n this.cache.set(key, value);\n return value;\n }\n};\n\n// src/theme.ts\nvar Theme = class {\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\n }\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n _cachedMatchRoot = new CachedFn(\n (scopeName) => this._root.match(scopeName)\n );\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n getDefaults() {\n return this._defaults;\n }\n match(scopePath) {\n if (scopePath === null) {\n return this._defaults;\n }\n const scopeName = scopePath.scopeName;\n const matchingTrieElements = this._cachedMatchRoot.get(scopeName);\n const effectiveRule = matchingTrieElements.find(\n (v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes)\n );\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(\n effectiveRule.fontStyle,\n effectiveRule.foreground,\n effectiveRule.background\n );\n }\n};\nvar ScopeStack = class _ScopeStack {\n constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\n }\n static push(path, scopeNames) {\n for (const name of scopeNames) {\n path = new _ScopeStack(path, name);\n }\n return path;\n }\n static from(...segments) {\n let result = null;\n for (let i = 0; i < segments.length; i++) {\n result = new _ScopeStack(result, segments[i]);\n }\n return result;\n }\n push(scopeName) {\n return new _ScopeStack(this, scopeName);\n }\n getSegments() {\n let item = this;\n const result = [];\n while (item) {\n result.push(item.scopeName);\n item = item.parent;\n }\n result.reverse();\n return result;\n }\n toString() {\n return this.getSegments().join(\" \");\n }\n extends(other) {\n if (this === other) {\n return true;\n }\n if (this.parent === null) {\n return false;\n }\n return this.parent.extends(other);\n }\n getExtensionIfDefined(base) {\n const result = [];\n let item = this;\n while (item && item !== base) {\n result.push(item.scopeName);\n item = item.parent;\n }\n return item === base ? result.reverse() : void 0;\n }\n};\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes.length === 0) {\n return true;\n }\n for (let index = 0; index < parentScopes.length; index++) {\n let scopePattern = parentScopes[index];\n let scopeMustMatch = false;\n if (scopePattern === \">\") {\n if (index === parentScopes.length - 1) {\n return false;\n }\n scopePattern = parentScopes[++index];\n scopeMustMatch = true;\n }\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n break;\n }\n if (scopeMustMatch) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n if (!scopePath) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n return true;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === \".\";\n}\nvar StyleAttributes = class {\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n};\nfunction parseTheme(source) {\n if (!source) {\n return [];\n }\n if (!source.settings || !Array.isArray(source.settings)) {\n return [];\n }\n let settings = source.settings;\n let result = [], resultLen = 0;\n for (let i = 0, len = settings.length; i < len; i++) {\n let entry = settings[i];\n if (!entry.settings) {\n continue;\n }\n let scopes;\n if (typeof entry.scope === \"string\") {\n let _scope = entry.scope;\n _scope = _scope.replace(/^[,]+/, \"\");\n _scope = _scope.replace(/[,]+$/, \"\");\n scopes = _scope.split(\",\");\n } else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n } else {\n scopes = [\"\"];\n }\n let fontStyle = -1 /* NotSet */;\n if (typeof entry.settings.fontStyle === \"string\") {\n fontStyle = 0 /* None */;\n let segments = entry.settings.fontStyle.split(\" \");\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n let segment = segments[j];\n switch (segment) {\n case \"italic\":\n fontStyle = fontStyle | 1 /* Italic */;\n break;\n case \"bold\":\n fontStyle = fontStyle | 2 /* Bold */;\n break;\n case \"underline\":\n fontStyle = fontStyle | 4 /* Underline */;\n break;\n case \"strikethrough\":\n fontStyle = fontStyle | 8 /* Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.settings.foreground === \"string\" && isValidHexColor(entry.settings.foreground)) {\n foreground = entry.settings.foreground;\n }\n let background = null;\n if (typeof entry.settings.background === \"string\" && isValidHexColor(entry.settings.background)) {\n background = entry.settings.background;\n }\n for (let j = 0, lenJ = scopes.length; j < lenJ; j++) {\n let _scope = scopes[j].trim();\n let segments = _scope.split(\" \");\n let scope = segments[segments.length - 1];\n let parentScopes = null;\n if (segments.length > 1) {\n parentScopes = segments.slice(0, segments.length - 1);\n parentScopes.reverse();\n }\n result[resultLen++] = new ParsedThemeRule(\n scope,\n parentScopes,\n i,\n fontStyle,\n foreground,\n background\n );\n }\n }\n return result;\n}\nvar ParsedThemeRule = class {\n constructor(scope, parentScopes, index, fontStyle, foreground, background) {\n this.scope = scope;\n this.parentScopes = parentScopes;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n};\nvar FontStyle = /* @__PURE__ */ ((FontStyle2) => {\n FontStyle2[FontStyle2[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle2[FontStyle2[\"None\"] = 0] = \"None\";\n FontStyle2[FontStyle2[\"Italic\"] = 1] = \"Italic\";\n FontStyle2[FontStyle2[\"Bold\"] = 2] = \"Bold\";\n FontStyle2[FontStyle2[\"Underline\"] = 4] = \"Underline\";\n FontStyle2[FontStyle2[\"Strikethrough\"] = 8] = \"Strikethrough\";\n return FontStyle2;\n})(FontStyle || {});\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n parsedThemeRules.sort((a, b) => {\n let r = strcmp(a.scope, b.scope);\n if (r !== 0) {\n return r;\n }\n r = strArrCmp(a.parentScopes, b.parentScopes);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n let defaultFontStyle = 0 /* None */;\n let defaultForeground = \"#000000\";\n let defaultBackground = \"#ffffff\";\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === \"\") {\n let incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n let colorMap = new ColorMap(_colorMap);\n let defaults = new StyleAttributes(defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));\n let root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1 /* NotSet */, 0, 0), []);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n let rule = parsedThemeRules[i];\n root.insert(0, rule.scope, rule.parentScopes, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new Theme(colorMap, defaults, root);\n}\nvar ColorMap = class {\n _isFrozen;\n _lastColorId;\n _id2color;\n _color2id;\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = /* @__PURE__ */ Object.create(null);\n if (Array.isArray(_colorMap)) {\n this._isFrozen = true;\n for (let i = 0, len = _colorMap.length; i < len; i++) {\n this._color2id[_colorMap[i]] = i;\n this._id2color[i] = _colorMap[i];\n }\n } else {\n this._isFrozen = false;\n }\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n color = color.toUpperCase();\n let value = this._color2id[color];\n if (value) {\n return value;\n }\n if (this._isFrozen) {\n throw new Error(`Missing color in color map - ${color}`);\n }\n value = ++this._lastColorId;\n this._color2id[color] = value;\n this._id2color[value] = color;\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n};\nvar emptyParentScopes = Object.freeze([]);\nvar ThemeTrieElementRule = class _ThemeTrieElementRule {\n scopeDepth;\n parentScopes;\n fontStyle;\n foreground;\n background;\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes || emptyParentScopes;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n clone() {\n return new _ThemeTrieElementRule(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }\n static cloneArr(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = arr[i].clone();\n }\n return r;\n }\n acceptOverwrite(scopeDepth, fontStyle, foreground, background) {\n if (this.scopeDepth > scopeDepth) {\n console.log(\"how did this happen?\");\n } else {\n this.scopeDepth = scopeDepth;\n }\n if (fontStyle !== -1 /* NotSet */) {\n this.fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n this.foreground = foreground;\n }\n if (background !== 0) {\n this.background = background;\n }\n }\n};\nvar ThemeTrieElement = class _ThemeTrieElement {\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n _rulesWithParentScopes;\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth !== b.scopeDepth) {\n return b.scopeDepth - a.scopeDepth;\n }\n let aParentIndex = 0;\n let bParentIndex = 0;\n while (true) {\n if (a.parentScopes[aParentIndex] === \">\") {\n aParentIndex++;\n }\n if (b.parentScopes[bParentIndex] === \">\") {\n bParentIndex++;\n }\n if (aParentIndex >= a.parentScopes.length || bParentIndex >= b.parentScopes.length) {\n break;\n }\n const parentScopeLengthDiff = b.parentScopes[bParentIndex].length - a.parentScopes[aParentIndex].length;\n if (parentScopeLengthDiff !== 0) {\n return parentScopeLengthDiff;\n }\n aParentIndex++;\n bParentIndex++;\n }\n return b.parentScopes.length - a.parentScopes.length;\n }\n match(scope) {\n if (scope !== \"\") {\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n if (this._children.hasOwnProperty(head)) {\n return this._children[head].match(tail);\n }\n }\n const rules = this._rulesWithParentScopes.concat(this._mainRule);\n rules.sort(_ThemeTrieElement._cmpBySpecificity);\n return rules;\n }\n insert(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {\n if (scope === \"\") {\n this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);\n return;\n }\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n let child;\n if (this._children.hasOwnProperty(head)) {\n child = this._children[head];\n } else {\n child = new _ThemeTrieElement(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));\n this._children[head] = child;\n }\n child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);\n }\n _doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background) {\n if (parentScopes === null) {\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n for (let i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {\n let rule = this._rulesWithParentScopes[i];\n if (strArrCmp(rule.parentScopes, parentScopes) === 0) {\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n if (fontStyle === -1 /* NotSet */) {\n fontStyle = this._mainRule.fontStyle;\n }\n if (foreground === 0) {\n foreground = this._mainRule.foreground;\n }\n if (background === 0) {\n background = this._mainRule.background;\n }\n this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));\n }\n};\n\n// src/encodedTokenAttributes.ts\nvar EncodedTokenMetadata = class _EncodedTokenMetadata {\n static toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n static print(encodedTokenAttributes) {\n const languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n const tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n const fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n const foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n const background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n console.log({\n languageId,\n tokenType,\n fontStyle,\n foreground,\n background\n });\n }\n static getLanguageId(encodedTokenAttributes) {\n return (encodedTokenAttributes & 255 /* LANGUAGEID_MASK */) >>> 0 /* LANGUAGEID_OFFSET */;\n }\n static getTokenType(encodedTokenAttributes) {\n return (encodedTokenAttributes & 768 /* TOKEN_TYPE_MASK */) >>> 8 /* TOKEN_TYPE_OFFSET */;\n }\n static containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* BALANCED_BRACKETS_MASK */) !== 0;\n }\n static getFontStyle(encodedTokenAttributes) {\n return (encodedTokenAttributes & 30720 /* FONT_STYLE_MASK */) >>> 11 /* FONT_STYLE_OFFSET */;\n }\n static getForeground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 16744448 /* FOREGROUND_MASK */) >>> 15 /* FOREGROUND_OFFSET */;\n }\n static getBackground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 4278190080 /* BACKGROUND_MASK */) >>> 24 /* BACKGROUND_OFFSET */;\n }\n /**\n * Updates the fields in `metadata`.\n * A value of `0`, `NotSet` or `null` indicates that the corresponding field should be left as is.\n */\n static set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n let _tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = _EncodedTokenMetadata.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n let _foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n let _background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* NotSet */) {\n _fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n _foreground = foreground;\n }\n if (background !== 0) {\n _background = background;\n }\n return (_languageId << 0 /* LANGUAGEID_OFFSET */ | _tokenType << 8 /* TOKEN_TYPE_OFFSET */ | _containsBalancedBracketsBit << 10 /* BALANCED_BRACKETS_OFFSET */ | _fontStyle << 11 /* FONT_STYLE_OFFSET */ | _foreground << 15 /* FOREGROUND_OFFSET */ | _background << 24 /* BACKGROUND_OFFSET */) >>> 0;\n }\n};\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n// src/matcher.ts\nfunction createMatchers(selector, matchesName) {\n const results = [];\n const tokenizer = newTokenizer(selector);\n let token = tokenizer.next();\n while (token !== null) {\n let priority = 0;\n if (token.length === 2 && token.charAt(1) === \":\") {\n switch (token.charAt(0)) {\n case \"R\":\n priority = 1;\n break;\n case \"L\":\n priority = -1;\n break;\n default:\n console.log(`Unknown priority ${token} in scope selector`);\n }\n token = tokenizer.next();\n }\n let matcher = parseConjunction();\n results.push({ matcher, priority });\n if (token !== \",\") {\n break;\n }\n token = tokenizer.next();\n }\n return results;\n function parseOperand() {\n if (token === \"-\") {\n token = tokenizer.next();\n const expressionToNegate = parseOperand();\n return (matcherInput) => !!expressionToNegate && !expressionToNegate(matcherInput);\n }\n if (token === \"(\") {\n token = tokenizer.next();\n const expressionInParents = parseInnerExpression();\n if (token === \")\") {\n token = tokenizer.next();\n }\n return expressionInParents;\n }\n if (isIdentifier(token)) {\n const identifiers = [];\n do {\n identifiers.push(token);\n token = tokenizer.next();\n } while (isIdentifier(token));\n return (matcherInput) => matchesName(identifiers, matcherInput);\n }\n return null;\n }\n function parseConjunction() {\n const matchers = [];\n let matcher = parseOperand();\n while (matcher) {\n matchers.push(matcher);\n matcher = parseOperand();\n }\n return (matcherInput) => matchers.every((matcher2) => matcher2(matcherInput));\n }\n function parseInnerExpression() {\n const matchers = [];\n let matcher = parseConjunction();\n while (matcher) {\n matchers.push(matcher);\n if (token === \"|\" || token === \",\") {\n do {\n token = tokenizer.next();\n } while (token === \"|\" || token === \",\");\n } else {\n break;\n }\n matcher = parseConjunction();\n }\n return (matcherInput) => matchers.some((matcher2) => matcher2(matcherInput));\n }\n}\nfunction isIdentifier(token) {\n return !!token && !!token.match(/[\\w\\.:]+/);\n}\nfunction newTokenizer(input) {\n let regex = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g;\n let match = regex.exec(input);\n return {\n next: () => {\n if (!match) {\n return null;\n }\n const res = match[0];\n match = regex.exec(input);\n return res;\n }\n };\n}\n\n// src/onigLib.ts\nvar FindOption = /* @__PURE__ */ ((FindOption2) => {\n FindOption2[FindOption2[\"None\"] = 0] = \"None\";\n FindOption2[FindOption2[\"NotBeginString\"] = 1] = \"NotBeginString\";\n FindOption2[FindOption2[\"NotEndString\"] = 2] = \"NotEndString\";\n FindOption2[FindOption2[\"NotBeginPosition\"] = 4] = \"NotBeginPosition\";\n FindOption2[FindOption2[\"DebugCall\"] = 8] = \"DebugCall\";\n return FindOption2;\n})(FindOption || {});\nfunction disposeOnigString(str) {\n if (typeof str.dispose === \"function\") {\n str.dispose();\n }\n}\n\n// src/grammar/grammarDependencies.ts\nvar TopLevelRuleReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n};\nvar TopLevelRepositoryRuleReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n};\nvar ExternalReferenceCollector = class {\n _references = [];\n _seenReferenceKeys = /* @__PURE__ */ new Set();\n get references() {\n return this._references;\n }\n visitedRule = /* @__PURE__ */ new Set();\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n};\nvar ScopeDependencyProcessor = class {\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n seenFullScopeRequests = /* @__PURE__ */ new Set();\n seenPartialScopeRequests = /* @__PURE__ */ new Set();\n Q;\n processQueue() {\n const q = this.Q;\n this.Q = [];\n const deps = new ExternalReferenceCollector();\n for (const dep of q) {\n collectReferencesOfReference(dep, this.initialScopeName, this.repo, deps);\n }\n for (const dep of deps.references) {\n if (dep instanceof TopLevelRuleReference) {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n } else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n continue;\n }\n this.seenPartialScopeRequests.add(dep.toKey());\n this.Q.push(dep);\n }\n }\n }\n};\nfunction collectReferencesOfReference(reference, baseGrammarScopeName, repo, result) {\n const selfGrammar = repo.lookup(reference.scopeName);\n if (!selfGrammar) {\n if (reference.scopeName === baseGrammarScopeName) {\n throw new Error(`No grammar provided for <${baseGrammarScopeName}>`);\n }\n return;\n }\n const baseGrammar = repo.lookup(baseGrammarScopeName);\n if (reference instanceof TopLevelRuleReference) {\n collectExternalReferencesInTopLevelRule({ baseGrammar, selfGrammar }, result);\n } else {\n collectExternalReferencesInTopLevelRepositoryRule(\n reference.ruleName,\n { baseGrammar, selfGrammar, repository: selfGrammar.repository },\n result\n );\n }\n const injections = repo.injections(reference.scopeName);\n if (injections) {\n for (const injection of injections) {\n result.add(new TopLevelRuleReference(injection));\n }\n }\n}\nfunction collectExternalReferencesInTopLevelRepositoryRule(ruleName, context, result) {\n if (context.repository && context.repository[ruleName]) {\n const rule = context.repository[ruleName];\n collectExternalReferencesInRules([rule], context, result);\n }\n}\nfunction collectExternalReferencesInTopLevelRule(context, result) {\n if (context.selfGrammar.patterns && Array.isArray(context.selfGrammar.patterns)) {\n collectExternalReferencesInRules(\n context.selfGrammar.patterns,\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(\n Object.values(context.selfGrammar.injections),\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n}\nfunction collectExternalReferencesInRules(rules, context, result) {\n for (const rule of rules) {\n if (result.visitedRule.has(rule)) {\n continue;\n }\n result.visitedRule.add(rule);\n const patternRepository = rule.repository ? mergeObjects({}, context.repository, rule.repository) : context.repository;\n if (Array.isArray(rule.patterns)) {\n collectExternalReferencesInRules(rule.patterns, { ...context, repository: patternRepository }, result);\n }\n const include = rule.include;\n if (!include) {\n continue;\n }\n const reference = parseInclude(include);\n switch (reference.kind) {\n case 0 /* Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName ? context.selfGrammar : reference.scopeName === context.baseGrammar.scopeName ? context.baseGrammar : void 0;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n } else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n } else {\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n } else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nvar BaseReference = class {\n kind = 0 /* Base */;\n};\nvar SelfReference = class {\n kind = 1 /* Self */;\n};\nvar RelativeReference = class {\n constructor(ruleName) {\n this.ruleName = ruleName;\n }\n kind = 2 /* RelativeReference */;\n};\nvar TopLevelReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n kind = 3 /* TopLevelReference */;\n};\nvar TopLevelRepositoryReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n kind = 4 /* TopLevelRepositoryReference */;\n};\nfunction parseInclude(include) {\n if (include === \"$base\") {\n return new BaseReference();\n } else if (include === \"$self\") {\n return new SelfReference();\n }\n const indexOfSharp = include.indexOf(\"#\");\n if (indexOfSharp === -1) {\n return new TopLevelReference(include);\n } else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n } else {\n const scopeName = include.substring(0, indexOfSharp);\n const ruleName = include.substring(indexOfSharp + 1);\n return new TopLevelRepositoryReference(scopeName, ruleName);\n }\n}\n\n// src/rule.ts\nvar HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nvar BACK_REFERENCING_END = /\\\\(\\d+)/g;\nvar ruleIdSymbol = Symbol(\"RuleId\");\nvar endRuleId = -1;\nvar whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nvar Rule = class {\n $location;\n id;\n _nameIsCapturing;\n _name;\n _contentNameIsCapturing;\n _contentName;\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : \"unknown\";\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n};\nvar CaptureRule = class extends Rule {\n retokenizeCapturedWithRuleId;\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n }\n collectPatterns(grammar, out) {\n throw new Error(\"Not supported!\");\n }\n compile(grammar, endRegexSource) {\n throw new Error(\"Not supported!\");\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n throw new Error(\"Not supported!\");\n }\n};\nvar MatchRule = class extends Rule {\n _match;\n captures;\n _cachedCompiledPatterns;\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar IncludeOnlyRule = class extends Rule {\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginEndRule = class extends Rule {\n _begin;\n beginCaptures;\n _end;\n endHasBackReferences;\n endCaptures;\n applyEndPatternLast;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : \"\\uFFFF\", -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n } else {\n this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n }\n if (this._end.hasBackReferences) {\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length() - 1, endRegexSource);\n } else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginWhileRule = class extends Rule {\n _begin;\n beginCaptures;\n whileCaptures;\n _while;\n whileHasBackReferences;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n _cachedCompiledWhilePatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : \"\\uFFFF\");\n }\n return this._cachedCompiledWhilePatterns;\n }\n};\nvar RuleFactory = class _RuleFactory {\n static createCaptureRule(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {\n return helper.registerRule((id) => {\n return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);\n });\n }\n static getCompiledRuleId(desc, helper, repository) {\n if (!desc.id) {\n helper.registerRule((id) => {\n desc.id = id;\n if (desc.match) {\n return new MatchRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.match,\n _RuleFactory._compileCaptures(desc.captures, helper, repository)\n );\n }\n if (typeof desc.begin === \"undefined\") {\n if (desc.repository) {\n repository = mergeObjects({}, repository, desc.repository);\n }\n let patterns = desc.patterns;\n if (typeof patterns === \"undefined\" && desc.include) {\n patterns = [{ include: desc.include }];\n }\n return new IncludeOnlyRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n _RuleFactory._compilePatterns(patterns, helper, repository)\n );\n }\n if (desc.while) {\n return new BeginWhileRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.while,\n _RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository),\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n }\n return new BeginEndRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.end,\n _RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository),\n desc.applyEndPatternLast,\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n let maximumCaptureId = 0;\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n if (numericCaptureId > maximumCaptureId) {\n maximumCaptureId = numericCaptureId;\n }\n }\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n let retokenizeCapturedWithRuleId = 0;\n if (captures[captureId].patterns) {\n retokenizeCapturedWithRuleId = _RuleFactory.getCompiledRuleId(captures[captureId], helper, repository);\n }\n r[numericCaptureId] = _RuleFactory.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);\n }\n }\n return r;\n }\n static _compilePatterns(patterns, helper, repository) {\n let r = [];\n if (patterns) {\n for (let i = 0, len = patterns.length; i < len; i++) {\n const pattern = patterns[i];\n let ruleId = -1;\n if (pattern.include) {\n const reference = parseInclude(pattern.include);\n switch (reference.kind) {\n case 0 /* Base */:\n case 1 /* Self */:\n ruleId = _RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* RelativeReference */:\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n } else {\n }\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* TopLevelRepositoryReference */ ? reference.ruleName : null;\n const externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);\n if (externalGrammar) {\n if (externalGrammarInclude) {\n let externalIncludedRule = externalGrammar.repository[externalGrammarInclude];\n if (externalIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);\n } else {\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n } else {\n }\n break;\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(pattern, helper, repository);\n }\n if (ruleId !== -1) {\n const rule = helper.getRule(ruleId);\n let skipRule = false;\n if (rule instanceof IncludeOnlyRule || rule instanceof BeginEndRule || rule instanceof BeginWhileRule) {\n if (rule.hasMissingPatterns && rule.patterns.length === 0) {\n skipRule = true;\n }\n }\n if (skipRule) {\n continue;\n }\n r.push(ruleId);\n }\n }\n }\n return {\n patterns: r,\n hasMissingPatterns: (patterns ? patterns.length : 0) !== r.length\n };\n }\n};\nvar RegExpSource = class _RegExpSource {\n source;\n ruleId;\n hasAnchor;\n hasBackReferences;\n _anchorCache;\n constructor(regExpSource, ruleId) {\n if (regExpSource && typeof regExpSource === \"string\") {\n const len = regExpSource.length;\n let lastPushedPos = 0;\n let output = [];\n let hasAnchor = false;\n for (let pos = 0; pos < len; pos++) {\n const ch = regExpSource.charAt(pos);\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n const nextCh = regExpSource.charAt(pos + 1);\n if (nextCh === \"z\") {\n output.push(regExpSource.substring(lastPushedPos, pos));\n output.push(\"$(?!\\\\n)(?<!\\\\n)\");\n lastPushedPos = pos + 2;\n } else if (nextCh === \"A\" || nextCh === \"G\") {\n hasAnchor = true;\n }\n pos++;\n }\n }\n }\n this.hasAnchor = hasAnchor;\n if (lastPushedPos === 0) {\n this.source = regExpSource;\n } else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join(\"\");\n }\n } else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n } else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n if (typeof this.source === \"string\") {\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n } else {\n this.hasBackReferences = false;\n }\n }\n clone() {\n return new _RegExpSource(this.source, this.ruleId);\n }\n setSource(newSource) {\n if (this.source === newSource) {\n return;\n }\n this.source = newSource;\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n }\n resolveBackReferences(lineText, captureIndices) {\n if (typeof this.source !== \"string\") {\n throw new Error(\"This method should only be called if the source is a string\");\n }\n let capturedValues = captureIndices.map((capture) => {\n return lineText.substring(capture.start, capture.end);\n });\n BACK_REFERENCING_END.lastIndex = 0;\n return this.source.replace(BACK_REFERENCING_END, (match, g1) => {\n return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || \"\");\n });\n }\n _buildAnchorCache() {\n if (typeof this.source !== \"string\") {\n throw new Error(\"This method should only be called if the source is a string\");\n }\n let A0_G0_result = [];\n let A0_G1_result = [];\n let A1_G0_result = [];\n let A1_G1_result = [];\n let pos, len, ch, nextCh;\n for (pos = 0, len = this.source.length; pos < len; pos++) {\n ch = this.source.charAt(pos);\n A0_G0_result[pos] = ch;\n A0_G1_result[pos] = ch;\n A1_G0_result[pos] = ch;\n A1_G1_result[pos] = ch;\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n nextCh = this.source.charAt(pos + 1);\n if (nextCh === \"A\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"\\uFFFF\";\n A1_G0_result[pos + 1] = \"A\";\n A1_G1_result[pos + 1] = \"A\";\n } else if (nextCh === \"G\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"G\";\n A1_G0_result[pos + 1] = \"\\uFFFF\";\n A1_G1_result[pos + 1] = \"G\";\n } else {\n A0_G0_result[pos + 1] = nextCh;\n A0_G1_result[pos + 1] = nextCh;\n A1_G0_result[pos + 1] = nextCh;\n A1_G1_result[pos + 1] = nextCh;\n }\n pos++;\n }\n }\n }\n return {\n A0_G0: A0_G0_result.join(\"\"),\n A0_G1: A0_G1_result.join(\"\"),\n A1_G0: A1_G0_result.join(\"\"),\n A1_G1: A1_G1_result.join(\"\")\n };\n }\n resolveAnchors(allowA, allowG) {\n if (!this.hasAnchor || !this._anchorCache || typeof this.source !== \"string\") {\n return this.source;\n }\n if (allowA) {\n if (allowG) {\n return this._anchorCache.A1_G1;\n } else {\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n } else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n};\nvar RegExpSourceList = class {\n _items;\n _hasAnchors;\n _cached;\n _anchorCache;\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n this._disposeCaches();\n this._items[index].setSource(newSource);\n }\n }\n compile(onigLib) {\n if (!this._cached) {\n let regExps = this._items.map((e) => e.source);\n this._cached = new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n return this._cached;\n }\n compileAG(onigLib, allowA, allowG) {\n if (!this._hasAnchors) {\n return this.compile(onigLib);\n } else {\n if (allowA) {\n if (allowG) {\n if (!this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G1;\n } else {\n if (!this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n if (!this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G1;\n } else {\n if (!this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G0;\n }\n }\n }\n }\n _resolveAnchors(onigLib, allowA, allowG) {\n let regExps = this._items.map((e) => e.resolveAnchors(allowA, allowG));\n return new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n};\nvar CompiledRule = class {\n constructor(onigLib, regExps, rules) {\n this.regExps = regExps;\n this.rules = rules;\n this.scanner = onigLib.createOnigScanner(regExps);\n }\n scanner;\n dispose() {\n if (typeof this.scanner.dispose === \"function\") {\n this.scanner.dispose();\n }\n }\n toString() {\n const r = [];\n for (let i = 0, len = this.rules.length; i < len; i++) {\n r.push(\" - \" + this.rules[i] + \": \" + this.regExps[i]);\n }\n return r.join(\"\\n\");\n }\n findNextMatchSync(string, startPosition, options) {\n const result = this.scanner.findNextMatchSync(string, startPosition, options);\n if (!result) {\n return null;\n }\n return {\n ruleId: this.rules[result.index],\n captureIndices: result.captureIndices\n };\n }\n};\n\n// src/grammar/basicScopesAttributeProvider.ts\nvar BasicScopeAttributes = class {\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n};\nvar BasicScopeAttributesProvider = class _BasicScopeAttributesProvider {\n _defaultAttributes;\n _embeddedLanguagesMatcher;\n constructor(initialLanguageId, embeddedLanguages) {\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return _BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n static _NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n _getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(_BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* Comment */;\n case \"string\":\n return 2 /* String */;\n case \"regex\":\n return 3 /* RegEx */;\n case \"meta.embedded\":\n return 0 /* Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n static STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\n};\nvar ScopeMatcher = class {\n values;\n scopesRegExp;\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n } else {\n this.values = new Map(values);\n const escapedScopes = values.map(\n ([scopeName, value]) => escapeRegExpCharacters(scopeName)\n );\n escapedScopes.sort();\n escapedScopes.reverse();\n this.scopesRegExp = new RegExp(\n `^((${escapedScopes.join(\")|(\")}))($|\\\\.)`,\n \"\"\n );\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return void 0;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n return void 0;\n }\n return this.values.get(m[1]);\n }\n};\n\n// src/debug.ts\nvar DebugFlags = {\n InDebugMode: typeof process !== \"undefined\" && !!process.env[\"VSCODE_TEXTMATE_DEBUG\"]\n};\nvar UseOnigurumaFindOptions = false;\n\n// src/grammar/tokenizeString.ts\nvar TokenizeStringResult = class {\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n};\nfunction _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTokens, checkWhileConditions, timeLimit) {\n const lineLength = lineText.content.length;\n let STOP = false;\n let anchorPosition = -1;\n if (checkWhileConditions) {\n const whileCheckResult = _checkWhileConditions(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n lineTokens\n );\n stack = whileCheckResult.stack;\n linePos = whileCheckResult.linePos;\n isFirstLine = whileCheckResult.isFirstLine;\n anchorPosition = whileCheckResult.anchorPosition;\n }\n const startTime = Date.now();\n while (!STOP) {\n if (timeLimit !== 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime > timeLimit) {\n return new TokenizeStringResult(stack, true);\n }\n }\n scanNext();\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n if (false) {\n console.log(\"\");\n console.log(\n `@@scanNext ${linePos}: |${lineText.content.substr(linePos).replace(/\\n$/, \"\\\\n\")}|`\n );\n }\n const r = matchRuleOrInjections(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n anchorPosition\n );\n if (!r) {\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n const captureIndices = r.captureIndices;\n const matchedRuleId = r.matchedRuleId;\n const hasAdvanced = captureIndices && captureIndices.length > 0 ? captureIndices[0].end > linePos : false;\n if (matchedRuleId === endRuleId) {\n const poppedRule = stack.getRule(grammar);\n if (false) {\n console.log(\n \" popping \" + poppedRule.debugName + \" - \" + poppedRule.debugEndRegExp\n );\n }\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n poppedRule.endCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n if (false) {\n console.error(\n \"[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing\"\n );\n }\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(\n scopeName,\n grammar\n );\n stack = stack.push(\n matchedRuleId,\n linePos,\n anchorPosition,\n captureIndices[0].end === lineLength,\n null,\n nameScopesList,\n nameScopesList\n );\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\n \" pushing \" + pushedRule.debugName + \" - \" + pushedRule.debugBeginRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getEndWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\" pushing \" + pushedRule.debugName);\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getWhileWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const matchingRule = _rule;\n if (false) {\n console.log(\n \" matched \" + matchingRule.debugName + \" - \" + matchingRule.debugMatchRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n matchingRule.captures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n stack = stack.pop();\n if (!hasAdvanced) {\n if (false) {\n console.error(\n \"[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping\"\n );\n }\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\nfunction _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens) {\n let anchorPosition = stack.beginRuleCapturedEOL ? 0 : -1;\n const whileRules = [];\n for (let node = stack; node; node = node.pop()) {\n const nodeRule = node.getRule(grammar);\n if (nodeRule instanceof BeginWhileRule) {\n whileRules.push({\n rule: nodeRule,\n stack: node\n });\n }\n }\n for (let whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {\n const { ruleScanner, findOptions } = prepareRuleWhileSearch(whileRule.rule, grammar, whileRule.stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (false) {\n console.log(\" scanning for while rule\");\n console.log(ruleScanner.toString());\n }\n if (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n stack = whileRule.stack.pop();\n break;\n }\n if (r.captureIndices && r.captureIndices.length) {\n lineTokens.produce(whileRule.stack, r.captureIndices[0].start);\n handleCaptures(grammar, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);\n lineTokens.produce(whileRule.stack, r.captureIndices[0].end);\n anchorPosition = r.captureIndices[0].end;\n if (r.captureIndices[0].end > linePos) {\n linePos = r.captureIndices[0].end;\n isFirstLine = false;\n }\n }\n } else {\n if (false) {\n console.log(\" popping \" + whileRule.rule.debugName + \" - \" + whileRule.rule.debugWhileRegExp);\n }\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack, linePos, anchorPosition, isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n return matchResult;\n }\n if (!matchResult) {\n return injectionResult;\n }\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || injectionResult.priorityMatch && injectionResultScore === matchResultScore) {\n return injectionResult;\n }\n return matchResult;\n}\nfunction matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const rule = stack.getRule(grammar);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n return {\n captureIndices: r.captureIndices,\n matchedRuleId: r.ruleId\n };\n }\n return null;\n}\nfunction matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n let bestMatchRating = Number.MAX_VALUE;\n let bestMatchCaptureIndices = null;\n let bestMatchRuleId;\n let bestMatchResultPriority = 0;\n const scopes = stack.contentNameScopesList.getScopeNames();\n for (let i = 0, len = injections.length; i < len; i++) {\n const injection = injections[i];\n if (!injection.matcher(scopes)) {\n continue;\n }\n const rule = grammar.getRule(injection.ruleId);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, null, isFirstLine, linePos === anchorPosition);\n const matchResult = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (!matchResult) {\n continue;\n }\n if (false) {\n console.log(` matched injection: ${injection.debugSelector}`);\n console.log(ruleScanner.toString());\n }\n const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n break;\n }\n }\n if (bestMatchCaptureIndices) {\n return {\n priorityMatch: bestMatchResultPriority === -1,\n captureIndices: bestMatchCaptureIndices,\n matchedRuleId: bestMatchRuleId\n };\n }\n return null;\n}\nfunction prepareRuleSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compileWhile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction getFindOptions(allowA, allowG) {\n let options = 0 /* None */;\n if (!allowA) {\n options |= 1 /* NotBeginString */;\n }\n if (!allowG) {\n options |= 4 /* NotBeginPosition */;\n }\n return options;\n}\nfunction handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {\n if (captures.length === 0) {\n return;\n }\n const lineTextContent = lineText.content;\n const len = Math.min(captures.length, captureIndices.length);\n const localStack = [];\n const maxEnd = captureIndices[0].end;\n for (let i = 0; i < len; i++) {\n const captureRule = captures[i];\n if (captureRule === null) {\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n continue;\n }\n if (captureIndex.start > maxEnd) {\n break;\n }\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n if (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);\n } else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n const scopeName = captureRule.getName(lineTextContent, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n const contentName = captureRule.getContentName(lineTextContent, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n const stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, -1, false, null, nameScopesList, contentNameScopesList);\n const onigSubStr = grammar.createOnigString(lineTextContent.substring(0, captureIndex.end));\n _tokenizeString(\n grammar,\n onigSubStr,\n isFirstLine && captureIndex.start === 0,\n captureIndex.start,\n stackClone,\n lineTokens,\n false,\n /* no time limit */\n 0\n );\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n const base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;\n const captureRuleScopesList = base.pushAttributed(captureRuleScopeName, grammar);\n localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));\n }\n }\n while (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nvar LocalStackElement = class {\n scopes;\n endPos;\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n};\n\n// src/grammar/grammar.ts\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(\n scopeName,\n grammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n grammarRepository,\n onigLib\n );\n}\nfunction collectInjections(result, selector, rule, ruleFactoryHelper, grammar) {\n const matchers = createMatchers(selector, nameMatcher);\n const ruleId = RuleFactory.getCompiledRuleId(rule, ruleFactoryHelper, grammar.repository);\n for (const matcher of matchers) {\n result.push({\n debugSelector: selector,\n matcher: matcher.matcher,\n ruleId,\n grammar,\n priority: matcher.priority\n });\n }\n}\nfunction nameMatcher(identifers, scopes) {\n if (scopes.length < identifers.length) {\n return false;\n }\n let lastIndex = 0;\n return identifers.every((identifier) => {\n for (let i = lastIndex; i < scopes.length; i++) {\n if (scopesAreMatching(scopes[i], identifier)) {\n lastIndex = i + 1;\n return true;\n }\n }\n return false;\n });\n}\nfunction scopesAreMatching(thisScopeName, scopeName) {\n if (!thisScopeName) {\n return false;\n }\n if (thisScopeName === scopeName) {\n return true;\n }\n const len = scopeName.length;\n return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === \".\";\n}\nvar Grammar = class {\n constructor(_rootScopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, _onigLib) {\n this._rootScopeName = _rootScopeName;\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._onigLib = _onigLib;\n this._basicScopeAttributesProvider = new BasicScopeAttributesProvider(\n initialLanguage,\n embeddedLanguages\n );\n this._rootId = -1;\n this._lastRuleId = 0;\n this._ruleId2desc = [null];\n this._includedGrammars = {};\n this._grammarRepository = grammarRepository;\n this._grammar = initGrammar(grammar, null);\n this._injections = null;\n this._tokenTypeMatchers = [];\n if (tokenTypes) {\n for (const selector of Object.keys(tokenTypes)) {\n const matchers = createMatchers(selector, nameMatcher);\n for (const matcher of matchers) {\n this._tokenTypeMatchers.push({\n matcher: matcher.matcher,\n type: tokenTypes[selector]\n });\n }\n }\n }\n }\n _rootId;\n _lastRuleId;\n _ruleId2desc;\n _includedGrammars;\n _grammarRepository;\n _grammar;\n _injections;\n _basicScopeAttributesProvider;\n _tokenTypeMatchers;\n get themeProvider() {\n return this._grammarRepository;\n }\n dispose() {\n for (const rule of this._ruleId2desc) {\n if (rule) {\n rule.dispose();\n }\n }\n }\n createOnigScanner(sources) {\n return this._onigLib.createOnigScanner(sources);\n }\n createOnigString(sources) {\n return this._onigLib.createOnigString(sources);\n }\n getMetadataForScope(scope) {\n return this._basicScopeAttributesProvider.getBasicScopeAttributes(scope);\n }\n _collectInjections() {\n const grammarRepository = {\n lookup: (scopeName2) => {\n if (scopeName2 === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName2);\n },\n injections: (scopeName2) => {\n return this._grammarRepository.injections(scopeName2);\n }\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(\n result,\n expression,\n rawInjections[expression],\n this,\n grammar\n );\n }\n }\n const injectionScopeNames = this._grammarRepository.injections(scopeName);\n if (injectionScopeNames) {\n injectionScopeNames.forEach((injectionScopeName) => {\n const injectionGrammar = this.getExternalGrammar(injectionScopeName);\n if (injectionGrammar) {\n const selector = injectionGrammar.injectionSelector;\n if (selector) {\n collectInjections(\n result,\n selector,\n injectionGrammar,\n this,\n injectionGrammar\n );\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority);\n return result;\n }\n getInjections() {\n if (this._injections === null) {\n this._injections = this._collectInjections();\n }\n return this._injections;\n }\n registerRule(factory) {\n const id = ++this._lastRuleId;\n const result = factory(ruleIdFromNumber(id));\n this._ruleId2desc[id] = result;\n return result;\n }\n getRule(ruleId) {\n return this._ruleId2desc[ruleIdToNumber(ruleId)];\n }\n getExternalGrammar(scopeName, repository) {\n if (this._includedGrammars[scopeName]) {\n return this._includedGrammars[scopeName];\n } else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n this._includedGrammars[scopeName] = initGrammar(\n rawIncludedGrammar,\n repository && repository.$base\n );\n return this._includedGrammars[scopeName];\n }\n }\n return void 0;\n }\n tokenizeLine(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, false, timeLimit);\n return {\n tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n tokenizeLine2(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, true, timeLimit);\n return {\n tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n _tokenize(lineText, prevState, emitBinaryTokens, timeLimit) {\n if (this._rootId === -1) {\n this._rootId = RuleFactory.getCompiledRuleId(\n this._grammar.repository.$self,\n this,\n this._grammar.repository\n );\n this.getInjections();\n }\n let isFirstLine;\n if (!prevState || prevState === StateStackImpl.NULL) {\n isFirstLine = true;\n const rawDefaultMetadata = this._basicScopeAttributesProvider.getDefaultAttributes();\n const defaultStyle = this.themeProvider.getDefaults();\n const defaultMetadata = EncodedTokenMetadata.set(\n 0,\n rawDefaultMetadata.languageId,\n rawDefaultMetadata.tokenType,\n null,\n defaultStyle.fontStyle,\n defaultStyle.foregroundId,\n defaultStyle.backgroundId\n );\n const rootScopeName = this.getRule(this._rootId).getName(\n null,\n null\n );\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(\n rootScopeName,\n defaultMetadata,\n this\n );\n } else {\n scopeList = AttributedScopeStack.createRoot(\n \"unknown\",\n defaultMetadata\n );\n }\n prevState = new StateStackImpl(\n null,\n this._rootId,\n -1,\n -1,\n false,\n null,\n scopeList,\n scopeList\n );\n } else {\n isFirstLine = false;\n prevState.reset();\n }\n lineText = lineText + \"\\n\";\n const onigLineText = this.createOnigString(lineText);\n const lineLength = onigLineText.content.length;\n const lineTokens = new LineTokens(\n emitBinaryTokens,\n lineText,\n this._tokenTypeMatchers,\n this.balancedBracketSelectors\n );\n const r = _tokenizeString(\n this,\n onigLineText,\n isFirstLine,\n 0,\n prevState,\n lineTokens,\n true,\n timeLimit\n );\n disposeOnigString(onigLineText);\n return {\n lineLength,\n lineTokens,\n ruleStack: r.stack,\n stoppedEarly: r.stoppedEarly\n };\n }\n};\nfunction initGrammar(grammar, base) {\n grammar = clone(grammar);\n grammar.repository = grammar.repository || {};\n grammar.repository.$self = {\n $vscodeTextmateLocation: grammar.$vscodeTextmateLocation,\n patterns: grammar.patterns,\n name: grammar.scopeName\n };\n grammar.repository.$base = base || grammar.repository.$self;\n return grammar;\n}\nvar AttributedScopeStack = class _AttributedScopeStack {\n /**\n * Invariant:\n * ```\n * if (parent && !scopePath.extends(parent.scopePath)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, scopePath, tokenAttributes) {\n this.parent = parent;\n this.scopePath = scopePath;\n this.tokenAttributes = tokenAttributes;\n }\n static fromExtension(namesScopeList, contentNameScopesList) {\n let current = namesScopeList;\n let scopeNames = namesScopeList?.scopePath ?? null;\n for (const frame of contentNameScopesList) {\n scopeNames = ScopeStack.push(scopeNames, frame.scopeNames);\n current = new _AttributedScopeStack(current, scopeNames, frame.encodedTokenAttributes);\n }\n return current;\n }\n static createRoot(scopeName, tokenAttributes) {\n return new _AttributedScopeStack(null, new ScopeStack(null, scopeName), tokenAttributes);\n }\n static createRootAndLookUpScopeName(scopeName, tokenAttributes, grammar) {\n const rawRootMetadata = grammar.getMetadataForScope(scopeName);\n const scopePath = new ScopeStack(null, scopeName);\n const rootStyle = grammar.themeProvider.themeMatch(scopePath);\n const resolvedTokenAttributes = _AttributedScopeStack.mergeAttributes(\n tokenAttributes,\n rawRootMetadata,\n rootStyle\n );\n return new _AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() {\n return this.scopePath.scopeName;\n }\n toString() {\n return this.getScopeNames().join(\" \");\n }\n equals(other) {\n return _AttributedScopeStack.equals(this, other);\n }\n static equals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* NotSet */;\n let foreground = 0;\n let background = 0;\n if (styleAttributes !== null) {\n fontStyle = styleAttributes.fontStyle;\n foreground = styleAttributes.foregroundId;\n background = styleAttributes.backgroundId;\n }\n return EncodedTokenMetadata.set(\n existingTokenAttributes,\n basicScopeAttributes.languageId,\n basicScopeAttributes.tokenType,\n null,\n fontStyle,\n foreground,\n background\n );\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(\" \") === -1) {\n return _AttributedScopeStack._pushAttributed(this, scopePath, grammar);\n }\n const scopes = scopePath.split(/ /g);\n let result = this;\n for (const scope of scopes) {\n result = _AttributedScopeStack._pushAttributed(result, scope, grammar);\n }\n return result;\n }\n static _pushAttributed(target, scopeName, grammar) {\n const rawMetadata = grammar.getMetadataForScope(scopeName);\n const newPath = target.scopePath.push(scopeName);\n const scopeThemeMatchResult = grammar.themeProvider.themeMatch(newPath);\n const metadata = _AttributedScopeStack.mergeAttributes(\n target.tokenAttributes,\n rawMetadata,\n scopeThemeMatchResult\n );\n return new _AttributedScopeStack(target, newPath, metadata);\n }\n getScopeNames() {\n return this.scopePath.getSegments();\n }\n getExtensionIfDefined(base) {\n const result = [];\n let self = this;\n while (self && self !== base) {\n result.push({\n encodedTokenAttributes: self.tokenAttributes,\n scopeNames: self.scopePath.getExtensionIfDefined(self.parent?.scopePath ?? null)\n });\n self = self.parent;\n }\n return self === base ? result.reverse() : void 0;\n }\n};\nvar StateStackImpl = class _StateStackImpl {\n /**\n * Invariant:\n * ```\n * if (contentNameScopesList !== nameScopesList && contentNameScopesList?.parent !== nameScopesList) {\n * \tthrow new Error();\n * }\n * if (this.parent && !nameScopesList.extends(this.parent.contentNameScopesList)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n _stackElementBrand = void 0;\n // TODO remove me\n static NULL = new _StateStackImpl(\n null,\n 0,\n 0,\n 0,\n false,\n null,\n null,\n null\n );\n /**\n * The position on the current line where this state was pushed.\n * This is relevant only while tokenizing a line, to detect endless loops.\n * Its value is meaningless across lines.\n */\n _enterPos;\n /**\n * The captured anchor position when this stack element was pushed.\n * This is relevant only while tokenizing a line, to restore the anchor position when popping.\n * Its value is meaningless across lines.\n */\n _anchorPos;\n /**\n * The depth of the stack.\n */\n depth;\n equals(other) {\n if (other === null) {\n return false;\n }\n return _StateStackImpl._equals(this, other);\n }\n static _equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!this._structuralEquals(a, b)) {\n return false;\n }\n return AttributedScopeStack.equals(a.contentNameScopesList, b.contentNameScopesList);\n }\n /**\n * A structural equals check. Does not take into account `scopes`.\n */\n static _structuralEquals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.depth !== b.depth || a.ruleId !== b.ruleId || a.endRule !== b.endRule) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n clone() {\n return this;\n }\n static _reset(el) {\n while (el) {\n el._enterPos = -1;\n el._anchorPos = -1;\n el = el.parent;\n }\n }\n reset() {\n _StateStackImpl._reset(this);\n }\n pop() {\n return this.parent;\n }\n safePop() {\n if (this.parent) {\n return this.parent;\n }\n return this;\n }\n push(ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n return new _StateStackImpl(\n this,\n ruleId,\n enterPos,\n anchorPos,\n beginRuleCapturedEOL,\n endRule,\n nameScopesList,\n contentNameScopesList\n );\n }\n getEnterPos() {\n return this._enterPos;\n }\n getAnchorPos() {\n return this._anchorPos;\n }\n getRule(grammar) {\n return grammar.getRule(this.ruleId);\n }\n toString() {\n const r = [];\n this._writeString(r, 0);\n return \"[\" + r.join(\",\") + \"]\";\n }\n _writeString(res, outIndex) {\n if (this.parent) {\n outIndex = this.parent._writeString(res, outIndex);\n }\n res[outIndex++] = `(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`;\n return outIndex;\n }\n withContentNameScopesList(contentNameScopeStack) {\n if (this.contentNameScopesList === contentNameScopeStack) {\n return this;\n }\n return this.parent.push(\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n this.endRule,\n this.nameScopesList,\n contentNameScopeStack\n );\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new _StateStackImpl(\n this.parent,\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n endRule,\n this.nameScopesList,\n this.contentNameScopesList\n );\n }\n // Used to warn of endless loops\n hasSameRuleAs(other) {\n let el = this;\n while (el && el._enterPos === other._enterPos) {\n if (el.ruleId === other.ruleId) {\n return true;\n }\n el = el.parent;\n }\n return false;\n }\n toStateStackFrame() {\n return {\n ruleId: ruleIdToNumber(this.ruleId),\n beginRuleCapturedEOL: this.beginRuleCapturedEOL,\n endRule: this.endRule,\n nameScopesList: this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList ?? null) ?? [],\n contentNameScopesList: this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList) ?? []\n };\n }\n static pushFrame(self, frame) {\n const namesScopeList = AttributedScopeStack.fromExtension(self?.nameScopesList ?? null, frame.nameScopesList);\n return new _StateStackImpl(\n self,\n ruleIdFromNumber(frame.ruleId),\n frame.enterPos ?? -1,\n frame.anchorPos ?? -1,\n frame.beginRuleCapturedEOL,\n frame.endRule,\n namesScopeList,\n AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList)\n );\n }\n};\nvar BalancedBracketSelectors = class {\n balancedBracketScopes;\n unbalancedBracketScopes;\n allowAny = false;\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.balancedBracketScopes = balancedBracketScopes.flatMap(\n (selector) => {\n if (selector === \"*\") {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n }\n );\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap(\n (selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher)\n );\n }\n get matchesAlways() {\n return this.allowAny && this.unbalancedBracketScopes.length === 0;\n }\n get matchesNever() {\n return this.balancedBracketScopes.length === 0 && !this.allowAny;\n }\n match(scopes) {\n for (const excluder of this.unbalancedBracketScopes) {\n if (excluder(scopes)) {\n return false;\n }\n }\n for (const includer of this.balancedBracketScopes) {\n if (includer(scopes)) {\n return true;\n }\n }\n return this.allowAny;\n }\n};\nvar LineTokens = class {\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n if (false) {\n this._lineText = lineText;\n } else {\n this._lineText = null;\n }\n this._tokens = [];\n this._binaryTokens = [];\n this._lastTokenEndIndex = 0;\n }\n _emitBinaryTokens;\n /**\n * defined only if `false`.\n */\n _lineText;\n /**\n * used only if `_emitBinaryTokens` is false.\n */\n _tokens;\n /**\n * used only if `_emitBinaryTokens` is true.\n */\n _binaryTokens;\n _lastTokenEndIndex;\n _tokenTypeOverrides;\n produce(stack, endIndex) {\n this.produceFromScopes(stack.contentNameScopesList, endIndex);\n }\n produceFromScopes(scopesList, endIndex) {\n if (this._lastTokenEndIndex >= endIndex) {\n return;\n }\n if (this._emitBinaryTokens) {\n let metadata = scopesList?.tokenAttributes ?? 0;\n let containsBalancedBrackets = false;\n if (this.balancedBracketSelectors?.matchesAlways) {\n containsBalancedBrackets = true;\n }\n if (this._tokenTypeOverrides.length > 0 || this.balancedBracketSelectors && !this.balancedBracketSelectors.matchesAlways && !this.balancedBracketSelectors.matchesNever) {\n const scopes2 = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes2)) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n toOptionalTokenType(tokenType.type),\n null,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes2);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n 8 /* NotSet */,\n containsBalancedBrackets,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n this._lastTokenEndIndex = endIndex;\n return;\n }\n this._binaryTokens.push(this._lastTokenEndIndex);\n this._binaryTokens.push(metadata);\n this._lastTokenEndIndex = endIndex;\n return;\n }\n const scopes = scopesList?.getScopeNames() ?? [];\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes\n });\n this._lastTokenEndIndex = endIndex;\n }\n getResult(stack, lineLength) {\n if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {\n this._tokens.pop();\n }\n if (this._tokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._tokens[this._tokens.length - 1].startIndex = 0;\n }\n return this._tokens;\n }\n getBinaryResult(stack, lineLength) {\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {\n this._binaryTokens.pop();\n this._binaryTokens.pop();\n }\n if (this._binaryTokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._binaryTokens[this._binaryTokens.length - 2] = 0;\n }\n const result = new Uint32Array(this._binaryTokens.length);\n for (let i = 0, len = this._binaryTokens.length; i < len; i++) {\n result[i] = this._binaryTokens[i];\n }\n return result;\n }\n};\n\n// src/registry.ts\nvar SyncRegistry = class {\n constructor(theme, _onigLib) {\n this._onigLib = _onigLib;\n this._theme = theme;\n }\n _grammars = /* @__PURE__ */ new Map();\n _rawGrammars = /* @__PURE__ */ new Map();\n _injectionGrammars = /* @__PURE__ */ new Map();\n _theme;\n dispose() {\n for (const grammar of this._grammars.values()) {\n grammar.dispose();\n }\n }\n setTheme(theme) {\n this._theme = theme;\n }\n getColorMap() {\n return this._theme.getColorMap();\n }\n /**\n * Add `grammar` to registry and return a list of referenced scope names\n */\n addGrammar(grammar, injectionScopeNames) {\n this._rawGrammars.set(grammar.scopeName, grammar);\n if (injectionScopeNames) {\n this._injectionGrammars.set(grammar.scopeName, injectionScopeNames);\n }\n }\n /**\n * Lookup a raw grammar.\n */\n lookup(scopeName) {\n return this._rawGrammars.get(scopeName);\n }\n /**\n * Returns the injections for the given grammar\n */\n injections(targetScope) {\n return this._injectionGrammars.get(targetScope);\n }\n /**\n * Get the default theme settings\n */\n getDefaults() {\n return this._theme.getDefaults();\n }\n /**\n * Match a scope in the theme.\n */\n themeMatch(scopePath) {\n return this._theme.match(scopePath);\n }\n /**\n * Lookup a grammar.\n */\n grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n if (!this._grammars.has(scopeName)) {\n let rawGrammar = this._rawGrammars.get(scopeName);\n if (!rawGrammar) {\n return null;\n }\n this._grammars.set(scopeName, createGrammar(\n scopeName,\n rawGrammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n this,\n this._onigLib\n ));\n }\n return this._grammars.get(scopeName);\n }\n};\n\n// src/index.ts\nvar Registry = class {\n _options;\n _syncRegistry;\n _ensureGrammarCache;\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(\n Theme.createFromRawTheme(options.theme, options.colorMap),\n options.onigLib\n );\n this._ensureGrammarCache = /* @__PURE__ */ new Map();\n }\n dispose() {\n this._syncRegistry.dispose();\n }\n /**\n * Change the theme. Once called, no previous `ruleStack` should be used anymore.\n */\n setTheme(theme, colorMap) {\n this._syncRegistry.setTheme(Theme.createFromRawTheme(theme, colorMap));\n }\n /**\n * Returns a lookup array for color ids.\n */\n getColorMap() {\n return this._syncRegistry.getColorMap();\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithEmbeddedLanguages(initialScopeName, initialLanguage, embeddedLanguages) {\n return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithConfiguration(initialScopeName, initialLanguage, configuration) {\n return this._loadGrammar(\n initialScopeName,\n initialLanguage,\n configuration.embeddedLanguages,\n configuration.tokenTypes,\n new BalancedBracketSelectors(\n configuration.balancedBracketSelectors || [],\n configuration.unbalancedBracketSelectors || []\n )\n );\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n */\n loadGrammar(initialScopeName) {\n return this._loadGrammar(initialScopeName, 0, null, null, null);\n }\n _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(\n initialScopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._doLoadSingleGrammar(scopeName);\n this._ensureGrammarCache.set(scopeName, true);\n }\n }\n _doLoadSingleGrammar(scopeName) {\n const grammar = this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : void 0;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return this._grammarForScopeName(rawGrammar.scopeName, initialLanguage, embeddedLanguages);\n }\n /**\n * Get the grammar for `scopeName`. The grammar must first be created via `loadGrammar` or `addGrammar`.\n */\n _grammarForScopeName(scopeName, initialLanguage = 0, embeddedLanguages = null, tokenTypes = null, balancedBracketSelectors = null) {\n return this._syncRegistry.grammarForScopeName(\n scopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n};\nvar INITIAL = StateStackImpl.NULL;\nexport {\n EncodedTokenMetadata,\n FindOption,\n FontStyle,\n INITIAL,\n Registry,\n Theme,\n disposeOnigString\n};\n","/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n * Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nexport function zwitch(key, options) {\n const settings = options || {}\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid\n const handlers = one.handlers\n\n if (value && own.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key])\n // @ts-expect-error Indexable.\n fn = own.call(handlers, id) ? handlers[id] : one.unknown\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n // @ts-expect-error: matches!\n return one\n}\n","/**\n * @typedef CoreOptions\n * @property {ReadonlyArray<string>} [subset=[]]\n * Whether to only escape the given subset of characters.\n * @property {boolean} [escapeOnly=false]\n * Whether to only escape possibly dangerous characters.\n * Those characters are `\"`, `&`, `'`, `<`, `>`, and `` ` ``.\n *\n * @typedef FormatOptions\n * @property {(code: number, next: number, options: CoreWithFormatOptions) => string} format\n * Format strategy.\n *\n * @typedef {CoreOptions & FormatOptions & import('./util/format-smart.js').FormatSmartOptions} CoreWithFormatOptions\n */\n\nconst defaultSubsetRegex = /[\"&'<>`]/g\nconst surrogatePairsRegex = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g\nconst controlCharactersRegex =\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g\nconst regexEscapeRegex = /[|\\\\{}()[\\]^$+*?.]/g\n\n/** @type {WeakMap<ReadonlyArray<string>, RegExp>} */\nconst subsetToRegexCache = new WeakMap()\n\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nexport function core(value, options) {\n value = value.replace(\n options.subset\n ? charactersToExpressionCached(options.subset)\n : defaultSubsetRegex,\n basic\n )\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(surrogatePairsRegex, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(controlCharactersRegex, basic)\n )\n\n /**\n * @param {string} pair\n * @param {number} index\n * @param {string} all\n */\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n /**\n * @param {string} character\n * @param {number} index\n * @param {string} all\n */\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\n/**\n * A wrapper function that caches the result of `charactersToExpression` with a WeakMap.\n * This can improve performance when tooling calls `charactersToExpression` repeatedly\n * with the same subset.\n *\n * @param {ReadonlyArray<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpressionCached(subset) {\n let cached = subsetToRegexCache.get(subset)\n\n if (!cached) {\n cached = charactersToExpression(subset)\n subsetToRegexCache.set(subset, cached)\n }\n\n return cached\n}\n\n/**\n * @param {ReadonlyArray<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpression(subset) {\n /** @type {Array<string>} */\n const groups = []\n let index = -1\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(regexEscapeRegex, '\\\\$&'))\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n","const hexadecimalRegex = /[\\dA-Fa-f]/\n\n/**\n * Configurable ways to encode characters as hexadecimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nexport function toHexadecimal(code, next, omit) {\n const value = '&#x' + code.toString(16).toUpperCase()\n return omit && next && !hexadecimalRegex.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n","const decimalRegex = /\\d/\n\n/**\n * Configurable ways to encode characters as decimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nexport function toDecimal(code, next, omit) {\n const value = '&#' + String(code)\n return omit && next && !decimalRegex.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n","/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nexport const characterEntitiesLegacy = [\n 'AElig',\n 'AMP',\n 'Aacute',\n 'Acirc',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Auml',\n 'COPY',\n 'Ccedil',\n 'ETH',\n 'Eacute',\n 'Ecirc',\n 'Egrave',\n 'Euml',\n 'GT',\n 'Iacute',\n 'Icirc',\n 'Igrave',\n 'Iuml',\n 'LT',\n 'Ntilde',\n 'Oacute',\n 'Ocirc',\n 'Ograve',\n 'Oslash',\n 'Otilde',\n 'Ouml',\n 'QUOT',\n 'REG',\n 'THORN',\n 'Uacute',\n 'Ucirc',\n 'Ugrave',\n 'Uuml',\n 'Yacute',\n 'aacute',\n 'acirc',\n 'acute',\n 'aelig',\n 'agrave',\n 'amp',\n 'aring',\n 'atilde',\n 'auml',\n 'brvbar',\n 'ccedil',\n 'cedil',\n 'cent',\n 'copy',\n 'curren',\n 'deg',\n 'divide',\n 'eacute',\n 'ecirc',\n 'egrave',\n 'eth',\n 'euml',\n 'frac12',\n 'frac14',\n 'frac34',\n 'gt',\n 'iacute',\n 'icirc',\n 'iexcl',\n 'igrave',\n 'iquest',\n 'iuml',\n 'laquo',\n 'lt',\n 'macr',\n 'micro',\n 'middot',\n 'nbsp',\n 'not',\n 'ntilde',\n 'oacute',\n 'ocirc',\n 'ograve',\n 'ordf',\n 'ordm',\n 'oslash',\n 'otilde',\n 'ouml',\n 'para',\n 'plusmn',\n 'pound',\n 'quot',\n 'raquo',\n 'reg',\n 'sect',\n 'shy',\n 'sup1',\n 'sup2',\n 'sup3',\n 'szlig',\n 'thorn',\n 'times',\n 'uacute',\n 'ucirc',\n 'ugrave',\n 'uml',\n 'uuml',\n 'yacute',\n 'yen',\n 'yuml'\n]\n","/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nexport const characterEntitiesHtml4 = {\n nbsp: ' ',\n iexcl: '¡',\n cent: '¢',\n pound: '£',\n curren: '¤',\n yen: '¥',\n brvbar: '¦',\n sect: '§',\n uml: '¨',\n copy: '©',\n ordf: 'ª',\n laquo: '«',\n not: '¬',\n shy: '',\n reg: '®',\n macr: '¯',\n deg: '°',\n plusmn: '±',\n sup2: '²',\n sup3: '³',\n acute: '´',\n micro: 'µ',\n para: '¶',\n middot: '·',\n cedil: '¸',\n sup1: '¹',\n ordm: 'º',\n raquo: '»',\n frac14: '¼',\n frac12: '½',\n frac34: '¾',\n iquest: '¿',\n Agrave: 'À',\n Aacute: 'Á',\n Acirc: 'Â',\n Atilde: 'Ã',\n Auml: 'Ä',\n Aring: 'Å',\n AElig: 'Æ',\n Ccedil: 'Ç',\n Egrave: 'È',\n Eacute: 'É',\n Ecirc: 'Ê',\n Euml: 'Ë',\n Igrave: 'Ì',\n Iacute: 'Í',\n Icirc: 'Î',\n Iuml: 'Ï',\n ETH: 'Ð',\n Ntilde: 'Ñ',\n Ograve: 'Ò',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Otilde: 'Õ',\n Ouml: 'Ö',\n times: '×',\n Oslash: 'Ø',\n Ugrave: 'Ù',\n Uacute: 'Ú',\n Ucirc: 'Û',\n Uuml: 'Ü',\n Yacute: 'Ý',\n THORN: 'Þ',\n szlig: 'ß',\n agrave: 'à',\n aacute: 'á',\n acirc: 'â',\n atilde: 'ã',\n auml: 'ä',\n aring: 'å',\n aelig: 'æ',\n ccedil: 'ç',\n egrave: 'è',\n eacute: 'é',\n ecirc: 'ê',\n euml: 'ë',\n igrave: 'ì',\n iacute: 'í',\n icirc: 'î',\n iuml: 'ï',\n eth: 'ð',\n ntilde: 'ñ',\n ograve: 'ò',\n oacute: 'ó',\n ocirc: 'ô',\n otilde: 'õ',\n ouml: 'ö',\n divide: '÷',\n oslash: 'ø',\n ugrave: 'ù',\n uacute: 'ú',\n ucirc: 'û',\n uuml: 'ü',\n yacute: 'ý',\n thorn: 'þ',\n yuml: 'ÿ',\n fnof: 'ƒ',\n Alpha: 'Α',\n Beta: 'Β',\n Gamma: 'Γ',\n Delta: 'Δ',\n Epsilon: 'Ε',\n Zeta: 'Ζ',\n Eta: 'Η',\n Theta: 'Θ',\n Iota: 'Ι',\n Kappa: 'Κ',\n Lambda: 'Λ',\n Mu: 'Μ',\n Nu: 'Ν',\n Xi: 'Ξ',\n Omicron: 'Ο',\n Pi: 'Π',\n Rho: 'Ρ',\n Sigma: 'Σ',\n Tau: 'Τ',\n Upsilon: 'Υ',\n Phi: 'Φ',\n Chi: 'Χ',\n Psi: 'Ψ',\n Omega: 'Ω',\n alpha: 'α',\n beta: 'β',\n gamma: 'γ',\n delta: 'δ',\n epsilon: 'ε',\n zeta: 'ζ',\n eta: 'η',\n theta: 'θ',\n iota: 'ι',\n kappa: 'κ',\n lambda: 'λ',\n mu: 'μ',\n nu: 'ν',\n xi: 'ξ',\n omicron: 'ο',\n pi: 'π',\n rho: 'ρ',\n sigmaf: 'ς',\n sigma: 'σ',\n tau: 'τ',\n upsilon: 'υ',\n phi: 'φ',\n chi: 'χ',\n psi: 'ψ',\n omega: 'ω',\n thetasym: 'ϑ',\n upsih: 'ϒ',\n piv: 'ϖ',\n bull: '•',\n hellip: '…',\n prime: '′',\n Prime: '″',\n oline: '‾',\n frasl: '⁄',\n weierp: '℘',\n image: 'ℑ',\n real: 'ℜ',\n trade: '™',\n alefsym: 'ℵ',\n larr: '←',\n uarr: '↑',\n rarr: '→',\n darr: '↓',\n harr: '↔',\n crarr: '↵',\n lArr: '⇐',\n uArr: '⇑',\n rArr: '⇒',\n dArr: '⇓',\n hArr: '⇔',\n forall: '∀',\n part: '∂',\n exist: '∃',\n empty: '∅',\n nabla: '∇',\n isin: '∈',\n notin: '∉',\n ni: '∋',\n prod: '∏',\n sum: '∑',\n minus: '−',\n lowast: '∗',\n radic: '√',\n prop: '∝',\n infin: '∞',\n ang: '∠',\n and: '∧',\n or: '∨',\n cap: '∩',\n cup: '∪',\n int: '∫',\n there4: '∴',\n sim: '∼',\n cong: '≅',\n asymp: '≈',\n ne: '≠',\n equiv: '≡',\n le: '≤',\n ge: '≥',\n sub: '⊂',\n sup: '⊃',\n nsub: '⊄',\n sube: '⊆',\n supe: '⊇',\n oplus: '⊕',\n otimes: '⊗',\n perp: '⊥',\n sdot: '⋅',\n lceil: '⌈',\n rceil: '⌉',\n lfloor: '⌊',\n rfloor: '⌋',\n lang: '〈',\n rang: '〉',\n loz: '◊',\n spades: '♠',\n clubs: '♣',\n hearts: '♥',\n diams: '♦',\n quot: '\"',\n amp: '&',\n lt: '<',\n gt: '>',\n OElig: 'Œ',\n oelig: 'œ',\n Scaron: 'Š',\n scaron: 'š',\n Yuml: 'Ÿ',\n circ: 'ˆ',\n tilde: '˜',\n ensp: ' ',\n emsp: ' ',\n thinsp: ' ',\n zwnj: '',\n zwj: '',\n lrm: '',\n rlm: '',\n ndash: '–',\n mdash: '—',\n lsquo: '‘',\n rsquo: '’',\n sbquo: '‚',\n ldquo: '“',\n rdquo: '”',\n bdquo: '„',\n dagger: '†',\n Dagger: '‡',\n permil: '‰',\n lsaquo: '‹',\n rsaquo: '›',\n euro: '€'\n}\n","/**\n * List of legacy (that don’t need a trailing `;`) named references which could,\n * depending on what follows them, turn into a different meaning\n *\n * @type {Array<string>}\n */\nexport const dangerous = [\n 'cent',\n 'copy',\n 'divide',\n 'gt',\n 'lt',\n 'not',\n 'para',\n 'times'\n]\n","import {characterEntitiesLegacy} from 'character-entities-legacy'\nimport {characterEntitiesHtml4} from 'character-entities-html4'\nimport {dangerous} from '../constant/dangerous.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * `characterEntitiesHtml4` but inverted.\n *\n * @type {Record<string, string>}\n */\nconst characters = {}\n\n/** @type {string} */\nlet key\n\nfor (key in characterEntitiesHtml4) {\n if (own.call(characterEntitiesHtml4, key)) {\n characters[characterEntitiesHtml4[key]] = key\n }\n}\n\nconst notAlphanumericRegex = /[^\\dA-Za-z]/\n\n/**\n * Configurable ways to encode characters as named references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @param {boolean|undefined} attribute\n * @returns {string}\n */\nexport function toNamed(code, next, omit, attribute) {\n const character = String.fromCharCode(code)\n\n if (own.call(characters, character)) {\n const name = characters[character]\n const value = '&' + name\n\n if (\n omit &&\n characterEntitiesLegacy.includes(name) &&\n !dangerous.includes(name) &&\n (!attribute ||\n (next &&\n next !== 61 /* `=` */ &&\n notAlphanumericRegex.test(String.fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\n","/**\n * @typedef FormatSmartOptions\n * @property {boolean} [useNamedReferences=false]\n * Prefer named character references (`&`) where possible.\n * @property {boolean} [useShortestReferences=false]\n * Prefer the shortest possible reference, if that results in less bytes.\n * **Note**: `useNamedReferences` can be omitted when using `useShortestReferences`.\n * @property {boolean} [omitOptionalSemicolons=false]\n * Whether to omit semicolons when possible.\n * **Note**: This creates what HTML calls “parse errors” but is otherwise still valid HTML — don’t use this except when building a minifier.\n * Omitting semicolons is possible for certain named and numeric references in some cases.\n * @property {boolean} [attribute=false]\n * Create character references which don’t fail in attributes.\n * **Note**: `attribute` only applies when operating dangerously with\n * `omitOptionalSemicolons: true`.\n */\n\nimport {toHexadecimal} from './to-hexadecimal.js'\nimport {toDecimal} from './to-decimal.js'\nimport {toNamed} from './to-named.js'\n\n/**\n * Configurable ways to encode a character yielding pretty or small results.\n *\n * @param {number} code\n * @param {number} next\n * @param {FormatSmartOptions} options\n * @returns {string}\n */\nexport function formatSmart(code, next, options) {\n let numeric = toHexadecimal(code, next, options.omitOptionalSemicolons)\n /** @type {string|undefined} */\n let named\n\n if (options.useNamedReferences || options.useShortestReferences) {\n named = toNamed(\n code,\n next,\n options.omitOptionalSemicolons,\n options.attribute\n )\n }\n\n // Use the shortest numeric reference when requested.\n // A simple algorithm would use decimal for all code points under 100, as\n // those are shorter than hexadecimal:\n //\n // * `c` vs `c` (decimal shorter)\n // * `d` vs `d` (equal)\n //\n // However, because we take `next` into consideration when `omit` is used,\n // And it would be possible that decimals are shorter on bigger values as\n // well if `next` is hexadecimal but not decimal, we instead compare both.\n if (\n (options.useShortestReferences || !named) &&\n options.useShortestReferences\n ) {\n const decimal = toDecimal(code, next, options.omitOptionalSemicolons)\n\n if (decimal.length < numeric.length) {\n numeric = decimal\n }\n }\n\n return named &&\n (!options.useShortestReferences || named.length < numeric.length)\n ? named\n : numeric\n}\n","/**\n * @typedef {import('./core.js').CoreOptions & import('./util/format-smart.js').FormatSmartOptions} Options\n * @typedef {import('./core.js').CoreOptions} LightOptions\n */\n\nimport {core} from './core.js'\nimport {formatSmart} from './util/format-smart.js'\nimport {formatBasic} from './util/format-basic.js'\n\n/**\n * Encode special characters in `value`.\n *\n * @param {string} value\n * Value to encode.\n * @param {Options} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nexport function stringifyEntities(value, options) {\n return core(value, Object.assign({format: formatSmart}, options))\n}\n\n/**\n * Encode special characters in `value` as hexadecimals.\n *\n * @param {string} value\n * Value to encode.\n * @param {LightOptions} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nexport function stringifyEntitiesLight(value, options) {\n return core(value, Object.assign({format: formatBasic}, options))\n}\n","/**\n * @import {Comment, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\nimport {stringifyEntities} from 'stringify-entities'\n\nconst htmlCommentRegex = /^>|^->|<!--|-->|--!>|<!-$/g\n\n// Declare arrays as variables so it can be cached by `stringifyEntities`\nconst bogusCommentEntitySubset = ['>']\nconst commentEntitySubset = ['<', '>']\n\n/**\n * Serialize a comment.\n *\n * @param {Comment} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function comment(node, _1, _2, state) {\n // See: <https://html.spec.whatwg.org/multipage/syntax.html#comments>\n return state.settings.bogusComments\n ? '<?' +\n stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: bogusCommentEntitySubset\n })\n ) +\n '>'\n : '<!--' + node.value.replace(htmlCommentRegex, encode) + '-->'\n\n /**\n * @param {string} $0\n */\n function encode($0) {\n return stringifyEntities(\n $0,\n Object.assign({}, state.settings.characterReferences, {\n subset: commentEntitySubset\n })\n )\n }\n}\n","/**\n * @import {Doctype, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\n/**\n * Serialize a doctype.\n *\n * @param {Doctype} _1\n * Node to handle.\n * @param {number | undefined} _2\n * Index of `node` in `parent.\n * @param {Parents | undefined} _3\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function doctype(_1, _2, _3, state) {\n return (\n '<!' +\n (state.settings.upperDoctype ? 'DOCTYPE' : 'doctype') +\n (state.settings.tightDoctype ? '' : ' ') +\n 'html>'\n )\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","/**\n * @import {Parents, RootContent} from 'hast'\n */\n\nimport {whitespace} from 'hast-util-whitespace'\n\nexport const siblingAfter = siblings(1)\nexport const siblingBefore = siblings(-1)\n\n/** @type {Array<RootContent>} */\nconst emptyChildren = []\n\n/**\n * Factory to check siblings in a direction.\n *\n * @param {number} increment\n */\nfunction siblings(increment) {\n return sibling\n\n /**\n * Find applicable siblings in a direction.\n *\n * @template {Parents} Parent\n * Parent type.\n * @param {Parent | undefined} parent\n * Parent.\n * @param {number | undefined} index\n * Index of child in `parent`.\n * @param {boolean | undefined} [includeWhitespace=false]\n * Whether to include whitespace (default: `false`).\n * @returns {Parent extends {children: Array<infer Child>} ? Child | undefined : never}\n * Child of parent.\n */\n function sibling(parent, index, includeWhitespace) {\n const siblings = parent ? parent.children : emptyChildren\n let offset = (index || 0) + increment\n let next = siblings[offset]\n\n if (!includeWhitespace) {\n while (next && whitespace(next)) {\n offset += increment\n next = siblings[offset]\n }\n }\n\n // @ts-expect-error: it’s a correct child.\n return next\n }\n}\n","/**\n * @import {Element, Parents} from 'hast'\n */\n\n/**\n * @callback OmitHandle\n * Check if a tag can be omitted.\n * @param {Element} element\n * Element to check.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether to omit a tag.\n *\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Factory to check if a given node can have a tag omitted.\n *\n * @param {Record<string, OmitHandle>} handlers\n * Omission handlers, where each key is a tag name, and each value is the\n * corresponding handler.\n * @returns {OmitHandle}\n * Whether to omit a tag of an element.\n */\nexport function omission(handlers) {\n return omit\n\n /**\n * Check if a given node can have a tag omitted.\n *\n * @type {OmitHandle}\n */\n function omit(node, index, parent) {\n return (\n own.call(handlers, node.tagName) &&\n handlers[node.tagName](node, index, parent)\n )\n }\n}\n","/**\n * @import {Element, Parents} from 'hast'\n */\n\nimport {whitespace} from 'hast-util-whitespace'\nimport {siblingAfter} from './util/siblings.js'\nimport {omission} from './omission.js'\n\nexport const closing = omission({\n body,\n caption: headOrColgroupOrCaption,\n colgroup: headOrColgroupOrCaption,\n dd,\n dt,\n head: headOrColgroupOrCaption,\n html,\n li,\n optgroup,\n option,\n p,\n rp: rubyElement,\n rt: rubyElement,\n tbody,\n td: cells,\n tfoot,\n th: cells,\n thead,\n tr\n})\n\n/**\n * Macro for `</head>`, `</colgroup>`, and `</caption>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction headOrColgroupOrCaption(_, index, parent) {\n const next = siblingAfter(parent, index, true)\n return (\n !next ||\n (next.type !== 'comment' &&\n !(next.type === 'text' && whitespace(next.value.charAt(0))))\n )\n}\n\n/**\n * Whether to omit `</html>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction html(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</body>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction body(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</p>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction p(_, index, parent) {\n const next = siblingAfter(parent, index)\n return next\n ? next.type === 'element' &&\n (next.tagName === 'address' ||\n next.tagName === 'article' ||\n next.tagName === 'aside' ||\n next.tagName === 'blockquote' ||\n next.tagName === 'details' ||\n next.tagName === 'div' ||\n next.tagName === 'dl' ||\n next.tagName === 'fieldset' ||\n next.tagName === 'figcaption' ||\n next.tagName === 'figure' ||\n next.tagName === 'footer' ||\n next.tagName === 'form' ||\n next.tagName === 'h1' ||\n next.tagName === 'h2' ||\n next.tagName === 'h3' ||\n next.tagName === 'h4' ||\n next.tagName === 'h5' ||\n next.tagName === 'h6' ||\n next.tagName === 'header' ||\n next.tagName === 'hgroup' ||\n next.tagName === 'hr' ||\n next.tagName === 'main' ||\n next.tagName === 'menu' ||\n next.tagName === 'nav' ||\n next.tagName === 'ol' ||\n next.tagName === 'p' ||\n next.tagName === 'pre' ||\n next.tagName === 'section' ||\n next.tagName === 'table' ||\n next.tagName === 'ul')\n : !parent ||\n // Confusing parent.\n !(\n parent.type === 'element' &&\n (parent.tagName === 'a' ||\n parent.tagName === 'audio' ||\n parent.tagName === 'del' ||\n parent.tagName === 'ins' ||\n parent.tagName === 'map' ||\n parent.tagName === 'noscript' ||\n parent.tagName === 'video')\n )\n}\n\n/**\n * Whether to omit `</li>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction li(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'li')\n}\n\n/**\n * Whether to omit `</dt>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dt(_, index, parent) {\n const next = siblingAfter(parent, index)\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd')\n )\n}\n\n/**\n * Whether to omit `</dd>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dd(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd'))\n )\n}\n\n/**\n * Whether to omit `</rt>` or `</rp>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction rubyElement(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'rp' || next.tagName === 'rt'))\n )\n}\n\n/**\n * Whether to omit `</optgroup>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction optgroup(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'optgroup')\n}\n\n/**\n * Whether to omit `</option>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction option(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'option' || next.tagName === 'optgroup'))\n )\n}\n\n/**\n * Whether to omit `</thead>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction thead(_, index, parent) {\n const next = siblingAfter(parent, index)\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot')\n )\n}\n\n/**\n * Whether to omit `</tbody>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tbody(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot'))\n )\n}\n\n/**\n * Whether to omit `</tfoot>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tfoot(_, index, parent) {\n return !siblingAfter(parent, index)\n}\n\n/**\n * Whether to omit `</tr>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tr(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'tr')\n}\n\n/**\n * Whether to omit `</td>` or `</th>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction cells(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'td' || next.tagName === 'th'))\n )\n}\n","/**\n * @import {Element, Parents} from 'hast'\n */\n\nimport {whitespace} from 'hast-util-whitespace'\nimport {siblingAfter, siblingBefore} from './util/siblings.js'\nimport {closing} from './closing.js'\nimport {omission} from './omission.js'\n\nexport const opening = omission({\n body,\n colgroup,\n head,\n html,\n tbody\n})\n\n/**\n * Whether to omit `<html>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction html(node) {\n const head = siblingAfter(node, -1)\n return !head || head.type !== 'comment'\n}\n\n/**\n * Whether to omit `<head>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction head(node) {\n /** @type {Set<string>} */\n const seen = new Set()\n\n // Whether `srcdoc` or not,\n // make sure the content model at least doesn’t have too many `base`s/`title`s.\n for (const child of node.children) {\n if (\n child.type === 'element' &&\n (child.tagName === 'base' || child.tagName === 'title')\n ) {\n if (seen.has(child.tagName)) return false\n seen.add(child.tagName)\n }\n }\n\n // “May be omitted if the element is empty,\n // or if the first thing inside the head element is an element.”\n const child = node.children[0]\n return !child || child.type === 'element'\n}\n\n/**\n * Whether to omit `<body>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction body(node) {\n const head = siblingAfter(node, -1, true)\n\n return (\n !head ||\n (head.type !== 'comment' &&\n !(head.type === 'text' && whitespace(head.value.charAt(0))) &&\n !(\n head.type === 'element' &&\n (head.tagName === 'meta' ||\n head.tagName === 'link' ||\n head.tagName === 'script' ||\n head.tagName === 'style' ||\n head.tagName === 'template')\n ))\n )\n}\n\n/**\n * Whether to omit `<colgroup>`.\n * The spec describes some logic for the opening tag, but it’s easier to\n * implement in the closing tag, to the same effect, so we handle it there\n * instead.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction colgroup(node, index, parent) {\n const previous = siblingBefore(parent, index)\n const head = siblingAfter(node, -1, true)\n\n // Previous colgroup was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n previous.tagName === 'colgroup' &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'col')\n}\n\n/**\n * Whether to omit `<tbody>`.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction tbody(node, index, parent) {\n const previous = siblingBefore(parent, index)\n const head = siblingAfter(node, -1)\n\n // Previous table section was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n (previous.tagName === 'thead' || previous.tagName === 'tbody') &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'tr')\n}\n","/**\n * @import {Element, Parents, Properties} from 'hast'\n * @import {State} from '../index.js'\n */\n\nimport {ccount} from 'ccount'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {find, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringifyEntities} from 'stringify-entities'\nimport {closing} from '../omission/closing.js'\nimport {opening} from '../omission/opening.js'\n\n/**\n * Maps of subsets.\n *\n * Each value is a matrix of tuples.\n * The value at `0` causes parse errors, the value at `1` is valid.\n * Of both, the value at `0` is unsafe, and the value at `1` is safe.\n *\n * @type {Record<'double' | 'name' | 'single' | 'unquoted', Array<[Array<string>, Array<string>]>>}\n */\nconst constants = {\n // See: <https://html.spec.whatwg.org/#attribute-name-state>.\n name: [\n ['\\t\\n\\f\\r &/=>'.split(''), '\\t\\n\\f\\r \"&\\'/=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'/<=>'.split(''), '\\0\\t\\n\\f\\r \"&\\'/<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(unquoted)-state>.\n unquoted: [\n ['\\t\\n\\f\\r &>'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'<=>`'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(single-quoted)-state>.\n single: [\n [\"&'\".split(''), '\"&\\'`'.split('')],\n [\"\\0&'\".split(''), '\\0\"&\\'`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(double-quoted)-state>.\n double: [\n ['\"&'.split(''), '\"&\\'`'.split('')],\n ['\\0\"&'.split(''), '\\0\"&\\'`'.split('')]\n ]\n}\n\n/**\n * Serialize an element node.\n *\n * @param {Element} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function element(node, index, parent, state) {\n const schema = state.schema\n const omit = schema.space === 'svg' ? false : state.settings.omitOptionalTags\n let selfClosing =\n schema.space === 'svg'\n ? state.settings.closeEmptyElements\n : state.settings.voids.includes(node.tagName.toLowerCase())\n /** @type {Array<string>} */\n const parts = []\n /** @type {string} */\n let last\n\n if (schema.space === 'html' && node.tagName === 'svg') {\n state.schema = svg\n }\n\n const attributes = serializeAttributes(state, node.properties)\n\n const content = state.all(\n schema.space === 'html' && node.tagName === 'template' ? node.content : node\n )\n\n state.schema = schema\n\n // If the node is categorised as void, but it has children, remove the\n // categorisation.\n // This enables for example `menuitem`s, which are void in W3C HTML but not\n // void in WHATWG HTML, to be stringified properly.\n // Note: `menuitem` has since been removed from the HTML spec, and so is no\n // longer void.\n if (content) selfClosing = false\n\n if (attributes || !omit || !opening(node, index, parent)) {\n parts.push('<', node.tagName, attributes ? ' ' + attributes : '')\n\n if (\n selfClosing &&\n (schema.space === 'svg' || state.settings.closeSelfClosing)\n ) {\n last = attributes.charAt(attributes.length - 1)\n if (\n !state.settings.tightSelfClosing ||\n last === '/' ||\n (last && last !== '\"' && last !== \"'\")\n ) {\n parts.push(' ')\n }\n\n parts.push('/')\n }\n\n parts.push('>')\n }\n\n parts.push(content)\n\n if (!selfClosing && (!omit || !closing(node, index, parent))) {\n parts.push('</' + node.tagName + '>')\n }\n\n return parts.join('')\n}\n\n/**\n * @param {State} state\n * @param {Properties | null | undefined} properties\n * @returns {string}\n */\nfunction serializeAttributes(state, properties) {\n /** @type {Array<string>} */\n const values = []\n let index = -1\n /** @type {string} */\n let key\n\n if (properties) {\n for (key in properties) {\n if (properties[key] !== null && properties[key] !== undefined) {\n const value = serializeAttribute(state, key, properties[key])\n if (value) values.push(value)\n }\n }\n }\n\n while (++index < values.length) {\n const last = state.settings.tightAttributes\n ? values[index].charAt(values[index].length - 1)\n : undefined\n\n // In tight mode, don’t add a space after quoted attributes.\n if (index !== values.length - 1 && last !== '\"' && last !== \"'\") {\n values[index] += ' '\n }\n }\n\n return values.join('')\n}\n\n/**\n * @param {State} state\n * @param {string} key\n * @param {Properties[keyof Properties]} value\n * @returns {string}\n */\nfunction serializeAttribute(state, key, value) {\n const info = find(state.schema, key)\n const x =\n state.settings.allowParseErrors && state.schema.space === 'html' ? 0 : 1\n const y = state.settings.allowDangerousCharacters ? 0 : 1\n let quote = state.quote\n /** @type {string | undefined} */\n let result\n\n if (info.overloadedBoolean && (value === info.attribute || value === '')) {\n value = true\n } else if (\n (info.boolean || info.overloadedBoolean) &&\n (typeof value !== 'string' || value === info.attribute || value === '')\n ) {\n value = Boolean(value)\n }\n\n if (\n value === null ||\n value === undefined ||\n value === false ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return ''\n }\n\n const name = stringifyEntities(\n info.attribute,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: constants.name[x][y]\n })\n )\n\n // No value.\n // There is currently only one boolean property in SVG: `[download]` on\n // `<a>`.\n // This property does not seem to work in browsers (Firefox, Safari, Chrome),\n // so I can’t test if dropping the value works.\n // But I assume that it should:\n //\n // ```html\n // <!doctype html>\n // <svg viewBox=\"0 0 100 100\">\n // <a href=https://example.com download>\n // <circle cx=50 cy=40 r=35 />\n // </a>\n // </svg>\n // ```\n //\n // See: <https://github.com/wooorm/property-information/blob/main/lib/svg.js>\n if (value === true) return name\n\n // `spaces` doesn’t accept a second argument, but it’s given here just to\n // keep the code cleaner.\n value = Array.isArray(value)\n ? (info.commaSeparated ? commas : spaces)(value, {\n padLeft: !state.settings.tightCommaSeparatedLists\n })\n : String(value)\n\n if (state.settings.collapseEmptyAttributes && !value) return name\n\n // Check unquoted value.\n if (state.settings.preferUnquoted) {\n result = stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n attribute: true,\n subset: constants.unquoted[x][y]\n })\n )\n }\n\n // If we don’t want unquoted, or if `value` contains character references when\n // unquoted…\n if (result !== value) {\n // If the alternative is less common than `quote`, switch.\n if (\n state.settings.quoteSmart &&\n ccount(value, quote) > ccount(value, state.alternative)\n ) {\n quote = state.alternative\n }\n\n result =\n quote +\n stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: (quote === \"'\" ? constants.single : constants.double)[x][y],\n attribute: true\n })\n ) +\n quote\n }\n\n // Don’t add a `=` for unquoted empties.\n return name + (result ? '=' + result : result)\n}\n","/**\n * @import {Parents, Text} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {State} from '../index.js'\n */\n\nimport {stringifyEntities} from 'stringify-entities'\n\n// Declare array as variable so it can be cached by `stringifyEntities`\nconst textEntitySubset = ['<', '&']\n\n/**\n * Serialize a text node.\n *\n * @param {Raw | Text} node\n * Node to handle.\n * @param {number | undefined} _\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function text(node, _, parent, state) {\n // Check if content of `node` should be escaped.\n return parent &&\n parent.type === 'element' &&\n (parent.tagName === 'script' || parent.tagName === 'style')\n ? node.value\n : stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: textEntitySubset\n })\n )\n}\n","/**\n * @import {Parents} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {State} from '../index.js'\n */\n\nimport {text} from './text.js'\n\n/**\n * Serialize a raw node.\n *\n * @param {Raw} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function raw(node, index, parent, state) {\n return state.settings.allowDangerousHtml\n ? node.value\n : text(node, index, parent, state)\n}\n","/**\n * @import {Parents, Root} from 'hast'\n * @import {State} from '../index.js'\n */\n\n/**\n * Serialize a root.\n *\n * @param {Root} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function root(node, _1, _2, state) {\n return state.all(node)\n}\n","/**\n * @import {Nodes, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\nimport {zwitch} from 'zwitch'\nimport {comment} from './comment.js'\nimport {doctype} from './doctype.js'\nimport {element} from './element.js'\nimport {raw} from './raw.js'\nimport {root} from './root.js'\nimport {text} from './text.js'\n\n/**\n * @type {(node: Nodes, index: number | undefined, parent: Parents | undefined, state: State) => string}\n */\nexport const handle = zwitch('type', {\n invalid,\n unknown,\n handlers: {comment, doctype, element, raw, root, text}\n})\n\n/**\n * Fail when a non-node is found in the tree.\n *\n * @param {unknown} node\n * Unknown value.\n * @returns {never}\n * Never.\n */\nfunction invalid(node) {\n throw new Error('Expected node, not `' + node + '`')\n}\n\n/**\n * Fail when a node with an unknown type is found in the tree.\n *\n * @param {unknown} node_\n * Unknown node.\n * @returns {never}\n * Never.\n */\nfunction unknown(node_) {\n // `type` is guaranteed by runtime JS.\n const node = /** @type {Nodes} */ (node_)\n throw new Error('Cannot compile unknown node `' + node.type + '`')\n}\n","/**\n * @import {Nodes, Parents, RootContent} from 'hast'\n * @import {Schema} from 'property-information'\n * @import {Options as StringifyEntitiesOptions} from 'stringify-entities'\n */\n\n/**\n * @typedef {Omit<StringifyEntitiesOptions, 'attribute' | 'escapeOnly' | 'subset'>} CharacterReferences\n *\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [allowDangerousCharacters=false]\n * Do not encode some characters which cause XSS vulnerabilities in older\n * browsers (default: `false`).\n *\n * > ⚠️ **Danger**: only set this if you completely trust the content.\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Allow `raw` nodes and insert them as raw HTML (default: `false`).\n *\n * When `false`, `Raw` nodes are encoded.\n *\n * > ⚠️ **Danger**: only set this if you completely trust the content.\n * @property {boolean | null | undefined} [allowParseErrors=false]\n * Do not encode characters which cause parse errors (even though they work),\n * to save bytes (default: `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [bogusComments=false]\n * Use “bogus comments” instead of comments to save byes: `<?charlie>`\n * instead of `<!--charlie-->` (default: `false`).\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {CharacterReferences | null | undefined} [characterReferences]\n * Configure how to serialize character references (optional).\n * @property {boolean | null | undefined} [closeEmptyElements=false]\n * Close SVG elements without any content with slash (`/`) on the opening tag\n * instead of an end tag: `<circle />` instead of `<circle></circle>`\n * (default: `false`).\n *\n * See `tightSelfClosing` to control whether a space is used before the\n * slash.\n *\n * Not used in the HTML space.\n * @property {boolean | null | undefined} [closeSelfClosing=false]\n * Close self-closing nodes with an extra slash (`/`): `<img />` instead of\n * `<img>` (default: `false`).\n *\n * See `tightSelfClosing` to control whether a space is used before the\n * slash.\n *\n * Not used in the SVG space.\n * @property {boolean | null | undefined} [collapseEmptyAttributes=false]\n * Collapse empty attributes: get `class` instead of `class=\"\"` (default:\n * `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: boolean attributes (such as `hidden`) are always collapsed.\n * @property {boolean | null | undefined} [omitOptionalTags=false]\n * Omit optional opening and closing tags (default: `false`).\n *\n * For example, in `<ol><li>one</li><li>two</li></ol>`, both `</li>` closing\n * tags can be omitted.\n * The first because it’s followed by another `li`, the last because it’s\n * followed by nothing.\n *\n * Not used in the SVG space.\n * @property {boolean | null | undefined} [preferUnquoted=false]\n * Leave attributes unquoted if that results in less bytes (default: `false`).\n *\n * Not used in the SVG space.\n * @property {boolean | null | undefined} [quoteSmart=false]\n * Use the other quote if that results in less bytes (default: `false`).\n * @property {Quote | null | undefined} [quote='\"']\n * Preferred quote to use (default: `'\"'`).\n * @property {Space | null | undefined} [space='html']\n * When an `<svg>` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it (default: `'html'`).\n *\n * > 👉 **Note**: hast is not XML.\n * > It supports SVG as embedded in HTML.\n * > It does not support the features available in XML.\n * > Passing SVG might break but fragments of modern SVG should be fine.\n * > Use [`xast`][xast] if you need to support SVG as XML.\n * @property {boolean | null | undefined} [tightAttributes=false]\n * Join attributes together, without whitespace, if possible: get\n * `class=\"a b\"title=\"c d\"` instead of `class=\"a b\" title=\"c d\"` to save\n * bytes (default: `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [tightCommaSeparatedLists=false]\n * Join known comma-separated attribute values with just a comma (`,`),\n * instead of padding them on the right as well (`,␠`, where `␠` represents a\n * space) (default: `false`).\n * @property {boolean | null | undefined} [tightDoctype=false]\n * Drop unneeded spaces in doctypes: `<!doctypehtml>` instead of\n * `<!doctype html>` to save bytes (default: `false`).\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [tightSelfClosing=false]\n * Do not use an extra space when closing self-closing elements: `<img/>`\n * instead of `<img />` (default: `false`).\n *\n * > 👉 **Note**: only used if `closeSelfClosing: true` or\n * > `closeEmptyElements: true`.\n * @property {boolean | null | undefined} [upperDoctype=false]\n * Use a `<!DOCTYPE…` instead of `<!doctype…` (default: `false`).\n *\n * Useless except for XHTML.\n * @property {ReadonlyArray<string> | null | undefined} [voids]\n * Tag names of elements to serialize without closing tag (default: `html-void-elements`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass this, because\n * > hast is not for XML, and HTML will not add more void elements.\n *\n * @typedef {'\"' | \"'\"} Quote\n * HTML quotes for attribute values.\n *\n * @typedef {Omit<Required<{[key in keyof Options]: Exclude<Options[key], null | undefined>}>, 'space' | 'quote'>} Settings\n *\n * @typedef {'html' | 'svg'} Space\n * Namespace.\n *\n * @typedef State\n * Info passed around about the current state.\n * @property {(node: Parents | undefined) => string} all\n * Serialize the children of a parent node.\n * @property {Quote} alternative\n * Alternative quote.\n * @property {(node: Nodes, index: number | undefined, parent: Parents | undefined) => string} one\n * Serialize one node.\n * @property {Quote} quote\n * Preferred quote.\n * @property {Schema} schema\n * Current schema.\n * @property {Settings} settings\n * User configuration.\n */\n\nimport {htmlVoidElements} from 'html-void-elements'\nimport {html, svg} from 'property-information'\nimport {handle} from './handle/index.js'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/** @type {CharacterReferences} */\nconst emptyCharacterReferences = {}\n\n/** @type {Array<never>} */\nconst emptyChildren = []\n\n/**\n * Serialize hast as HTML.\n *\n * @param {Array<RootContent> | Nodes} tree\n * Tree to serialize.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized HTML.\n */\nexport function toHtml(tree, options) {\n const options_ = options || emptyOptions\n const quote = options_.quote || '\"'\n const alternative = quote === '\"' ? \"'\" : '\"'\n\n if (quote !== '\"' && quote !== \"'\") {\n throw new Error('Invalid quote `' + quote + '`, expected `\\'` or `\"`')\n }\n\n /** @type {State} */\n const state = {\n one,\n all,\n settings: {\n omitOptionalTags: options_.omitOptionalTags || false,\n allowParseErrors: options_.allowParseErrors || false,\n allowDangerousCharacters: options_.allowDangerousCharacters || false,\n quoteSmart: options_.quoteSmart || false,\n preferUnquoted: options_.preferUnquoted || false,\n tightAttributes: options_.tightAttributes || false,\n upperDoctype: options_.upperDoctype || false,\n tightDoctype: options_.tightDoctype || false,\n bogusComments: options_.bogusComments || false,\n tightCommaSeparatedLists: options_.tightCommaSeparatedLists || false,\n tightSelfClosing: options_.tightSelfClosing || false,\n collapseEmptyAttributes: options_.collapseEmptyAttributes || false,\n allowDangerousHtml: options_.allowDangerousHtml || false,\n voids: options_.voids || htmlVoidElements,\n characterReferences:\n options_.characterReferences || emptyCharacterReferences,\n closeSelfClosing: options_.closeSelfClosing || false,\n closeEmptyElements: options_.closeEmptyElements || false\n },\n schema: options_.space === 'svg' ? svg : html,\n quote,\n alternative\n }\n\n return state.one(\n Array.isArray(tree) ? {type: 'root', children: tree} : tree,\n undefined,\n undefined\n )\n}\n\n/**\n * Serialize a node.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Nodes} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {string}\n * Serialized node.\n */\nfunction one(node, index, parent) {\n return handle(node, index, parent, this)\n}\n\n/**\n * Serialize all children of `parent`.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Parents | undefined} parent\n * Parent whose children to serialize.\n * @returns {string}\n */\nexport function all(parent) {\n /** @type {Array<string>} */\n const results = []\n const children = (parent && parent.children) || emptyChildren\n let index = -1\n\n while (++index < children.length) {\n results[index] = this.one(children[index], index, parent)\n }\n\n return results.join('')\n}\n","import { ShikiError as ShikiError$1 } from '@shikijs/types';\nexport * from '@shikijs/types';\nimport { FontStyle, INITIAL, EncodedTokenMetadata, Registry as Registry$1, Theme } from '@shikijs/vscode-textmate';\nimport { toHtml } from 'hast-util-to-html';\n\nfunction resolveColorReplacements(theme, options) {\n const replacements = typeof theme === \"string\" ? {} : { ...theme.colorReplacements };\n const themeName = typeof theme === \"string\" ? theme : theme.name;\n for (const [key, value] of Object.entries(options?.colorReplacements || {})) {\n if (typeof value === \"string\")\n replacements[key] = value;\n else if (key === themeName)\n Object.assign(replacements, value);\n }\n return replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n if (!color)\n return color;\n return replacements?.[color?.toLowerCase()] || color;\n}\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\nasync function normalizeGetter(p) {\n return Promise.resolve(typeof p === \"function\" ? p() : p).then((r) => r.default || r);\n}\nfunction isPlainLang(lang) {\n return !lang || [\"plaintext\", \"txt\", \"text\", \"plain\"].includes(lang);\n}\nfunction isSpecialLang(lang) {\n return lang === \"ansi\" || isPlainLang(lang);\n}\nfunction isNoneTheme(theme) {\n return theme === \"none\";\n}\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\n\nfunction addClassToHast(node, className) {\n if (!className)\n return node;\n node.properties ||= {};\n node.properties.class ||= [];\n if (typeof node.properties.class === \"string\")\n node.properties.class = node.properties.class.split(/\\s+/g);\n if (!Array.isArray(node.properties.class))\n node.properties.class = [];\n const targets = Array.isArray(className) ? className : className.split(/\\s+/g);\n for (const c of targets) {\n if (c && !node.properties.class.includes(c))\n node.properties.class.push(c);\n }\n return node;\n}\n\nfunction splitLines(code, preserveEnding = false) {\n if (code.length === 0) {\n return [[\"\", 0]];\n }\n const parts = code.split(/(\\r?\\n)/g);\n let index = 0;\n const lines = [];\n for (let i = 0; i < parts.length; i += 2) {\n const line = preserveEnding ? parts[i] + (parts[i + 1] || \"\") : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\nfunction createPositionConverter(code) {\n const lines = splitLines(code, true).map(([line]) => line);\n function indexToPos(index) {\n if (index === code.length) {\n return {\n line: lines.length - 1,\n character: lines[lines.length - 1].length\n };\n }\n let character = index;\n let line = 0;\n for (const lineText of lines) {\n if (character < lineText.length)\n break;\n character -= lineText.length;\n line++;\n }\n return { line, character };\n }\n function posToIndex(line, character) {\n let index = 0;\n for (let i = 0; i < line; i++)\n index += lines[i].length;\n index += character;\n return index;\n }\n return {\n lines,\n indexToPos,\n posToIndex\n };\n}\nfunction guessEmbeddedLanguages(code, _lang, highlighter) {\n const langs = /* @__PURE__ */ new Set();\n for (const match of code.matchAll(/:?lang=[\"']([^\"']+)[\"']/g)) {\n const lang = match[1].toLowerCase().trim();\n if (lang)\n langs.add(lang);\n }\n for (const match of code.matchAll(/(?:```|~~~)([\\w-]+)/g)) {\n const lang = match[1].toLowerCase().trim();\n if (lang)\n langs.add(lang);\n }\n for (const match of code.matchAll(/\\\\begin\\{([\\w-]+)\\}/g)) {\n const lang = match[1].toLowerCase().trim();\n if (lang)\n langs.add(lang);\n }\n for (const match of code.matchAll(/<script\\s+(?:type|lang)=[\"']([^\"']+)[\"']/gi)) {\n const fullType = match[1].toLowerCase().trim();\n const lang = fullType.includes(\"/\") ? fullType.split(\"/\").pop() : fullType;\n if (lang)\n langs.add(lang);\n }\n if (!highlighter)\n return Array.from(langs);\n const bundle = highlighter.getBundledLanguages();\n return Array.from(langs).filter((l) => l && bundle[l]);\n}\n\nconst DEFAULT_COLOR_LIGHT_DARK = \"light-dark()\";\nconst COLOR_KEYS = [\"color\", \"background-color\"];\n\nfunction splitToken(token, offsets) {\n let lastOffset = 0;\n const tokens = [];\n for (const offset of offsets) {\n if (offset > lastOffset) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset, offset),\n offset: token.offset + lastOffset\n });\n }\n lastOffset = offset;\n }\n if (lastOffset < token.content.length) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset),\n offset: token.offset + lastOffset\n });\n }\n return tokens;\n}\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array.from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints)).sort((a, b) => a - b);\n if (!sorted.length)\n return tokens;\n return tokens.map((line) => {\n return line.flatMap((token) => {\n const breakpointsInToken = sorted.filter((i) => token.offset < i && i < token.offset + token.content.length).map((i) => i - token.offset).sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\nfunction flatTokenVariants(merged, variantsOrder, cssVariablePrefix, defaultColor, colorsRendering = \"css-vars\") {\n const token = {\n content: merged.content,\n explanation: merged.explanation,\n offset: merged.offset\n };\n const styles = variantsOrder.map((t) => getTokenStyleObject(merged.variants[t]));\n const styleKeys = new Set(styles.flatMap((t) => Object.keys(t)));\n const mergedStyles = {};\n const varKey = (idx, key) => {\n const keyName = key === \"color\" ? \"\" : key === \"background-color\" ? \"-bg\" : `-${key}`;\n return cssVariablePrefix + variantsOrder[idx] + (key === \"color\" ? \"\" : keyName);\n };\n styles.forEach((cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || \"inherit\";\n if (idx === 0 && defaultColor && COLOR_KEYS.includes(key)) {\n if (defaultColor === DEFAULT_COLOR_LIGHT_DARK && styles.length > 1) {\n const lightIndex = variantsOrder.findIndex((t) => t === \"light\");\n const darkIndex = variantsOrder.findIndex((t) => t === \"dark\");\n if (lightIndex === -1 || darkIndex === -1)\n throw new ShikiError$1('When using `defaultColor: \"light-dark()\"`, you must provide both `light` and `dark` themes');\n const lightValue = styles[lightIndex][key] || \"inherit\";\n const darkValue = styles[darkIndex][key] || \"inherit\";\n mergedStyles[key] = `light-dark(${lightValue}, ${darkValue})`;\n if (colorsRendering === \"css-vars\")\n mergedStyles[varKey(idx, key)] = value;\n } else {\n mergedStyles[key] = value;\n }\n } else {\n if (colorsRendering === \"css-vars\")\n mergedStyles[varKey(idx, key)] = value;\n }\n }\n });\n token.htmlStyle = mergedStyles;\n return token;\n}\nfunction getTokenStyleObject(token) {\n const styles = {};\n if (token.color)\n styles.color = token.color;\n if (token.bgColor)\n styles[\"background-color\"] = token.bgColor;\n if (token.fontStyle) {\n if (token.fontStyle & FontStyle.Italic)\n styles[\"font-style\"] = \"italic\";\n if (token.fontStyle & FontStyle.Bold)\n styles[\"font-weight\"] = \"bold\";\n const decorations = [];\n if (token.fontStyle & FontStyle.Underline)\n decorations.push(\"underline\");\n if (token.fontStyle & FontStyle.Strikethrough)\n decorations.push(\"line-through\");\n if (decorations.length)\n styles[\"text-decoration\"] = decorations.join(\" \");\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n if (typeof token === \"string\")\n return token;\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(\";\");\n}\n\nconst _grammarStateMap = /* @__PURE__ */ new WeakMap();\nfunction setLastGrammarStateToMap(keys, state) {\n _grammarStateMap.set(keys, state);\n}\nfunction getLastGrammarStateFromMap(keys) {\n return _grammarStateMap.get(keys);\n}\nclass GrammarState {\n /**\n * Theme to Stack mapping\n */\n _stacks = {};\n lang;\n get themes() {\n return Object.keys(this._stacks);\n }\n get theme() {\n return this.themes[0];\n }\n get _stack() {\n return this._stacks[this.theme];\n }\n /**\n * Static method to create a initial grammar state.\n */\n static initial(lang, themes) {\n return new GrammarState(\n Object.fromEntries(toArray(themes).map((theme) => [theme, INITIAL])),\n lang\n );\n }\n constructor(...args) {\n if (args.length === 2) {\n const [stacksMap, lang] = args;\n this.lang = lang;\n this._stacks = stacksMap;\n } else {\n const [stack, lang, theme] = args;\n this.lang = lang;\n this._stacks = { [theme]: stack };\n }\n }\n /**\n * Get the internal stack object.\n * @internal\n */\n getInternalStack(theme = this.theme) {\n return this._stacks[theme];\n }\n getScopes(theme = this.theme) {\n return getScopes(this._stacks[theme]);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n themes: this.themes,\n scopes: this.getScopes()\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = /* @__PURE__ */ new Set();\n function pushScope(stack2) {\n if (visited.has(stack2))\n return;\n visited.add(stack2);\n const name = stack2?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack2.parent)\n pushScope(stack2.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state, theme) {\n if (!(state instanceof GrammarState))\n throw new ShikiError$1(\"Invalid grammar state\");\n return state.getInternalStack(theme);\n}\n\nfunction transformerDecorations() {\n const map = /* @__PURE__ */ new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n let normalizePosition = function(p) {\n if (typeof p === \"number\") {\n if (p < 0 || p > shiki.source.length)\n throw new ShikiError$1(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n return {\n ...converter.indexToPos(p),\n offset: p\n };\n } else {\n const line = converter.lines[p.line];\n if (line === void 0)\n throw new ShikiError$1(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n let character = p.character;\n if (character < 0)\n character = line.length + character;\n if (character < 0 || character > line.length)\n throw new ShikiError$1(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n return {\n ...p,\n character,\n offset: converter.posToIndex(p.line, character)\n };\n }\n };\n const converter = createPositionConverter(shiki.source);\n const decorations = (shiki.options.decorations || []).map((d) => ({\n ...d,\n start: normalizePosition(d.start),\n end: normalizePosition(d.end)\n }));\n verifyIntersections(decorations);\n map.set(shiki.meta, {\n decorations,\n converter,\n source: shiki.source\n });\n }\n return map.get(shiki.meta);\n }\n return {\n name: \"shiki:decorations\",\n tokens(tokens) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const breakpoints = ctx.decorations.flatMap((d) => [d.start.offset, d.end.offset]);\n const splitted = splitTokens(tokens, breakpoints);\n return splitted;\n },\n code(codeEl) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const lines = Array.from(codeEl.children).filter((i) => i.type === \"element\" && i.tagName === \"span\");\n if (lines.length !== ctx.converter.lines.length)\n throw new ShikiError$1(`Number of lines in code element (${lines.length}) does not match the number of lines in the source (${ctx.converter.lines.length}). Failed to apply decorations.`);\n function applyLineSection(line, start, end, decoration) {\n const lineEl = lines[line];\n let text = \"\";\n let startIndex = -1;\n let endIndex = -1;\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError$1(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError$1(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, \"line\");\n } else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === \"element\") {\n applyDecoration(children[0], decoration, \"token\");\n } else {\n const wrapper = {\n type: \"element\",\n tagName: \"span\",\n properties: {},\n children\n };\n applyDecoration(wrapper, decoration, \"wrapper\");\n lineEl.children.splice(startIndex, children.length, wrapper);\n }\n }\n function applyLine(line, decoration) {\n lines[line] = applyDecoration(lines[line], decoration, \"line\");\n }\n function applyDecoration(el, decoration, type) {\n const properties = decoration.properties || {};\n const transform = decoration.transform || ((i) => i);\n el.tagName = decoration.tagName || \"span\";\n el.properties = {\n ...el.properties,\n ...properties,\n class: el.properties.class\n };\n if (decoration.properties?.class)\n addClassToHast(el, decoration.properties.class);\n el = transform(el, type) || el;\n return el;\n }\n const lineApplies = [];\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.offset || a.end.offset - b.end.offset);\n for (const decoration of sorted) {\n const { start, end } = decoration;\n if (start.line === end.line) {\n applyLineSection(start.line, start.character, end.character, decoration);\n } else if (start.line < end.line) {\n applyLineSection(start.line, start.character, Number.POSITIVE_INFINITY, decoration);\n for (let i = start.line + 1; i < end.line; i++)\n lineApplies.unshift(() => applyLine(i, decoration));\n applyLineSection(end.line, 0, end.character, decoration);\n }\n }\n lineApplies.forEach((i) => i());\n }\n };\n}\nfunction verifyIntersections(items) {\n for (let i = 0; i < items.length; i++) {\n const foo = items[i];\n if (foo.start.offset > foo.end.offset)\n throw new ShikiError$1(`Invalid decoration range: ${JSON.stringify(foo.start)} - ${JSON.stringify(foo.end)}`);\n for (let j = i + 1; j < items.length; j++) {\n const bar = items[j];\n const isFooHasBarStart = foo.start.offset <= bar.start.offset && bar.start.offset < foo.end.offset;\n const isFooHasBarEnd = foo.start.offset < bar.end.offset && bar.end.offset <= foo.end.offset;\n const isBarHasFooStart = bar.start.offset <= foo.start.offset && foo.start.offset < bar.end.offset;\n const isBarHasFooEnd = bar.start.offset < foo.end.offset && foo.end.offset <= bar.end.offset;\n if (isFooHasBarStart || isFooHasBarEnd || isBarHasFooStart || isBarHasFooEnd) {\n if (isFooHasBarStart && isFooHasBarEnd)\n continue;\n if (isBarHasFooStart && isBarHasFooEnd)\n continue;\n if (isBarHasFooStart && foo.start.offset === foo.end.offset)\n continue;\n if (isFooHasBarEnd && bar.start.offset === bar.end.offset)\n continue;\n throw new ShikiError$1(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n}\nfunction stringify(el) {\n if (el.type === \"text\")\n return el.value;\n if (el.type === \"element\")\n return el.children.map(stringify).join(\"\");\n return \"\";\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations()\n];\nfunction getTransformers(options) {\n const transformers = sortTransformersByEnforcement(options.transformers || []);\n return [\n ...transformers.pre,\n ...transformers.normal,\n ...transformers.post,\n ...builtInTransformers\n ];\n}\nfunction sortTransformersByEnforcement(transformers) {\n const pre = [];\n const post = [];\n const normal = [];\n for (const transformer of transformers) {\n switch (transformer.enforce) {\n case \"pre\":\n pre.push(transformer);\n break;\n case \"post\":\n post.push(transformer);\n break;\n default:\n normal.push(transformer);\n }\n }\n return { pre, post, normal };\n}\n\n// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 8: \"hidden\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B\", position);\n if (nextEscape !== -1) {\n if (value[nextEscape + 1] === \"[\") {\n const nextClose = value.indexOf(\"m\", nextEscape);\n if (nextClose !== -1) {\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n }\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence) {\n const colorMode = sequence.shift();\n if (colorMode === \"2\") {\n const rgb = sequence.splice(0, 3).map((x) => Number.parseInt(x));\n if (rgb.length !== 3 || rgb.some((x) => Number.isNaN(x)))\n return;\n return {\n type: \"rgb\",\n rgb\n };\n } else if (colorMode === \"5\") {\n const index = sequence.shift();\n if (index) {\n return { type: \"table\", index: Number(index) };\n }\n }\n}\nfunction parseSequence(sequence) {\n const commands = [];\n while (sequence.length > 0) {\n const code = sequence.shift();\n if (!code)\n continue;\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n if (decoration === \"dim\") {\n commands.push({\n type: \"resetDecoration\",\n value: \"bold\"\n });\n }\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const color = parseColor(sequence);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const color = parseColor(sequence);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt === 53) {\n commands.push({\n type: \"setDecoration\",\n value: \"overline\"\n });\n } else if (codeInt === 55) {\n commands.push({\n type: \"resetDecoration\",\n value: \"overline\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\n\nconst defaultAnsiColors = {\n black: \"#000000\",\n red: \"#cd3131\",\n green: \"#0DBC79\",\n yellow: \"#E5E510\",\n blue: \"#2472C8\",\n magenta: \"#BC3FBC\",\n cyan: \"#11A8CD\",\n white: \"#E5E5E5\",\n brightBlack: \"#666666\",\n brightRed: \"#F14C4C\",\n brightGreen: \"#23D18B\",\n brightYellow: \"#F5F543\",\n brightBlue: \"#3B8EEA\",\n brightMagenta: \"#D670D6\",\n brightCyan: \"#29B8DB\",\n brightWhite: \"#FFFFFF\"\n};\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const ansiPalette = Object.fromEntries(\n namedColors.map((name) => {\n const key = `terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`;\n const themeColor = theme.colors?.[key];\n return [name, themeColor || defaultAnsiColors[name]];\n })\n );\n const colorPalette = createColorPalette(ansiPalette);\n const parser = createAnsiSequenceParser();\n return lines.map(\n (line) => parser.parse(line[0]).map((token) => {\n let color;\n let bgColor;\n if (token.decorations.has(\"reverse\")) {\n color = token.background ? colorPalette.value(token.background) : theme.bg;\n bgColor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n } else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : void 0;\n }\n color = applyColorReplacements(color, colorReplacements);\n bgColor = applyColorReplacements(bgColor, colorReplacements);\n if (token.decorations.has(\"dim\"))\n color = dimColor(color);\n let fontStyle = FontStyle.None;\n if (token.decorations.has(\"bold\"))\n fontStyle |= FontStyle.Bold;\n if (token.decorations.has(\"italic\"))\n fontStyle |= FontStyle.Italic;\n if (token.decorations.has(\"underline\"))\n fontStyle |= FontStyle.Underline;\n if (token.decorations.has(\"strikethrough\"))\n fontStyle |= FontStyle.Strikethrough;\n return {\n content: token.value,\n offset: line[1],\n // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle\n };\n })\n );\n}\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3,8})/i);\n if (hexMatch) {\n const hex = hexMatch[1];\n if (hex.length === 8) {\n const alpha = Math.round(Number.parseInt(hex.slice(6, 8), 16) / 2).toString(16).padStart(2, \"0\");\n return `#${hex.slice(0, 6)}${alpha}`;\n } else if (hex.length === 6) {\n return `#${hex}80`;\n } else if (hex.length === 4) {\n const r = hex[0];\n const g = hex[1];\n const b = hex[2];\n const a = hex[3];\n const alpha = Math.round(Number.parseInt(`${a}${a}`, 16) / 2).toString(16).padStart(2, \"0\");\n return `#${r}${r}${g}${g}${b}${b}${alpha}`;\n } else if (hex.length === 3) {\n const r = hex[0];\n const g = hex[1];\n const b = hex[2];\n return `#${r}${r}${g}${g}${b}${b}80`;\n }\n }\n const cssVarMatch = color.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);\n if (cssVarMatch)\n return `var(${cssVarMatch[1]}-dim)`;\n return color;\n}\n\nfunction codeToTokensBase(internal, code, options = {}) {\n const {\n theme: themeName = internal.getLoadedThemes()[0]\n } = options;\n const lang = internal.resolveLangAlias(options.lang || \"text\");\n if (isPlainLang(lang) || isNoneTheme(themeName))\n return splitLines(code).map((line) => [{ content: line[0], offset: line[1] }]);\n const { theme, colorMap } = internal.setTheme(themeName);\n if (lang === \"ansi\")\n return tokenizeAnsiWithTheme(theme, code, options);\n const _grammar = internal.getLanguage(options.lang || \"text\");\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError$1(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (!options.grammarState.themes.includes(theme.name)) {\n throw new ShikiError$1(`Grammar state themes \"${options.grammarState.themes}\" do not contain highlight theme \"${theme.name}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(...args) {\n if (args.length === 2) {\n return getLastGrammarStateFromMap(args[1]);\n }\n const [internal, code, options = {}] = args;\n const {\n lang = \"text\",\n theme: themeName = internal.getLoadedThemes()[0]\n } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError$1(\"Plain language does not have grammar state\");\n if (lang === \"ansi\")\n throw new ShikiError$1(\"ANSI language does not have grammar state\");\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(\n _tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack,\n _grammar.name,\n theme.name\n );\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const result = _tokenizeWithTheme(code, grammar, theme, colorMap, options);\n const grammarState = new GrammarState(\n result.stateStack,\n grammar.name,\n theme.name\n );\n setLastGrammarStateToMap(result.tokens, grammarState);\n return result.tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const {\n tokenizeMaxLineLength = 0,\n tokenizeTimeLimit = 500\n } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState ? getGrammarStack(options.grammarState, theme.name) ?? INITIAL : options.grammarContextCode != null ? _tokenizeWithTheme(\n options.grammarContextCode,\n grammar,\n theme,\n colorMap,\n {\n ...options,\n grammarState: void 0,\n grammarContextCode: void 0\n }\n ).stateStack : INITIAL;\n let actual = [];\n const final = [];\n for (let i = 0, len = lines.length; i < len; i++) {\n const [line, lineOffset] = lines[i];\n if (line === \"\") {\n actual = [];\n final.push([]);\n continue;\n }\n if (tokenizeMaxLineLength > 0 && line.length >= tokenizeMaxLineLength) {\n actual = [];\n final.push([{\n content: line,\n offset: lineOffset,\n color: \"\",\n fontStyle: 0\n }]);\n continue;\n }\n let resultWithScopes;\n let tokensWithScopes;\n let tokensWithScopesIndex;\n if (options.includeExplanation) {\n resultWithScopes = grammar.tokenizeLine(line, stateStack, tokenizeTimeLimit);\n tokensWithScopes = resultWithScopes.tokens;\n tokensWithScopesIndex = 0;\n }\n const result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n const tokensLength = result.tokens.length / 2;\n for (let j = 0; j < tokensLength; j++) {\n const startIndex = result.tokens[2 * j];\n const nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n if (startIndex === nextStartIndex)\n continue;\n const metadata = result.tokens[2 * j + 1];\n const color = applyColorReplacements(\n colorMap[EncodedTokenMetadata.getForeground(metadata)],\n colorReplacements\n );\n const fontStyle = EncodedTokenMetadata.getFontStyle(metadata);\n const token = {\n content: line.substring(startIndex, nextStartIndex),\n offset: lineOffset + startIndex,\n color,\n fontStyle\n };\n if (options.includeExplanation) {\n const themeSettingsSelectors = [];\n if (options.includeExplanation !== \"scopeName\") {\n for (const setting of theme.settings) {\n let selectors;\n switch (typeof setting.scope) {\n case \"string\":\n selectors = setting.scope.split(/,/).map((scope) => scope.trim());\n break;\n case \"object\":\n selectors = setting.scope;\n break;\n default:\n continue;\n }\n themeSettingsSelectors.push({\n settings: setting,\n selectors: selectors.map((selector) => selector.split(/ /))\n });\n }\n }\n token.explanation = [];\n let offset = 0;\n while (startIndex + offset < nextStartIndex) {\n const tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n const tokenWithScopesText = line.substring(\n tokenWithScopes.startIndex,\n tokenWithScopes.endIndex\n );\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: options.includeExplanation === \"scopeName\" ? explainThemeScopesNameOnly(\n tokenWithScopes.scopes\n ) : explainThemeScopesFull(\n themeSettingsSelectors,\n tokenWithScopes.scopes\n )\n });\n tokensWithScopesIndex += 1;\n }\n }\n actual.push(token);\n }\n final.push(actual);\n actual = [];\n stateStack = result.ruleStack;\n }\n return {\n tokens: final,\n stateStack\n };\n}\nfunction explainThemeScopesNameOnly(scopes) {\n return scopes.map((scope) => ({ scopeName: scope }));\n}\nfunction explainThemeScopesFull(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, scopes.slice(0, i))\n };\n }\n return result;\n}\nfunction matchesOne(selector, scope) {\n return selector === scope || scope.substring(0, selector.length) === selector && scope[selector.length] === \".\";\n}\nfunction matches(selectors, scope, parentScopes) {\n if (!matchesOne(selectors[selectors.length - 1], scope))\n return false;\n let selectorParentIndex = selectors.length - 2;\n let parentIndex = parentScopes.length - 1;\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex]))\n selectorParentIndex -= 1;\n parentIndex -= 1;\n }\n if (selectorParentIndex === -1)\n return true;\n return false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n const result = [];\n for (const { selectors, settings } of themeSettingsSelectors) {\n for (const selectorPieces of selectors) {\n if (matches(selectorPieces, scope, parentScopes)) {\n result.push(settings);\n break;\n }\n }\n }\n return result;\n}\n\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({ color: i[0], theme: i[1] }));\n const themedTokens = themes.map((t) => {\n const tokens2 = codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme\n });\n const state = getLastGrammarStateFromMap(tokens2);\n const theme = typeof t.theme === \"string\" ? t.theme : t.theme.name;\n return {\n tokens: tokens2,\n state,\n theme\n };\n });\n const tokens = syncThemesTokenization(\n ...themedTokens.map((i) => i.tokens)\n );\n const mergedTokens = tokens[0].map(\n (line, lineIdx) => line.map((_token, tokenIdx) => {\n const mergedToken = {\n content: _token.content,\n variants: {},\n offset: _token.offset\n };\n if (\"includeExplanation\" in options && options.includeExplanation) {\n mergedToken.explanation = _token.explanation;\n }\n tokens.forEach((t, themeIdx) => {\n const {\n content: _,\n explanation: __,\n offset: ___,\n ...styles\n } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n })\n );\n const mergedGrammarState = themedTokens[0].state ? new GrammarState(\n Object.fromEntries(themedTokens.map((s) => [s.theme, s.state?.getInternalStack(s.theme)])),\n themedTokens[0].state.lang\n ) : void 0;\n if (mergedGrammarState)\n setLastGrammarStateToMap(mergedTokens, mergedGrammarState);\n return mergedTokens;\n}\nfunction syncThemesTokenization(...themes) {\n const outThemes = themes.map(() => []);\n const count = themes.length;\n for (let i = 0; i < themes[0].length; i++) {\n const lines = themes.map((t) => t[i]);\n const outLines = outThemes.map(() => []);\n outThemes.forEach((t, i2) => t.push(outLines[i2]));\n const indexes = lines.map(() => 0);\n const current = lines.map((l) => l[0]);\n while (current.every((t) => t)) {\n const minLength = Math.min(...current.map((t) => t.content.length));\n for (let n = 0; n < count; n++) {\n const token = current[n];\n if (token.content.length === minLength) {\n outLines[n].push(token);\n indexes[n] += 1;\n current[n] = lines[n][indexes[n]];\n } else {\n outLines[n].push({\n ...token,\n content: token.content.slice(0, minLength)\n });\n current[n] = {\n ...token,\n content: token.content.slice(minLength),\n offset: token.offset + minLength\n };\n }\n }\n }\n }\n return outThemes;\n}\n\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n let grammarState;\n if (\"themes\" in options) {\n const {\n defaultColor = \"light\",\n cssVariablePrefix = \"--shiki-\",\n colorsRendering = \"css-vars\"\n } = options;\n const themes = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({ color: i[0], theme: i[1] })).sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError$1(\"`themes` option must not be empty\");\n const themeTokens = codeToTokensWithThemes(\n internal,\n code,\n options\n );\n grammarState = getLastGrammarStateFromMap(themeTokens);\n if (defaultColor && DEFAULT_COLOR_LIGHT_DARK !== defaultColor && !themes.find((t) => t.color === defaultColor))\n throw new ShikiError$1(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n const themeRegs = themes.map((t) => internal.getTheme(t.theme));\n const themesOrder = themes.map((t) => t.color);\n tokens = themeTokens.map((line) => line.map((token) => flatTokenVariants(token, themesOrder, cssVariablePrefix, defaultColor, colorsRendering)));\n if (grammarState)\n setLastGrammarStateToMap(tokens, grammarState);\n const themeColorReplacements = themes.map((t) => resolveColorReplacements(t.theme, options));\n fg = mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, \"fg\", colorsRendering);\n bg = mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, \"bg\", colorsRendering);\n themeName = `shiki-themes ${themeRegs.map((t) => t.name).join(\" \")}`;\n rootStyle = defaultColor ? void 0 : [fg, bg].join(\";\");\n } else if (\"theme\" in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(\n internal,\n code,\n options\n );\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n grammarState = getLastGrammarStateFromMap(tokens);\n } else {\n throw new ShikiError$1(\"Invalid options, either `theme` or `themes` must be provided\");\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n grammarState\n };\n}\nfunction mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, property, colorsRendering) {\n return themes.map((t, idx) => {\n const value = applyColorReplacements(themeRegs[idx][property], themeColorReplacements[idx]) || \"inherit\";\n const cssVar = `${cssVariablePrefix + t.color}${property === \"bg\" ? \"-bg\" : \"\"}:${value}`;\n if (idx === 0 && defaultColor) {\n if (defaultColor === DEFAULT_COLOR_LIGHT_DARK && themes.length > 1) {\n const lightIndex = themes.findIndex((t2) => t2.color === \"light\");\n const darkIndex = themes.findIndex((t2) => t2.color === \"dark\");\n if (lightIndex === -1 || darkIndex === -1)\n throw new ShikiError$1('When using `defaultColor: \"light-dark()\"`, you must provide both `light` and `dark` themes');\n const lightValue = applyColorReplacements(themeRegs[lightIndex][property], themeColorReplacements[lightIndex]) || \"inherit\";\n const darkValue = applyColorReplacements(themeRegs[darkIndex][property], themeColorReplacements[darkIndex]) || \"inherit\";\n return `light-dark(${lightValue}, ${darkValue});${cssVar}`;\n }\n return value;\n }\n if (colorsRendering === \"css-vars\") {\n return cssVar;\n }\n return null;\n }).filter((i) => !!i).join(\";\");\n}\n\nfunction codeToHast(internal, code, options, transformerContext = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options)\n}) {\n let input = code;\n for (const transformer of getTransformers(options))\n input = transformer.preprocess?.call(transformerContext, input, options) || input;\n let {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n grammarState\n } = codeToTokens(internal, input, options);\n const {\n mergeWhitespaces = true,\n mergeSameStyleTokens = false\n } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === \"never\")\n tokens = splitWhitespaceTokens(tokens);\n if (mergeSameStyleTokens) {\n tokens = mergeAdjacentStyledTokens(tokens);\n }\n const contextSource = {\n ...transformerContext,\n get source() {\n return input;\n }\n };\n for (const transformer of getTransformers(options))\n tokens = transformer.tokens?.call(contextSource, tokens) || tokens;\n return tokensToHast(\n tokens,\n {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle: options.rootStyle === false ? false : options.rootStyle ?? rootStyle\n },\n contextSource,\n grammarState\n );\n}\nfunction tokensToHast(tokens, options, transformerContext, grammarState = getLastGrammarStateFromMap(tokens)) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: \"root\",\n children: []\n };\n const {\n structure = \"classic\",\n tabindex = \"0\"\n } = options;\n const properties = {\n class: `shiki ${options.themeName || \"\"}`\n };\n if (options.rootStyle !== false) {\n if (options.rootStyle != null)\n properties.style = options.rootStyle;\n else\n properties.style = `background-color:${options.bg};color:${options.fg}`;\n }\n if (tabindex !== false && tabindex != null)\n properties.tabindex = tabindex.toString();\n for (const [key, value] of Object.entries(options.meta || {})) {\n if (!key.startsWith(\"_\"))\n properties[key] = value;\n }\n let preNode = {\n type: \"element\",\n tagName: \"pre\",\n properties,\n children: [],\n data: options.data\n };\n let codeNode = {\n type: \"element\",\n tagName: \"code\",\n properties: {},\n children: lines\n };\n const lineNodes = [];\n const context = {\n ...transformerContext,\n structure,\n addClassToHast,\n get source() {\n return transformerContext.source;\n },\n get tokens() {\n return tokens;\n },\n get options() {\n return options;\n },\n get root() {\n return root;\n },\n get pre() {\n return preNode;\n },\n get code() {\n return codeNode;\n },\n get lines() {\n return lineNodes;\n }\n };\n tokens.forEach((line, idx) => {\n if (idx) {\n if (structure === \"inline\")\n root.children.push({ type: \"element\", tagName: \"br\", properties: {}, children: [] });\n else if (structure === \"classic\")\n lines.push({ type: \"text\", value: \"\\n\" });\n }\n let lineNode = {\n type: \"element\",\n tagName: \"span\",\n properties: { class: \"line\" },\n children: []\n };\n let col = 0;\n for (const token of line) {\n let tokenNode = {\n type: \"element\",\n tagName: \"span\",\n properties: {\n ...token.htmlAttrs\n },\n children: [{ type: \"text\", value: token.content }]\n };\n const style = stringifyTokenStyle(token.htmlStyle || getTokenStyleObject(token));\n if (style)\n tokenNode.properties.style = style;\n for (const transformer of transformers)\n tokenNode = transformer?.span?.call(context, tokenNode, idx + 1, col, lineNode, token) || tokenNode;\n if (structure === \"inline\")\n root.children.push(tokenNode);\n else if (structure === \"classic\")\n lineNode.children.push(tokenNode);\n col += token.content.length;\n }\n if (structure === \"classic\") {\n for (const transformer of transformers)\n lineNode = transformer?.line?.call(context, lineNode, idx + 1) || lineNode;\n lineNodes.push(lineNode);\n lines.push(lineNode);\n } else if (structure === \"inline\") {\n lineNodes.push(lineNode);\n }\n });\n if (structure === \"classic\") {\n for (const transformer of transformers)\n codeNode = transformer?.code?.call(context, codeNode) || codeNode;\n preNode.children.push(codeNode);\n for (const transformer of transformers)\n preNode = transformer?.pre?.call(context, preNode) || preNode;\n root.children.push(preNode);\n } else if (structure === \"inline\") {\n const syntheticLines = [];\n let currentLine = {\n type: \"element\",\n tagName: \"span\",\n properties: { class: \"line\" },\n children: []\n };\n for (const child of root.children) {\n if (child.type === \"element\" && child.tagName === \"br\") {\n syntheticLines.push(currentLine);\n currentLine = {\n type: \"element\",\n tagName: \"span\",\n properties: { class: \"line\" },\n children: []\n };\n } else if (child.type === \"element\" || child.type === \"text\") {\n currentLine.children.push(child);\n }\n }\n syntheticLines.push(currentLine);\n const syntheticCode = {\n type: \"element\",\n tagName: \"code\",\n properties: {},\n children: syntheticLines\n };\n let transformedCode = syntheticCode;\n for (const transformer of transformers)\n transformedCode = transformer?.code?.call(context, transformedCode) || transformedCode;\n root.children = [];\n for (let i = 0; i < transformedCode.children.length; i++) {\n if (i > 0)\n root.children.push({ type: \"element\", tagName: \"br\", properties: {}, children: [] });\n const line = transformedCode.children[i];\n if (line.type === \"element\")\n root.children.push(...line.children);\n }\n }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n if (grammarState)\n setLastGrammarStateToMap(result, grammarState);\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = \"\";\n let firstOffset;\n line.forEach((token, idx) => {\n const isDecorated = token.fontStyle && (token.fontStyle & FontStyle.Underline || token.fontStyle & FontStyle.Strikethrough);\n const couldMerge = !isDecorated;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (firstOffset === void 0)\n firstOffset = token.offset;\n carryOnContent += token.content;\n } else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content\n });\n } else {\n newLine.push(\n {\n content: carryOnContent,\n offset: firstOffset\n },\n token\n );\n }\n firstOffset = void 0;\n carryOnContent = \"\";\n } else {\n newLine.push(token);\n }\n }\n });\n return newLine;\n });\n}\nfunction splitWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n return line.flatMap((token) => {\n if (token.content.match(/^\\s+$/))\n return token;\n const match = token.content.match(/^(\\s*)(.*?)(\\s*)$/);\n if (!match)\n return token;\n const [, leading, content, trailing] = match;\n if (!leading && !trailing)\n return token;\n const expanded = [{\n ...token,\n offset: token.offset + leading.length,\n content\n }];\n if (leading) {\n expanded.unshift({\n content: leading,\n offset: token.offset\n });\n }\n if (trailing) {\n expanded.push({\n content: trailing,\n offset: token.offset + leading.length + content.length\n });\n }\n return expanded;\n });\n });\n}\nfunction mergeAdjacentStyledTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n for (const token of line) {\n if (newLine.length === 0) {\n newLine.push({ ...token });\n continue;\n }\n const prevToken = newLine[newLine.length - 1];\n const prevStyle = stringifyTokenStyle(prevToken.htmlStyle || getTokenStyleObject(prevToken));\n const currentStyle = stringifyTokenStyle(token.htmlStyle || getTokenStyleObject(token));\n const isPrevDecorated = prevToken.fontStyle && (prevToken.fontStyle & FontStyle.Underline || prevToken.fontStyle & FontStyle.Strikethrough);\n const isDecorated = token.fontStyle && (token.fontStyle & FontStyle.Underline || token.fontStyle & FontStyle.Strikethrough);\n if (!isPrevDecorated && !isDecorated && prevStyle === currentStyle) {\n prevToken.content += token.content;\n } else {\n newLine.push({ ...token });\n }\n }\n return newLine;\n });\n}\n\nconst hastToHtml = toHtml;\nfunction codeToHtml(internal, code, options) {\n const context = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options)\n };\n let result = hastToHtml(codeToHast(internal, code, options, context));\n for (const transformer of getTransformers(options))\n result = transformer.postprocess?.call(context, result, options) || result;\n return result;\n}\n\nconst VSCODE_FALLBACK_EDITOR_FG = { light: \"#333333\", dark: \"#bbbbbb\" };\nconst VSCODE_FALLBACK_EDITOR_BG = { light: \"#fffffe\", dark: \"#1e1e1e\" };\nconst RESOLVED_KEY = \"__shiki_resolved\";\nfunction normalizeTheme(rawTheme) {\n if (rawTheme?.[RESOLVED_KEY])\n return rawTheme;\n const theme = {\n ...rawTheme\n };\n if (theme.tokenColors && !theme.settings) {\n theme.settings = theme.tokenColors;\n delete theme.tokenColors;\n }\n theme.type ||= \"dark\";\n theme.colorReplacements = { ...theme.colorReplacements };\n theme.settings ||= [];\n let { bg, fg } = theme;\n if (!bg || !fg) {\n const globalSetting = theme.settings ? theme.settings.find((s) => !s.name && !s.scope) : void 0;\n if (globalSetting?.settings?.foreground)\n fg = globalSetting.settings.foreground;\n if (globalSetting?.settings?.background)\n bg = globalSetting.settings.background;\n if (!fg && theme?.colors?.[\"editor.foreground\"])\n fg = theme.colors[\"editor.foreground\"];\n if (!bg && theme?.colors?.[\"editor.background\"])\n bg = theme.colors[\"editor.background\"];\n if (!fg)\n fg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark;\n if (!bg)\n bg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark;\n theme.fg = fg;\n theme.bg = bg;\n }\n if (!(theme.settings[0] && theme.settings[0].settings && !theme.settings[0].scope)) {\n theme.settings.unshift({\n settings: {\n foreground: theme.fg,\n background: theme.bg\n }\n });\n }\n let replacementCount = 0;\n const replacementMap = /* @__PURE__ */ new Map();\n function getReplacementColor(value) {\n if (replacementMap.has(value))\n return replacementMap.get(value);\n replacementCount += 1;\n const hex = `#${replacementCount.toString(16).padStart(8, \"0\").toLowerCase()}`;\n if (theme.colorReplacements?.[`#${hex}`])\n return getReplacementColor(value);\n replacementMap.set(value, hex);\n return hex;\n }\n theme.settings = theme.settings.map((setting) => {\n const replaceFg = setting.settings?.foreground && !setting.settings.foreground.startsWith(\"#\");\n const replaceBg = setting.settings?.background && !setting.settings.background.startsWith(\"#\");\n if (!replaceFg && !replaceBg)\n return setting;\n const clone = {\n ...setting,\n settings: {\n ...setting.settings\n }\n };\n if (replaceFg) {\n const replacement = getReplacementColor(setting.settings.foreground);\n theme.colorReplacements[replacement] = setting.settings.foreground;\n clone.settings.foreground = replacement;\n }\n if (replaceBg) {\n const replacement = getReplacementColor(setting.settings.background);\n theme.colorReplacements[replacement] = setting.settings.background;\n clone.settings.background = replacement;\n }\n return clone;\n });\n for (const key of Object.keys(theme.colors || {})) {\n if (key === \"editor.foreground\" || key === \"editor.background\" || key.startsWith(\"terminal.ansi\")) {\n if (!theme.colors[key]?.startsWith(\"#\")) {\n const replacement = getReplacementColor(theme.colors[key]);\n theme.colorReplacements[replacement] = theme.colors[key];\n theme.colors[key] = replacement;\n }\n }\n }\n Object.defineProperty(theme, RESOLVED_KEY, {\n enumerable: false,\n writable: false,\n value: true\n });\n return theme;\n}\n\nasync function resolveLangs(langs) {\n return Array.from(new Set((await Promise.all(\n langs.filter((l) => !isSpecialLang(l)).map(async (lang) => await normalizeGetter(lang).then((r) => Array.isArray(r) ? r : [r]))\n )).flat()));\n}\nasync function resolveThemes(themes) {\n const resolved = await Promise.all(\n themes.map(\n async (theme) => isSpecialTheme(theme) ? null : normalizeTheme(await normalizeGetter(theme))\n )\n );\n return resolved.filter((i) => !!i);\n}\n\nlet _emitDeprecation = 3;\nlet _emitError = false;\nfunction enableDeprecationWarnings(emitDeprecation = true, emitError = false) {\n _emitDeprecation = emitDeprecation;\n _emitError = emitError;\n}\nfunction warnDeprecated(message, version = 3) {\n if (!_emitDeprecation)\n return;\n if (typeof _emitDeprecation === \"number\" && version > _emitDeprecation)\n return;\n if (_emitError) {\n throw new Error(`[SHIKI DEPRECATE]: ${message}`);\n } else {\n console.trace(`[SHIKI DEPRECATE]: ${message}`);\n }\n}\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ShikiError\";\n }\n}\n\nfunction resolveLangAlias(name, alias) {\n if (!alias)\n return name;\n if (alias[name]) {\n const resolved = /* @__PURE__ */ new Set([name]);\n while (alias[name]) {\n name = alias[name];\n if (resolved.has(name))\n throw new ShikiError(`Circular alias \\`${Array.from(resolved).join(\" -> \")} -> ${name}\\``);\n resolved.add(name);\n }\n }\n return name;\n}\n\nclass Registry extends Registry$1 {\n constructor(_resolver, _themes, _langs, _alias = {}) {\n super(_resolver);\n this._resolver = _resolver;\n this._themes = _themes;\n this._langs = _langs;\n this._alias = _alias;\n this._themes.map((t) => this.loadTheme(t));\n this.loadLanguages(this._langs);\n }\n _resolvedThemes = /* @__PURE__ */ new Map();\n _resolvedGrammars = /* @__PURE__ */ new Map();\n _langMap = /* @__PURE__ */ new Map();\n _langGraph = /* @__PURE__ */ new Map();\n _textmateThemeCache = /* @__PURE__ */ new WeakMap();\n _loadedThemesCache = null;\n _loadedLanguagesCache = null;\n getTheme(theme) {\n if (typeof theme === \"string\")\n return this._resolvedThemes.get(theme);\n else\n return this.loadTheme(theme);\n }\n loadTheme(theme) {\n const _theme = normalizeTheme(theme);\n if (_theme.name) {\n this._resolvedThemes.set(_theme.name, _theme);\n this._loadedThemesCache = null;\n }\n return _theme;\n }\n getLoadedThemes() {\n if (!this._loadedThemesCache)\n this._loadedThemesCache = [...this._resolvedThemes.keys()];\n return this._loadedThemesCache;\n }\n // Override and re-implement this method to cache the textmate themes as `TextMateTheme.createFromRawTheme`\n // is expensive. Themes can switch often especially for dual-theme support.\n //\n // The parent class also accepts `colorMap` as the second parameter, but since we don't use that,\n // we omit here so it's easier to cache the themes.\n setTheme(theme) {\n let textmateTheme = this._textmateThemeCache.get(theme);\n if (!textmateTheme) {\n textmateTheme = Theme.createFromRawTheme(theme);\n this._textmateThemeCache.set(theme, textmateTheme);\n }\n this._syncRegistry.setTheme(textmateTheme);\n }\n getGrammar(name) {\n name = resolveLangAlias(name, this._alias);\n return this._resolvedGrammars.get(name);\n }\n loadLanguage(lang) {\n if (this.getGrammar(lang.name))\n return;\n const embeddedLazilyBy = new Set(\n [...this._langMap.values()].filter((i) => i.embeddedLangsLazy?.includes(lang.name))\n );\n this._resolver.addLanguage(lang);\n const grammarConfig = {\n balancedBracketSelectors: lang.balancedBracketSelectors || [\"*\"],\n unbalancedBracketSelectors: lang.unbalancedBracketSelectors || []\n };\n this._syncRegistry._rawGrammars.set(lang.scopeName, lang);\n const g = this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig);\n g.name = lang.name;\n this._resolvedGrammars.set(lang.name, g);\n if (lang.aliases) {\n lang.aliases.forEach((alias) => {\n this._alias[alias] = lang.name;\n });\n }\n this._loadedLanguagesCache = null;\n if (embeddedLazilyBy.size) {\n for (const e of embeddedLazilyBy) {\n this._resolvedGrammars.delete(e.name);\n this._loadedLanguagesCache = null;\n this._syncRegistry?._injectionGrammars?.delete(e.scopeName);\n this._syncRegistry?._grammars?.delete(e.scopeName);\n this.loadLanguage(this._langMap.get(e.name));\n }\n }\n }\n dispose() {\n super.dispose();\n this._resolvedThemes.clear();\n this._resolvedGrammars.clear();\n this._langMap.clear();\n this._langGraph.clear();\n this._loadedThemesCache = null;\n }\n loadLanguages(langs) {\n for (const lang of langs)\n this.resolveEmbeddedLanguages(lang);\n const langsGraphArray = Array.from(this._langGraph.entries());\n const missingLangs = langsGraphArray.filter(([_, lang]) => !lang);\n if (missingLangs.length) {\n const dependents = langsGraphArray.filter(([_, lang]) => {\n if (!lang)\n return false;\n const embedded = lang.embeddedLanguages || lang.embeddedLangs;\n return embedded?.some((l) => missingLangs.map(([name]) => name).includes(l));\n }).filter((lang) => !missingLangs.includes(lang));\n throw new ShikiError(`Missing languages ${missingLangs.map(([name]) => `\\`${name}\\``).join(\", \")}, required by ${dependents.map(([name]) => `\\`${name}\\``).join(\", \")}`);\n }\n for (const [_, lang] of langsGraphArray)\n this._resolver.addLanguage(lang);\n for (const [_, lang] of langsGraphArray)\n this.loadLanguage(lang);\n }\n getLoadedLanguages() {\n if (!this._loadedLanguagesCache) {\n this._loadedLanguagesCache = [\n .../* @__PURE__ */ new Set([...this._resolvedGrammars.keys(), ...Object.keys(this._alias)])\n ];\n }\n return this._loadedLanguagesCache;\n }\n resolveEmbeddedLanguages(lang) {\n this._langMap.set(lang.name, lang);\n this._langGraph.set(lang.name, lang);\n const embedded = lang.embeddedLanguages ?? lang.embeddedLangs;\n if (embedded) {\n for (const embeddedLang of embedded)\n this._langGraph.set(embeddedLang, this._langMap.get(embeddedLang));\n }\n }\n}\n\nclass Resolver {\n _langs = /* @__PURE__ */ new Map();\n _scopeToLang = /* @__PURE__ */ new Map();\n _injections = /* @__PURE__ */ new Map();\n _onigLib;\n constructor(engine, langs) {\n this._onigLib = {\n createOnigScanner: (patterns) => engine.createScanner(patterns),\n createOnigString: (s) => engine.createString(s)\n };\n langs.forEach((i) => this.addLanguage(i));\n }\n get onigLib() {\n return this._onigLib;\n }\n getLangRegistration(langIdOrAlias) {\n return this._langs.get(langIdOrAlias);\n }\n loadGrammar(scopeName) {\n return this._scopeToLang.get(scopeName);\n }\n addLanguage(l) {\n this._langs.set(l.name, l);\n if (l.aliases) {\n l.aliases.forEach((a) => {\n this._langs.set(a, l);\n });\n }\n this._scopeToLang.set(l.scopeName, l);\n if (l.injectTo) {\n l.injectTo.forEach((i) => {\n if (!this._injections.get(i))\n this._injections.set(i, []);\n this._injections.get(i).push(l.scopeName);\n });\n }\n }\n getInjections(scopeName) {\n const scopeParts = scopeName.split(\".\");\n let injections = [];\n for (let i = 1; i <= scopeParts.length; i++) {\n const subScopeName = scopeParts.slice(0, i).join(\".\");\n injections = [...injections, ...this._injections.get(subScopeName) || []];\n }\n return injections;\n }\n}\n\nlet instancesCount = 0;\nfunction createShikiInternalSync(options) {\n instancesCount += 1;\n if (options.warnings !== false && instancesCount >= 10 && instancesCount % 10 === 0)\n console.warn(`[Shiki] ${instancesCount} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \\`highlighter.dispose()\\` to release unused instances.`);\n let isDisposed = false;\n if (!options.engine)\n throw new ShikiError(\"`engine` option is required for synchronous mode\");\n const langs = (options.langs || []).flat(1);\n const themes = (options.themes || []).flat(1).map(normalizeTheme);\n const resolver = new Resolver(options.engine, langs);\n const _registry = new Registry(resolver, themes, langs, options.langAlias);\n let _lastTheme;\n function resolveLangAlias$1(name) {\n return resolveLangAlias(name, options.langAlias);\n }\n function getLanguage(name) {\n ensureNotDisposed();\n const _lang = _registry.getGrammar(typeof name === \"string\" ? name : name.name);\n if (!_lang)\n throw new ShikiError(`Language \\`${name}\\` not found, you may need to load it first`);\n return _lang;\n }\n function getTheme(name) {\n if (name === \"none\")\n return { bg: \"\", fg: \"\", name: \"none\", settings: [], type: \"dark\" };\n ensureNotDisposed();\n const _theme = _registry.getTheme(name);\n if (!_theme)\n throw new ShikiError(`Theme \\`${name}\\` not found, you may need to load it first`);\n return _theme;\n }\n function setTheme(name) {\n ensureNotDisposed();\n const theme = getTheme(name);\n if (_lastTheme !== name) {\n _registry.setTheme(theme);\n _lastTheme = name;\n }\n const colorMap = _registry.getColorMap();\n return {\n theme,\n colorMap\n };\n }\n function getLoadedThemes() {\n ensureNotDisposed();\n return _registry.getLoadedThemes();\n }\n function getLoadedLanguages() {\n ensureNotDisposed();\n return _registry.getLoadedLanguages();\n }\n function loadLanguageSync(...langs2) {\n ensureNotDisposed();\n _registry.loadLanguages(langs2.flat(1));\n }\n async function loadLanguage(...langs2) {\n return loadLanguageSync(await resolveLangs(langs2));\n }\n function loadThemeSync(...themes2) {\n ensureNotDisposed();\n for (const theme of themes2.flat(1)) {\n _registry.loadTheme(theme);\n }\n }\n async function loadTheme(...themes2) {\n ensureNotDisposed();\n return loadThemeSync(await resolveThemes(themes2));\n }\n function ensureNotDisposed() {\n if (isDisposed)\n throw new ShikiError(\"Shiki instance has been disposed\");\n }\n function dispose() {\n if (isDisposed)\n return;\n isDisposed = true;\n _registry.dispose();\n instancesCount -= 1;\n }\n return {\n setTheme,\n getTheme,\n getLanguage,\n getLoadedThemes,\n getLoadedLanguages,\n resolveLangAlias: resolveLangAlias$1,\n loadLanguage,\n loadLanguageSync,\n loadTheme,\n loadThemeSync,\n dispose,\n [Symbol.dispose]: dispose\n };\n}\n\nasync function createShikiInternal(options) {\n if (!options.engine) {\n warnDeprecated(\"`engine` option is required. Use `createOnigurumaEngine` or `createJavaScriptRegexEngine` to create an engine.\");\n }\n const [\n themes,\n langs,\n engine\n ] = await Promise.all([\n resolveThemes(options.themes || []),\n resolveLangs(options.langs || []),\n options.engine\n ]);\n return createShikiInternalSync({\n ...options,\n themes,\n langs,\n engine\n });\n}\n\nasync function createHighlighterCore(options) {\n const internal = await createShikiInternal(options);\n return {\n getLastGrammarState: (...args) => getLastGrammarState(internal, ...args),\n codeToTokensBase: (code, options2) => codeToTokensBase(internal, code, options2),\n codeToTokensWithThemes: (code, options2) => codeToTokensWithThemes(internal, code, options2),\n codeToTokens: (code, options2) => codeToTokens(internal, code, options2),\n codeToHast: (code, options2) => codeToHast(internal, code, options2),\n codeToHtml: (code, options2) => codeToHtml(internal, code, options2),\n getBundledLanguages: () => ({}),\n getBundledThemes: () => ({}),\n ...internal,\n getInternalContext: () => internal\n };\n}\nfunction createHighlighterCoreSync(options) {\n const internal = createShikiInternalSync(options);\n return {\n getLastGrammarState: (...args) => getLastGrammarState(internal, ...args),\n codeToTokensBase: (code, options2) => codeToTokensBase(internal, code, options2),\n codeToTokensWithThemes: (code, options2) => codeToTokensWithThemes(internal, code, options2),\n codeToTokens: (code, options2) => codeToTokens(internal, code, options2),\n codeToHast: (code, options2) => codeToHast(internal, code, options2),\n codeToHtml: (code, options2) => codeToHtml(internal, code, options2),\n getBundledLanguages: () => ({}),\n getBundledThemes: () => ({}),\n ...internal,\n getInternalContext: () => internal\n };\n}\nfunction makeSingletonHighlighterCore(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighterCore2(options) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || []\n });\n return _shiki;\n } else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...options.themes || []),\n s.loadLanguage(...options.langs || [])\n ]);\n return s;\n }\n }\n return getSingletonHighlighterCore2;\n}\nconst getSingletonHighlighterCore = /* @__PURE__ */ makeSingletonHighlighterCore(createHighlighterCore);\n\nfunction createBundledHighlighter(options) {\n const bundledLanguages = options.langs;\n const bundledThemes = options.themes;\n const engine = options.engine;\n async function createHighlighter(options2) {\n function resolveLang(lang) {\n if (typeof lang === \"string\") {\n lang = options2.langAlias?.[lang] || lang;\n if (isSpecialLang(lang))\n return [];\n const bundle = bundledLanguages[lang];\n if (!bundle)\n throw new ShikiError$1(`Language \\`${lang}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return lang;\n }\n function resolveTheme(theme) {\n if (isSpecialTheme(theme))\n return \"none\";\n if (typeof theme === \"string\") {\n const bundle = bundledThemes[theme];\n if (!bundle)\n throw new ShikiError$1(`Theme \\`${theme}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return theme;\n }\n const _themes = (options2.themes ?? []).map((i) => resolveTheme(i));\n const langs = (options2.langs ?? []).map((i) => resolveLang(i));\n const core = await createHighlighterCore({\n engine: options2.engine ?? engine(),\n ...options2,\n themes: _themes,\n langs\n });\n return {\n ...core,\n loadLanguage(...langs2) {\n return core.loadLanguage(...langs2.map(resolveLang));\n },\n loadTheme(...themes) {\n return core.loadTheme(...themes.map(resolveTheme));\n },\n getBundledLanguages() {\n return bundledLanguages;\n },\n getBundledThemes() {\n return bundledThemes;\n }\n };\n }\n return createHighlighter;\n}\nfunction makeSingletonHighlighter(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighter(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: [],\n langs: []\n });\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...options.themes || []),\n s.loadLanguage(...options.langs || [])\n ]);\n return s;\n } else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...options.themes || []),\n s.loadLanguage(...options.langs || [])\n ]);\n return s;\n }\n }\n return getSingletonHighlighter;\n}\nfunction createSingletonShorthands(createHighlighter, config) {\n const getSingletonHighlighter = makeSingletonHighlighter(createHighlighter);\n async function get(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: \"theme\" in options ? [options.theme] : Object.values(options.themes)\n });\n const langs = await config?.guessEmbeddedLanguages?.(code, options.lang, shiki);\n if (langs) {\n await shiki.loadLanguage(...langs);\n }\n return shiki;\n }\n return {\n getSingletonHighlighter(options) {\n return getSingletonHighlighter(options);\n },\n async codeToHtml(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToHtml(code, options);\n },\n async codeToHast(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToHast(code, options);\n },\n async codeToTokens(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToTokens(code, options);\n },\n async codeToTokensBase(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToTokensBase(code, options);\n },\n async codeToTokensWithThemes(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToTokensWithThemes(code, options);\n },\n async getLastGrammarState(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme]\n });\n return shiki.getLastGrammarState(code, options);\n }\n };\n}\nconst createdBundledHighlighter = createBundledHighlighter;\n\nfunction createCssVariablesTheme(options = {}) {\n const {\n name = \"css-variables\",\n variablePrefix = \"--shiki-\",\n fontStyle = true\n } = options;\n const variable = (name2) => {\n if (options.variableDefaults?.[name2])\n return `var(${variablePrefix}${name2}, ${options.variableDefaults[name2]})`;\n return `var(${variablePrefix}${name2})`;\n };\n const theme = {\n name,\n type: \"dark\",\n colors: {\n \"editor.foreground\": variable(\"foreground\"),\n \"editor.background\": variable(\"background\"),\n \"terminal.ansiBlack\": variable(\"ansi-black\"),\n \"terminal.ansiRed\": variable(\"ansi-red\"),\n \"terminal.ansiGreen\": variable(\"ansi-green\"),\n \"terminal.ansiYellow\": variable(\"ansi-yellow\"),\n \"terminal.ansiBlue\": variable(\"ansi-blue\"),\n \"terminal.ansiMagenta\": variable(\"ansi-magenta\"),\n \"terminal.ansiCyan\": variable(\"ansi-cyan\"),\n \"terminal.ansiWhite\": variable(\"ansi-white\"),\n \"terminal.ansiBrightBlack\": variable(\"ansi-bright-black\"),\n \"terminal.ansiBrightRed\": variable(\"ansi-bright-red\"),\n \"terminal.ansiBrightGreen\": variable(\"ansi-bright-green\"),\n \"terminal.ansiBrightYellow\": variable(\"ansi-bright-yellow\"),\n \"terminal.ansiBrightBlue\": variable(\"ansi-bright-blue\"),\n \"terminal.ansiBrightMagenta\": variable(\"ansi-bright-magenta\"),\n \"terminal.ansiBrightCyan\": variable(\"ansi-bright-cyan\"),\n \"terminal.ansiBrightWhite\": variable(\"ansi-bright-white\")\n },\n tokenColors: [\n {\n scope: [\n \"keyword.operator.accessor\",\n \"meta.group.braces.round.function.arguments\",\n \"meta.template.expression\",\n \"markup.fenced_code meta.embedded.block\"\n ],\n settings: {\n foreground: variable(\"foreground\")\n }\n },\n {\n scope: \"emphasis\",\n settings: {\n fontStyle: \"italic\"\n }\n },\n {\n scope: [\"strong\", \"markup.heading.markdown\", \"markup.bold.markdown\"],\n settings: {\n fontStyle: \"bold\"\n }\n },\n {\n scope: [\"markup.italic.markdown\"],\n settings: {\n fontStyle: \"italic\"\n }\n },\n {\n scope: \"meta.link.inline.markdown\",\n settings: {\n fontStyle: \"underline\",\n foreground: variable(\"token-link\")\n }\n },\n {\n scope: [\"string\", \"markup.fenced_code\", \"markup.inline\"],\n settings: {\n foreground: variable(\"token-string\")\n }\n },\n {\n scope: [\"comment\", \"string.quoted.docstring.multi\"],\n settings: {\n foreground: variable(\"token-comment\")\n }\n },\n {\n scope: [\n \"constant.numeric\",\n \"constant.language\",\n \"constant.other.placeholder\",\n \"constant.character.format.placeholder\",\n \"variable.language.this\",\n \"variable.other.object\",\n \"variable.other.class\",\n \"variable.other.constant\",\n \"meta.property-name\",\n \"meta.property-value\",\n \"support\"\n ],\n settings: {\n foreground: variable(\"token-constant\")\n }\n },\n {\n scope: [\n \"keyword\",\n \"storage.modifier\",\n \"storage.type\",\n \"storage.control.clojure\",\n \"entity.name.function.clojure\",\n \"entity.name.tag.yaml\",\n \"support.function.node\",\n \"support.type.property-name.json\",\n \"punctuation.separator.key-value\",\n \"punctuation.definition.template-expression\"\n ],\n settings: {\n foreground: variable(\"token-keyword\")\n }\n },\n {\n scope: \"variable.parameter.function\",\n settings: {\n foreground: variable(\"token-parameter\")\n }\n },\n {\n scope: [\n \"support.function\",\n \"entity.name.type\",\n \"entity.other.inherited-class\",\n \"meta.function-call\",\n \"meta.instance.constructor\",\n \"entity.other.attribute-name\",\n \"entity.name.function\",\n \"constant.keyword.clojure\"\n ],\n settings: {\n foreground: variable(\"token-function\")\n }\n },\n {\n scope: [\n \"entity.name.tag\",\n \"string.quoted\",\n \"string.regexp\",\n \"string.interpolated\",\n \"string.template\",\n \"string.unquoted.plain.out.yaml\",\n \"keyword.other.template\"\n ],\n settings: {\n foreground: variable(\"token-string-expression\")\n }\n },\n {\n scope: [\n \"punctuation.definition.arguments\",\n \"punctuation.definition.dict\",\n \"punctuation.separator\",\n \"meta.function-call.arguments\"\n ],\n settings: {\n foreground: variable(\"token-punctuation\")\n }\n },\n {\n // [Custom] Markdown links\n scope: [\n \"markup.underline.link\",\n \"punctuation.definition.metadata.markdown\"\n ],\n settings: {\n foreground: variable(\"token-link\")\n }\n },\n {\n // [Custom] Markdown list\n scope: [\"beginning.punctuation.definition.list.markdown\"],\n settings: {\n foreground: variable(\"token-string\")\n }\n },\n {\n // [Custom] Markdown punctuation definition brackets\n scope: [\n \"punctuation.definition.string.begin.markdown\",\n \"punctuation.definition.string.end.markdown\",\n \"string.other.link.title.markdown\",\n \"string.other.link.description.markdown\"\n ],\n settings: {\n foreground: variable(\"token-keyword\")\n }\n },\n {\n // [Custom] Diff\n scope: [\n \"markup.inserted\",\n \"meta.diff.header.to-file\",\n \"punctuation.definition.inserted\"\n ],\n settings: {\n foreground: variable(\"token-inserted\")\n }\n },\n {\n scope: [\n \"markup.deleted\",\n \"meta.diff.header.from-file\",\n \"punctuation.definition.deleted\"\n ],\n settings: {\n foreground: variable(\"token-deleted\")\n }\n },\n {\n scope: [\n \"markup.changed\",\n \"punctuation.definition.changed\"\n ],\n settings: {\n foreground: variable(\"token-changed\")\n }\n }\n ]\n };\n if (!fontStyle) {\n theme.tokenColors = theme.tokenColors?.map((tokenColor) => {\n if (tokenColor.settings?.fontStyle)\n delete tokenColor.settings.fontStyle;\n return tokenColor;\n });\n }\n return theme;\n}\n\nexport { addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createBundledHighlighter, createCssVariablesTheme, createHighlighterCore, createHighlighterCoreSync, createPositionConverter, createShikiInternal, createShikiInternalSync, createSingletonShorthands, createdBundledHighlighter, enableDeprecationWarnings, flatTokenVariants, getSingletonHighlighterCore, getTokenStyleObject, guessEmbeddedLanguages, hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeGetter, normalizeTheme, resolveColorReplacements, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations, warnDeprecated };\n","const bundledLanguagesInfo = [\n {\n \"id\": \"abap\",\n \"name\": \"ABAP\",\n \"import\": (() => import('@shikijs/langs/abap'))\n },\n {\n \"id\": \"actionscript-3\",\n \"name\": \"ActionScript\",\n \"import\": (() => import('@shikijs/langs/actionscript-3'))\n },\n {\n \"id\": \"ada\",\n \"name\": \"Ada\",\n \"import\": (() => import('@shikijs/langs/ada'))\n },\n {\n \"id\": \"angular-html\",\n \"name\": \"Angular HTML\",\n \"import\": (() => import('@shikijs/langs/angular-html'))\n },\n {\n \"id\": \"angular-ts\",\n \"name\": \"Angular TypeScript\",\n \"import\": (() => import('@shikijs/langs/angular-ts'))\n },\n {\n \"id\": \"apache\",\n \"name\": \"Apache Conf\",\n \"import\": (() => import('@shikijs/langs/apache'))\n },\n {\n \"id\": \"apex\",\n \"name\": \"Apex\",\n \"import\": (() => import('@shikijs/langs/apex'))\n },\n {\n \"id\": \"apl\",\n \"name\": \"APL\",\n \"import\": (() => import('@shikijs/langs/apl'))\n },\n {\n \"id\": \"applescript\",\n \"name\": \"AppleScript\",\n \"import\": (() => import('@shikijs/langs/applescript'))\n },\n {\n \"id\": \"ara\",\n \"name\": \"Ara\",\n \"import\": (() => import('@shikijs/langs/ara'))\n },\n {\n \"id\": \"asciidoc\",\n \"name\": \"AsciiDoc\",\n \"aliases\": [\n \"adoc\"\n ],\n \"import\": (() => import('@shikijs/langs/asciidoc'))\n },\n {\n \"id\": \"asm\",\n \"name\": \"Assembly\",\n \"import\": (() => import('@shikijs/langs/asm'))\n },\n {\n \"id\": \"astro\",\n \"name\": \"Astro\",\n \"import\": (() => import('@shikijs/langs/astro'))\n },\n {\n \"id\": \"awk\",\n \"name\": \"AWK\",\n \"import\": (() => import('@shikijs/langs/awk'))\n },\n {\n \"id\": \"ballerina\",\n \"name\": \"Ballerina\",\n \"import\": (() => import('@shikijs/langs/ballerina'))\n },\n {\n \"id\": \"bat\",\n \"name\": \"Batch File\",\n \"aliases\": [\n \"batch\"\n ],\n \"import\": (() => import('@shikijs/langs/bat'))\n },\n {\n \"id\": \"beancount\",\n \"name\": \"Beancount\",\n \"import\": (() => import('@shikijs/langs/beancount'))\n },\n {\n \"id\": \"berry\",\n \"name\": \"Berry\",\n \"aliases\": [\n \"be\"\n ],\n \"import\": (() => import('@shikijs/langs/berry'))\n },\n {\n \"id\": \"bibtex\",\n \"name\": \"BibTeX\",\n \"import\": (() => import('@shikijs/langs/bibtex'))\n },\n {\n \"id\": \"bicep\",\n \"name\": \"Bicep\",\n \"import\": (() => import('@shikijs/langs/bicep'))\n },\n {\n \"id\": \"bird2\",\n \"name\": \"BIRD2 Configuration\",\n \"aliases\": [\n \"bird\"\n ],\n \"import\": (() => import('@shikijs/langs/bird2'))\n },\n {\n \"id\": \"blade\",\n \"name\": \"Blade\",\n \"import\": (() => import('@shikijs/langs/blade'))\n },\n {\n \"id\": \"bsl\",\n \"name\": \"1C (Enterprise)\",\n \"aliases\": [\n \"1c\"\n ],\n \"import\": (() => import('@shikijs/langs/bsl'))\n },\n {\n \"id\": \"c\",\n \"name\": \"C\",\n \"import\": (() => import('@shikijs/langs/c'))\n },\n {\n \"id\": \"c3\",\n \"name\": \"C3\",\n \"import\": (() => import('@shikijs/langs/c3'))\n },\n {\n \"id\": \"cadence\",\n \"name\": \"Cadence\",\n \"aliases\": [\n \"cdc\"\n ],\n \"import\": (() => import('@shikijs/langs/cadence'))\n },\n {\n \"id\": \"cairo\",\n \"name\": \"Cairo\",\n \"import\": (() => import('@shikijs/langs/cairo'))\n },\n {\n \"id\": \"clarity\",\n \"name\": \"Clarity\",\n \"import\": (() => import('@shikijs/langs/clarity'))\n },\n {\n \"id\": \"clojure\",\n \"name\": \"Clojure\",\n \"aliases\": [\n \"clj\"\n ],\n \"import\": (() => import('@shikijs/langs/clojure'))\n },\n {\n \"id\": \"cmake\",\n \"name\": \"CMake\",\n \"import\": (() => import('@shikijs/langs/cmake'))\n },\n {\n \"id\": \"cobol\",\n \"name\": \"COBOL\",\n \"import\": (() => import('@shikijs/langs/cobol'))\n },\n {\n \"id\": \"codeowners\",\n \"name\": \"CODEOWNERS\",\n \"import\": (() => import('@shikijs/langs/codeowners'))\n },\n {\n \"id\": \"codeql\",\n \"name\": \"CodeQL\",\n \"aliases\": [\n \"ql\"\n ],\n \"import\": (() => import('@shikijs/langs/codeql'))\n },\n {\n \"id\": \"coffee\",\n \"name\": \"CoffeeScript\",\n \"aliases\": [\n \"coffeescript\"\n ],\n \"import\": (() => import('@shikijs/langs/coffee'))\n },\n {\n \"id\": \"common-lisp\",\n \"name\": \"Common Lisp\",\n \"aliases\": [\n \"lisp\"\n ],\n \"import\": (() => import('@shikijs/langs/common-lisp'))\n },\n {\n \"id\": \"coq\",\n \"name\": \"Coq\",\n \"import\": (() => import('@shikijs/langs/coq'))\n },\n {\n \"id\": \"cpp\",\n \"name\": \"C++\",\n \"aliases\": [\n \"c++\"\n ],\n \"import\": (() => import('@shikijs/langs/cpp'))\n },\n {\n \"id\": \"crystal\",\n \"name\": \"Crystal\",\n \"import\": (() => import('@shikijs/langs/crystal'))\n },\n {\n \"id\": \"csharp\",\n \"name\": \"C#\",\n \"aliases\": [\n \"c#\",\n \"cs\"\n ],\n \"import\": (() => import('@shikijs/langs/csharp'))\n },\n {\n \"id\": \"css\",\n \"name\": \"CSS\",\n \"import\": (() => import('@shikijs/langs/css'))\n },\n {\n \"id\": \"csv\",\n \"name\": \"CSV\",\n \"import\": (() => import('@shikijs/langs/csv'))\n },\n {\n \"id\": \"cue\",\n \"name\": \"CUE\",\n \"import\": (() => import('@shikijs/langs/cue'))\n },\n {\n \"id\": \"cypher\",\n \"name\": \"Cypher\",\n \"aliases\": [\n \"cql\"\n ],\n \"import\": (() => import('@shikijs/langs/cypher'))\n },\n {\n \"id\": \"d\",\n \"name\": \"D\",\n \"import\": (() => import('@shikijs/langs/d'))\n },\n {\n \"id\": \"dart\",\n \"name\": \"Dart\",\n \"import\": (() => import('@shikijs/langs/dart'))\n },\n {\n \"id\": \"dax\",\n \"name\": \"DAX\",\n \"import\": (() => import('@shikijs/langs/dax'))\n },\n {\n \"id\": \"desktop\",\n \"name\": \"Desktop\",\n \"import\": (() => import('@shikijs/langs/desktop'))\n },\n {\n \"id\": \"diff\",\n \"name\": \"Diff\",\n \"import\": (() => import('@shikijs/langs/diff'))\n },\n {\n \"id\": \"docker\",\n \"name\": \"Dockerfile\",\n \"aliases\": [\n \"dockerfile\"\n ],\n \"import\": (() => import('@shikijs/langs/docker'))\n },\n {\n \"id\": \"dotenv\",\n \"name\": \"dotEnv\",\n \"import\": (() => import('@shikijs/langs/dotenv'))\n },\n {\n \"id\": \"dream-maker\",\n \"name\": \"Dream Maker\",\n \"import\": (() => import('@shikijs/langs/dream-maker'))\n },\n {\n \"id\": \"edge\",\n \"name\": \"Edge\",\n \"import\": (() => import('@shikijs/langs/edge'))\n },\n {\n \"id\": \"elixir\",\n \"name\": \"Elixir\",\n \"import\": (() => import('@shikijs/langs/elixir'))\n },\n {\n \"id\": \"elm\",\n \"name\": \"Elm\",\n \"import\": (() => import('@shikijs/langs/elm'))\n },\n {\n \"id\": \"emacs-lisp\",\n \"name\": \"Emacs Lisp\",\n \"aliases\": [\n \"elisp\"\n ],\n \"import\": (() => import('@shikijs/langs/emacs-lisp'))\n },\n {\n \"id\": \"erb\",\n \"name\": \"ERB\",\n \"import\": (() => import('@shikijs/langs/erb'))\n },\n {\n \"id\": \"erlang\",\n \"name\": \"Erlang\",\n \"aliases\": [\n \"erl\"\n ],\n \"import\": (() => import('@shikijs/langs/erlang'))\n },\n {\n \"id\": \"fennel\",\n \"name\": \"Fennel\",\n \"import\": (() => import('@shikijs/langs/fennel'))\n },\n {\n \"id\": \"fish\",\n \"name\": \"Fish\",\n \"import\": (() => import('@shikijs/langs/fish'))\n },\n {\n \"id\": \"fluent\",\n \"name\": \"Fluent\",\n \"aliases\": [\n \"ftl\"\n ],\n \"import\": (() => import('@shikijs/langs/fluent'))\n },\n {\n \"id\": \"fortran-fixed-form\",\n \"name\": \"Fortran (Fixed Form)\",\n \"aliases\": [\n \"f\",\n \"for\",\n \"f77\"\n ],\n \"import\": (() => import('@shikijs/langs/fortran-fixed-form'))\n },\n {\n \"id\": \"fortran-free-form\",\n \"name\": \"Fortran (Free Form)\",\n \"aliases\": [\n \"f90\",\n \"f95\",\n \"f03\",\n \"f08\",\n \"f18\"\n ],\n \"import\": (() => import('@shikijs/langs/fortran-free-form'))\n },\n {\n \"id\": \"fsharp\",\n \"name\": \"F#\",\n \"aliases\": [\n \"f#\",\n \"fs\"\n ],\n \"import\": (() => import('@shikijs/langs/fsharp'))\n },\n {\n \"id\": \"gdresource\",\n \"name\": \"GDResource\",\n \"aliases\": [\n \"tscn\",\n \"tres\"\n ],\n \"import\": (() => import('@shikijs/langs/gdresource'))\n },\n {\n \"id\": \"gdscript\",\n \"name\": \"GDScript\",\n \"aliases\": [\n \"gd\"\n ],\n \"import\": (() => import('@shikijs/langs/gdscript'))\n },\n {\n \"id\": \"gdshader\",\n \"name\": \"GDShader\",\n \"import\": (() => import('@shikijs/langs/gdshader'))\n },\n {\n \"id\": \"genie\",\n \"name\": \"Genie\",\n \"import\": (() => import('@shikijs/langs/genie'))\n },\n {\n \"id\": \"gherkin\",\n \"name\": \"Gherkin\",\n \"import\": (() => import('@shikijs/langs/gherkin'))\n },\n {\n \"id\": \"git-commit\",\n \"name\": \"Git Commit Message\",\n \"import\": (() => import('@shikijs/langs/git-commit'))\n },\n {\n \"id\": \"git-rebase\",\n \"name\": \"Git Rebase Message\",\n \"import\": (() => import('@shikijs/langs/git-rebase'))\n },\n {\n \"id\": \"gleam\",\n \"name\": \"Gleam\",\n \"import\": (() => import('@shikijs/langs/gleam'))\n },\n {\n \"id\": \"glimmer-js\",\n \"name\": \"Glimmer JS\",\n \"aliases\": [\n \"gjs\"\n ],\n \"import\": (() => import('@shikijs/langs/glimmer-js'))\n },\n {\n \"id\": \"glimmer-ts\",\n \"name\": \"Glimmer TS\",\n \"aliases\": [\n \"gts\"\n ],\n \"import\": (() => import('@shikijs/langs/glimmer-ts'))\n },\n {\n \"id\": \"glsl\",\n \"name\": \"GLSL\",\n \"import\": (() => import('@shikijs/langs/glsl'))\n },\n {\n \"id\": \"gn\",\n \"name\": \"GN\",\n \"import\": (() => import('@shikijs/langs/gn'))\n },\n {\n \"id\": \"gnuplot\",\n \"name\": \"Gnuplot\",\n \"import\": (() => import('@shikijs/langs/gnuplot'))\n },\n {\n \"id\": \"go\",\n \"name\": \"Go\",\n \"import\": (() => import('@shikijs/langs/go'))\n },\n {\n \"id\": \"graphql\",\n \"name\": \"GraphQL\",\n \"aliases\": [\n \"gql\"\n ],\n \"import\": (() => import('@shikijs/langs/graphql'))\n },\n {\n \"id\": \"groovy\",\n \"name\": \"Groovy\",\n \"import\": (() => import('@shikijs/langs/groovy'))\n },\n {\n \"id\": \"hack\",\n \"name\": \"Hack\",\n \"import\": (() => import('@shikijs/langs/hack'))\n },\n {\n \"id\": \"haml\",\n \"name\": \"Ruby Haml\",\n \"import\": (() => import('@shikijs/langs/haml'))\n },\n {\n \"id\": \"handlebars\",\n \"name\": \"Handlebars\",\n \"aliases\": [\n \"hbs\"\n ],\n \"import\": (() => import('@shikijs/langs/handlebars'))\n },\n {\n \"id\": \"haskell\",\n \"name\": \"Haskell\",\n \"aliases\": [\n \"hs\"\n ],\n \"import\": (() => import('@shikijs/langs/haskell'))\n },\n {\n \"id\": \"haxe\",\n \"name\": \"Haxe\",\n \"import\": (() => import('@shikijs/langs/haxe'))\n },\n {\n \"id\": \"hcl\",\n \"name\": \"HashiCorp HCL\",\n \"import\": (() => import('@shikijs/langs/hcl'))\n },\n {\n \"id\": \"hjson\",\n \"name\": \"Hjson\",\n \"import\": (() => import('@shikijs/langs/hjson'))\n },\n {\n \"id\": \"hlsl\",\n \"name\": \"HLSL\",\n \"import\": (() => import('@shikijs/langs/hlsl'))\n },\n {\n \"id\": \"html\",\n \"name\": \"HTML\",\n \"import\": (() => import('@shikijs/langs/html'))\n },\n {\n \"id\": \"html-derivative\",\n \"name\": \"HTML (Derivative)\",\n \"import\": (() => import('@shikijs/langs/html-derivative'))\n },\n {\n \"id\": \"http\",\n \"name\": \"HTTP\",\n \"import\": (() => import('@shikijs/langs/http'))\n },\n {\n \"id\": \"hurl\",\n \"name\": \"Hurl\",\n \"import\": (() => import('@shikijs/langs/hurl'))\n },\n {\n \"id\": \"hxml\",\n \"name\": \"HXML\",\n \"import\": (() => import('@shikijs/langs/hxml'))\n },\n {\n \"id\": \"hy\",\n \"name\": \"Hy\",\n \"import\": (() => import('@shikijs/langs/hy'))\n },\n {\n \"id\": \"imba\",\n \"name\": \"Imba\",\n \"import\": (() => import('@shikijs/langs/imba'))\n },\n {\n \"id\": \"ini\",\n \"name\": \"INI\",\n \"aliases\": [\n \"properties\"\n ],\n \"import\": (() => import('@shikijs/langs/ini'))\n },\n {\n \"id\": \"java\",\n \"name\": \"Java\",\n \"import\": (() => import('@shikijs/langs/java'))\n },\n {\n \"id\": \"javascript\",\n \"name\": \"JavaScript\",\n \"aliases\": [\n \"js\",\n \"cjs\",\n \"mjs\"\n ],\n \"import\": (() => import('@shikijs/langs/javascript'))\n },\n {\n \"id\": \"jinja\",\n \"name\": \"Jinja\",\n \"import\": (() => import('@shikijs/langs/jinja'))\n },\n {\n \"id\": \"jison\",\n \"name\": \"Jison\",\n \"import\": (() => import('@shikijs/langs/jison'))\n },\n {\n \"id\": \"json\",\n \"name\": \"JSON\",\n \"import\": (() => import('@shikijs/langs/json'))\n },\n {\n \"id\": \"json5\",\n \"name\": \"JSON5\",\n \"import\": (() => import('@shikijs/langs/json5'))\n },\n {\n \"id\": \"jsonc\",\n \"name\": \"JSON with Comments\",\n \"import\": (() => import('@shikijs/langs/jsonc'))\n },\n {\n \"id\": \"jsonl\",\n \"name\": \"JSON Lines\",\n \"import\": (() => import('@shikijs/langs/jsonl'))\n },\n {\n \"id\": \"jsonnet\",\n \"name\": \"Jsonnet\",\n \"import\": (() => import('@shikijs/langs/jsonnet'))\n },\n {\n \"id\": \"jssm\",\n \"name\": \"JSSM\",\n \"aliases\": [\n \"fsl\"\n ],\n \"import\": (() => import('@shikijs/langs/jssm'))\n },\n {\n \"id\": \"jsx\",\n \"name\": \"JSX\",\n \"import\": (() => import('@shikijs/langs/jsx'))\n },\n {\n \"id\": \"julia\",\n \"name\": \"Julia\",\n \"aliases\": [\n \"jl\"\n ],\n \"import\": (() => import('@shikijs/langs/julia'))\n },\n {\n \"id\": \"just\",\n \"name\": \"Just\",\n \"import\": (() => import('@shikijs/langs/just'))\n },\n {\n \"id\": \"kdl\",\n \"name\": \"KDL\",\n \"import\": (() => import('@shikijs/langs/kdl'))\n },\n {\n \"id\": \"kotlin\",\n \"name\": \"Kotlin\",\n \"aliases\": [\n \"kt\",\n \"kts\"\n ],\n \"import\": (() => import('@shikijs/langs/kotlin'))\n },\n {\n \"id\": \"kusto\",\n \"name\": \"Kusto\",\n \"aliases\": [\n \"kql\"\n ],\n \"import\": (() => import('@shikijs/langs/kusto'))\n },\n {\n \"id\": \"latex\",\n \"name\": \"LaTeX\",\n \"import\": (() => import('@shikijs/langs/latex'))\n },\n {\n \"id\": \"lean\",\n \"name\": \"Lean 4\",\n \"aliases\": [\n \"lean4\"\n ],\n \"import\": (() => import('@shikijs/langs/lean'))\n },\n {\n \"id\": \"less\",\n \"name\": \"Less\",\n \"import\": (() => import('@shikijs/langs/less'))\n },\n {\n \"id\": \"liquid\",\n \"name\": \"Liquid\",\n \"import\": (() => import('@shikijs/langs/liquid'))\n },\n {\n \"id\": \"llvm\",\n \"name\": \"LLVM IR\",\n \"import\": (() => import('@shikijs/langs/llvm'))\n },\n {\n \"id\": \"log\",\n \"name\": \"Log file\",\n \"import\": (() => import('@shikijs/langs/log'))\n },\n {\n \"id\": \"logo\",\n \"name\": \"Logo\",\n \"import\": (() => import('@shikijs/langs/logo'))\n },\n {\n \"id\": \"lua\",\n \"name\": \"Lua\",\n \"import\": (() => import('@shikijs/langs/lua'))\n },\n {\n \"id\": \"luau\",\n \"name\": \"Luau\",\n \"import\": (() => import('@shikijs/langs/luau'))\n },\n {\n \"id\": \"make\",\n \"name\": \"Makefile\",\n \"aliases\": [\n \"makefile\"\n ],\n \"import\": (() => import('@shikijs/langs/make'))\n },\n {\n \"id\": \"markdown\",\n \"name\": \"Markdown\",\n \"aliases\": [\n \"md\"\n ],\n \"import\": (() => import('@shikijs/langs/markdown'))\n },\n {\n \"id\": \"marko\",\n \"name\": \"Marko\",\n \"import\": (() => import('@shikijs/langs/marko'))\n },\n {\n \"id\": \"matlab\",\n \"name\": \"MATLAB\",\n \"import\": (() => import('@shikijs/langs/matlab'))\n },\n {\n \"id\": \"mdc\",\n \"name\": \"MDC\",\n \"import\": (() => import('@shikijs/langs/mdc'))\n },\n {\n \"id\": \"mdx\",\n \"name\": \"MDX\",\n \"import\": (() => import('@shikijs/langs/mdx'))\n },\n {\n \"id\": \"mermaid\",\n \"name\": \"Mermaid\",\n \"aliases\": [\n \"mmd\"\n ],\n \"import\": (() => import('@shikijs/langs/mermaid'))\n },\n {\n \"id\": \"mipsasm\",\n \"name\": \"MIPS Assembly\",\n \"aliases\": [\n \"mips\"\n ],\n \"import\": (() => import('@shikijs/langs/mipsasm'))\n },\n {\n \"id\": \"mojo\",\n \"name\": \"Mojo\",\n \"import\": (() => import('@shikijs/langs/mojo'))\n },\n {\n \"id\": \"moonbit\",\n \"name\": \"MoonBit\",\n \"aliases\": [\n \"mbt\",\n \"mbti\"\n ],\n \"import\": (() => import('@shikijs/langs/moonbit'))\n },\n {\n \"id\": \"move\",\n \"name\": \"Move\",\n \"import\": (() => import('@shikijs/langs/move'))\n },\n {\n \"id\": \"narrat\",\n \"name\": \"Narrat Language\",\n \"aliases\": [\n \"nar\"\n ],\n \"import\": (() => import('@shikijs/langs/narrat'))\n },\n {\n \"id\": \"nextflow\",\n \"name\": \"Nextflow\",\n \"aliases\": [\n \"nf\"\n ],\n \"import\": (() => import('@shikijs/langs/nextflow'))\n },\n {\n \"id\": \"nextflow-groovy\",\n \"name\": \"nextflow-groovy\",\n \"import\": (() => import('@shikijs/langs/nextflow-groovy'))\n },\n {\n \"id\": \"nginx\",\n \"name\": \"Nginx\",\n \"import\": (() => import('@shikijs/langs/nginx'))\n },\n {\n \"id\": \"nim\",\n \"name\": \"Nim\",\n \"import\": (() => import('@shikijs/langs/nim'))\n },\n {\n \"id\": \"nix\",\n \"name\": \"Nix\",\n \"import\": (() => import('@shikijs/langs/nix'))\n },\n {\n \"id\": \"nushell\",\n \"name\": \"nushell\",\n \"aliases\": [\n \"nu\"\n ],\n \"import\": (() => import('@shikijs/langs/nushell'))\n },\n {\n \"id\": \"objective-c\",\n \"name\": \"Objective-C\",\n \"aliases\": [\n \"objc\"\n ],\n \"import\": (() => import('@shikijs/langs/objective-c'))\n },\n {\n \"id\": \"objective-cpp\",\n \"name\": \"Objective-C++\",\n \"import\": (() => import('@shikijs/langs/objective-cpp'))\n },\n {\n \"id\": \"ocaml\",\n \"name\": \"OCaml\",\n \"import\": (() => import('@shikijs/langs/ocaml'))\n },\n {\n \"id\": \"odin\",\n \"name\": \"Odin\",\n \"import\": (() => import('@shikijs/langs/odin'))\n },\n {\n \"id\": \"openscad\",\n \"name\": \"OpenSCAD\",\n \"aliases\": [\n \"scad\"\n ],\n \"import\": (() => import('@shikijs/langs/openscad'))\n },\n {\n \"id\": \"pascal\",\n \"name\": \"Pascal\",\n \"import\": (() => import('@shikijs/langs/pascal'))\n },\n {\n \"id\": \"perl\",\n \"name\": \"Perl\",\n \"import\": (() => import('@shikijs/langs/perl'))\n },\n {\n \"id\": \"php\",\n \"name\": \"PHP\",\n \"import\": (() => import('@shikijs/langs/php'))\n },\n {\n \"id\": \"pkl\",\n \"name\": \"Pkl\",\n \"import\": (() => import('@shikijs/langs/pkl'))\n },\n {\n \"id\": \"plsql\",\n \"name\": \"PL/SQL\",\n \"import\": (() => import('@shikijs/langs/plsql'))\n },\n {\n \"id\": \"po\",\n \"name\": \"Gettext PO\",\n \"aliases\": [\n \"pot\",\n \"potx\"\n ],\n \"import\": (() => import('@shikijs/langs/po'))\n },\n {\n \"id\": \"polar\",\n \"name\": \"Polar\",\n \"import\": (() => import('@shikijs/langs/polar'))\n },\n {\n \"id\": \"postcss\",\n \"name\": \"PostCSS\",\n \"import\": (() => import('@shikijs/langs/postcss'))\n },\n {\n \"id\": \"powerquery\",\n \"name\": \"PowerQuery\",\n \"import\": (() => import('@shikijs/langs/powerquery'))\n },\n {\n \"id\": \"powershell\",\n \"name\": \"PowerShell\",\n \"aliases\": [\n \"ps\",\n \"ps1\"\n ],\n \"import\": (() => import('@shikijs/langs/powershell'))\n },\n {\n \"id\": \"prisma\",\n \"name\": \"Prisma\",\n \"import\": (() => import('@shikijs/langs/prisma'))\n },\n {\n \"id\": \"prolog\",\n \"name\": \"Prolog\",\n \"import\": (() => import('@shikijs/langs/prolog'))\n },\n {\n \"id\": \"proto\",\n \"name\": \"Protocol Buffer 3\",\n \"aliases\": [\n \"protobuf\"\n ],\n \"import\": (() => import('@shikijs/langs/proto'))\n },\n {\n \"id\": \"pug\",\n \"name\": \"Pug\",\n \"aliases\": [\n \"jade\"\n ],\n \"import\": (() => import('@shikijs/langs/pug'))\n },\n {\n \"id\": \"puppet\",\n \"name\": \"Puppet\",\n \"import\": (() => import('@shikijs/langs/puppet'))\n },\n {\n \"id\": \"purescript\",\n \"name\": \"PureScript\",\n \"import\": (() => import('@shikijs/langs/purescript'))\n },\n {\n \"id\": \"python\",\n \"name\": \"Python\",\n \"aliases\": [\n \"py\"\n ],\n \"import\": (() => import('@shikijs/langs/python'))\n },\n {\n \"id\": \"qml\",\n \"name\": \"QML\",\n \"import\": (() => import('@shikijs/langs/qml'))\n },\n {\n \"id\": \"qmldir\",\n \"name\": \"QML Directory\",\n \"import\": (() => import('@shikijs/langs/qmldir'))\n },\n {\n \"id\": \"qss\",\n \"name\": \"Qt Style Sheets\",\n \"import\": (() => import('@shikijs/langs/qss'))\n },\n {\n \"id\": \"r\",\n \"name\": \"R\",\n \"import\": (() => import('@shikijs/langs/r'))\n },\n {\n \"id\": \"racket\",\n \"name\": \"Racket\",\n \"import\": (() => import('@shikijs/langs/racket'))\n },\n {\n \"id\": \"raku\",\n \"name\": \"Raku\",\n \"aliases\": [\n \"perl6\"\n ],\n \"import\": (() => import('@shikijs/langs/raku'))\n },\n {\n \"id\": \"razor\",\n \"name\": \"ASP.NET Razor\",\n \"import\": (() => import('@shikijs/langs/razor'))\n },\n {\n \"id\": \"reg\",\n \"name\": \"Windows Registry Script\",\n \"import\": (() => import('@shikijs/langs/reg'))\n },\n {\n \"id\": \"regexp\",\n \"name\": \"RegExp\",\n \"aliases\": [\n \"regex\"\n ],\n \"import\": (() => import('@shikijs/langs/regexp'))\n },\n {\n \"id\": \"rel\",\n \"name\": \"Rel\",\n \"import\": (() => import('@shikijs/langs/rel'))\n },\n {\n \"id\": \"riscv\",\n \"name\": \"RISC-V\",\n \"import\": (() => import('@shikijs/langs/riscv'))\n },\n {\n \"id\": \"ron\",\n \"name\": \"RON\",\n \"import\": (() => import('@shikijs/langs/ron'))\n },\n {\n \"id\": \"rosmsg\",\n \"name\": \"ROS Interface\",\n \"import\": (() => import('@shikijs/langs/rosmsg'))\n },\n {\n \"id\": \"rst\",\n \"name\": \"reStructuredText\",\n \"import\": (() => import('@shikijs/langs/rst'))\n },\n {\n \"id\": \"ruby\",\n \"name\": \"Ruby\",\n \"aliases\": [\n \"rb\"\n ],\n \"import\": (() => import('@shikijs/langs/ruby'))\n },\n {\n \"id\": \"rust\",\n \"name\": \"Rust\",\n \"aliases\": [\n \"rs\"\n ],\n \"import\": (() => import('@shikijs/langs/rust'))\n },\n {\n \"id\": \"sas\",\n \"name\": \"SAS\",\n \"import\": (() => import('@shikijs/langs/sas'))\n },\n {\n \"id\": \"sass\",\n \"name\": \"Sass\",\n \"import\": (() => import('@shikijs/langs/sass'))\n },\n {\n \"id\": \"scala\",\n \"name\": \"Scala\",\n \"import\": (() => import('@shikijs/langs/scala'))\n },\n {\n \"id\": \"scheme\",\n \"name\": \"Scheme\",\n \"import\": (() => import('@shikijs/langs/scheme'))\n },\n {\n \"id\": \"scss\",\n \"name\": \"SCSS\",\n \"import\": (() => import('@shikijs/langs/scss'))\n },\n {\n \"id\": \"sdbl\",\n \"name\": \"1C (Query)\",\n \"aliases\": [\n \"1c-query\"\n ],\n \"import\": (() => import('@shikijs/langs/sdbl'))\n },\n {\n \"id\": \"shaderlab\",\n \"name\": \"ShaderLab\",\n \"aliases\": [\n \"shader\"\n ],\n \"import\": (() => import('@shikijs/langs/shaderlab'))\n },\n {\n \"id\": \"shellscript\",\n \"name\": \"Shell\",\n \"aliases\": [\n \"bash\",\n \"sh\",\n \"shell\",\n \"zsh\"\n ],\n \"import\": (() => import('@shikijs/langs/shellscript'))\n },\n {\n \"id\": \"shellsession\",\n \"name\": \"Shell Session\",\n \"aliases\": [\n \"console\"\n ],\n \"import\": (() => import('@shikijs/langs/shellsession'))\n },\n {\n \"id\": \"smalltalk\",\n \"name\": \"Smalltalk\",\n \"import\": (() => import('@shikijs/langs/smalltalk'))\n },\n {\n \"id\": \"solidity\",\n \"name\": \"Solidity\",\n \"import\": (() => import('@shikijs/langs/solidity'))\n },\n {\n \"id\": \"soy\",\n \"name\": \"Closure Templates\",\n \"aliases\": [\n \"closure-templates\"\n ],\n \"import\": (() => import('@shikijs/langs/soy'))\n },\n {\n \"id\": \"sparql\",\n \"name\": \"SPARQL\",\n \"import\": (() => import('@shikijs/langs/sparql'))\n },\n {\n \"id\": \"splunk\",\n \"name\": \"Splunk Query Language\",\n \"aliases\": [\n \"spl\"\n ],\n \"import\": (() => import('@shikijs/langs/splunk'))\n },\n {\n \"id\": \"sql\",\n \"name\": \"SQL\",\n \"import\": (() => import('@shikijs/langs/sql'))\n },\n {\n \"id\": \"ssh-config\",\n \"name\": \"SSH Config\",\n \"import\": (() => import('@shikijs/langs/ssh-config'))\n },\n {\n \"id\": \"stata\",\n \"name\": \"Stata\",\n \"import\": (() => import('@shikijs/langs/stata'))\n },\n {\n \"id\": \"stylus\",\n \"name\": \"Stylus\",\n \"aliases\": [\n \"styl\"\n ],\n \"import\": (() => import('@shikijs/langs/stylus'))\n },\n {\n \"id\": \"surrealql\",\n \"name\": \"SurrealQL\",\n \"aliases\": [\n \"surql\"\n ],\n \"import\": (() => import('@shikijs/langs/surrealql'))\n },\n {\n \"id\": \"svelte\",\n \"name\": \"Svelte\",\n \"import\": (() => import('@shikijs/langs/svelte'))\n },\n {\n \"id\": \"swift\",\n \"name\": \"Swift\",\n \"import\": (() => import('@shikijs/langs/swift'))\n },\n {\n \"id\": \"system-verilog\",\n \"name\": \"SystemVerilog\",\n \"import\": (() => import('@shikijs/langs/system-verilog'))\n },\n {\n \"id\": \"systemd\",\n \"name\": \"Systemd Units\",\n \"import\": (() => import('@shikijs/langs/systemd'))\n },\n {\n \"id\": \"talonscript\",\n \"name\": \"TalonScript\",\n \"aliases\": [\n \"talon\"\n ],\n \"import\": (() => import('@shikijs/langs/talonscript'))\n },\n {\n \"id\": \"tasl\",\n \"name\": \"Tasl\",\n \"import\": (() => import('@shikijs/langs/tasl'))\n },\n {\n \"id\": \"tcl\",\n \"name\": \"Tcl\",\n \"import\": (() => import('@shikijs/langs/tcl'))\n },\n {\n \"id\": \"templ\",\n \"name\": \"Templ\",\n \"import\": (() => import('@shikijs/langs/templ'))\n },\n {\n \"id\": \"terraform\",\n \"name\": \"Terraform\",\n \"aliases\": [\n \"tf\",\n \"tfvars\"\n ],\n \"import\": (() => import('@shikijs/langs/terraform'))\n },\n {\n \"id\": \"tex\",\n \"name\": \"TeX\",\n \"import\": (() => import('@shikijs/langs/tex'))\n },\n {\n \"id\": \"toml\",\n \"name\": \"TOML\",\n \"import\": (() => import('@shikijs/langs/toml'))\n },\n {\n \"id\": \"ts-tags\",\n \"name\": \"TypeScript with Tags\",\n \"aliases\": [\n \"lit\"\n ],\n \"import\": (() => import('@shikijs/langs/ts-tags'))\n },\n {\n \"id\": \"tsv\",\n \"name\": \"TSV\",\n \"import\": (() => import('@shikijs/langs/tsv'))\n },\n {\n \"id\": \"tsx\",\n \"name\": \"TSX\",\n \"import\": (() => import('@shikijs/langs/tsx'))\n },\n {\n \"id\": \"turtle\",\n \"name\": \"Turtle\",\n \"import\": (() => import('@shikijs/langs/turtle'))\n },\n {\n \"id\": \"twig\",\n \"name\": \"Twig\",\n \"import\": (() => import('@shikijs/langs/twig'))\n },\n {\n \"id\": \"typescript\",\n \"name\": \"TypeScript\",\n \"aliases\": [\n \"ts\",\n \"cts\",\n \"mts\"\n ],\n \"import\": (() => import('@shikijs/langs/typescript'))\n },\n {\n \"id\": \"typespec\",\n \"name\": \"TypeSpec\",\n \"aliases\": [\n \"tsp\"\n ],\n \"import\": (() => import('@shikijs/langs/typespec'))\n },\n {\n \"id\": \"typst\",\n \"name\": \"Typst\",\n \"aliases\": [\n \"typ\"\n ],\n \"import\": (() => import('@shikijs/langs/typst'))\n },\n {\n \"id\": \"v\",\n \"name\": \"V\",\n \"import\": (() => import('@shikijs/langs/v'))\n },\n {\n \"id\": \"vala\",\n \"name\": \"Vala\",\n \"import\": (() => import('@shikijs/langs/vala'))\n },\n {\n \"id\": \"vb\",\n \"name\": \"Visual Basic\",\n \"aliases\": [\n \"cmd\"\n ],\n \"import\": (() => import('@shikijs/langs/vb'))\n },\n {\n \"id\": \"verilog\",\n \"name\": \"Verilog\",\n \"import\": (() => import('@shikijs/langs/verilog'))\n },\n {\n \"id\": \"vhdl\",\n \"name\": \"VHDL\",\n \"import\": (() => import('@shikijs/langs/vhdl'))\n },\n {\n \"id\": \"viml\",\n \"name\": \"Vim Script\",\n \"aliases\": [\n \"vim\",\n \"vimscript\"\n ],\n \"import\": (() => import('@shikijs/langs/viml'))\n },\n {\n \"id\": \"vue\",\n \"name\": \"Vue\",\n \"import\": (() => import('@shikijs/langs/vue'))\n },\n {\n \"id\": \"vue-html\",\n \"name\": \"Vue HTML\",\n \"import\": (() => import('@shikijs/langs/vue-html'))\n },\n {\n \"id\": \"vue-vine\",\n \"name\": \"Vue Vine\",\n \"import\": (() => import('@shikijs/langs/vue-vine'))\n },\n {\n \"id\": \"vyper\",\n \"name\": \"Vyper\",\n \"aliases\": [\n \"vy\"\n ],\n \"import\": (() => import('@shikijs/langs/vyper'))\n },\n {\n \"id\": \"wasm\",\n \"name\": \"WebAssembly\",\n \"import\": (() => import('@shikijs/langs/wasm'))\n },\n {\n \"id\": \"wenyan\",\n \"name\": \"Wenyan\",\n \"aliases\": [\n \"\\u6587\\u8A00\"\n ],\n \"import\": (() => import('@shikijs/langs/wenyan'))\n },\n {\n \"id\": \"wgsl\",\n \"name\": \"WGSL\",\n \"import\": (() => import('@shikijs/langs/wgsl'))\n },\n {\n \"id\": \"wikitext\",\n \"name\": \"Wikitext\",\n \"aliases\": [\n \"mediawiki\",\n \"wiki\"\n ],\n \"import\": (() => import('@shikijs/langs/wikitext'))\n },\n {\n \"id\": \"wit\",\n \"name\": \"WebAssembly Interface Types\",\n \"import\": (() => import('@shikijs/langs/wit'))\n },\n {\n \"id\": \"wolfram\",\n \"name\": \"Wolfram\",\n \"aliases\": [\n \"wl\"\n ],\n \"import\": (() => import('@shikijs/langs/wolfram'))\n },\n {\n \"id\": \"xml\",\n \"name\": \"XML\",\n \"import\": (() => import('@shikijs/langs/xml'))\n },\n {\n \"id\": \"xsl\",\n \"name\": \"XSL\",\n \"import\": (() => import('@shikijs/langs/xsl'))\n },\n {\n \"id\": \"yaml\",\n \"name\": \"YAML\",\n \"aliases\": [\n \"yml\"\n ],\n \"import\": (() => import('@shikijs/langs/yaml'))\n },\n {\n \"id\": \"zenscript\",\n \"name\": \"ZenScript\",\n \"import\": (() => import('@shikijs/langs/zenscript'))\n },\n {\n \"id\": \"zig\",\n \"name\": \"Zig\",\n \"import\": (() => import('@shikijs/langs/zig'))\n }\n];\nconst bundledLanguagesBase = Object.fromEntries(bundledLanguagesInfo.map((i) => [i.id, i.import]));\nconst bundledLanguagesAlias = Object.fromEntries(bundledLanguagesInfo.flatMap((i) => i.aliases?.map((a) => [a, i.import]) || []));\nconst bundledLanguages = {\n ...bundledLanguagesBase,\n ...bundledLanguagesAlias\n};\n\nexport { bundledLanguages, bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo };\n","const bundledThemesInfo = [\n {\n \"id\": \"andromeeda\",\n \"displayName\": \"Andromeeda\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/andromeeda'))\n },\n {\n \"id\": \"aurora-x\",\n \"displayName\": \"Aurora X\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/aurora-x'))\n },\n {\n \"id\": \"ayu-dark\",\n \"displayName\": \"Ayu Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/ayu-dark'))\n },\n {\n \"id\": \"ayu-light\",\n \"displayName\": \"Ayu Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/ayu-light'))\n },\n {\n \"id\": \"ayu-mirage\",\n \"displayName\": \"Ayu Mirage\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/ayu-mirage'))\n },\n {\n \"id\": \"catppuccin-frappe\",\n \"displayName\": \"Catppuccin Frapp\\xE9\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/catppuccin-frappe'))\n },\n {\n \"id\": \"catppuccin-latte\",\n \"displayName\": \"Catppuccin Latte\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/catppuccin-latte'))\n },\n {\n \"id\": \"catppuccin-macchiato\",\n \"displayName\": \"Catppuccin Macchiato\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/catppuccin-macchiato'))\n },\n {\n \"id\": \"catppuccin-mocha\",\n \"displayName\": \"Catppuccin Mocha\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/catppuccin-mocha'))\n },\n {\n \"id\": \"dark-plus\",\n \"displayName\": \"Dark Plus\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/dark-plus'))\n },\n {\n \"id\": \"dracula\",\n \"displayName\": \"Dracula Theme\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/dracula'))\n },\n {\n \"id\": \"dracula-soft\",\n \"displayName\": \"Dracula Theme Soft\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/dracula-soft'))\n },\n {\n \"id\": \"everforest-dark\",\n \"displayName\": \"Everforest Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/everforest-dark'))\n },\n {\n \"id\": \"everforest-light\",\n \"displayName\": \"Everforest Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/everforest-light'))\n },\n {\n \"id\": \"github-dark\",\n \"displayName\": \"GitHub Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/github-dark'))\n },\n {\n \"id\": \"github-dark-default\",\n \"displayName\": \"GitHub Dark Default\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/github-dark-default'))\n },\n {\n \"id\": \"github-dark-dimmed\",\n \"displayName\": \"GitHub Dark Dimmed\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/github-dark-dimmed'))\n },\n {\n \"id\": \"github-dark-high-contrast\",\n \"displayName\": \"GitHub Dark High Contrast\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/github-dark-high-contrast'))\n },\n {\n \"id\": \"github-light\",\n \"displayName\": \"GitHub Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/github-light'))\n },\n {\n \"id\": \"github-light-default\",\n \"displayName\": \"GitHub Light Default\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/github-light-default'))\n },\n {\n \"id\": \"github-light-high-contrast\",\n \"displayName\": \"GitHub Light High Contrast\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/github-light-high-contrast'))\n },\n {\n \"id\": \"gruvbox-dark-hard\",\n \"displayName\": \"Gruvbox Dark Hard\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/gruvbox-dark-hard'))\n },\n {\n \"id\": \"gruvbox-dark-medium\",\n \"displayName\": \"Gruvbox Dark Medium\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/gruvbox-dark-medium'))\n },\n {\n \"id\": \"gruvbox-dark-soft\",\n \"displayName\": \"Gruvbox Dark Soft\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/gruvbox-dark-soft'))\n },\n {\n \"id\": \"gruvbox-light-hard\",\n \"displayName\": \"Gruvbox Light Hard\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/gruvbox-light-hard'))\n },\n {\n \"id\": \"gruvbox-light-medium\",\n \"displayName\": \"Gruvbox Light Medium\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/gruvbox-light-medium'))\n },\n {\n \"id\": \"gruvbox-light-soft\",\n \"displayName\": \"Gruvbox Light Soft\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/gruvbox-light-soft'))\n },\n {\n \"id\": \"horizon\",\n \"displayName\": \"Horizon\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/horizon'))\n },\n {\n \"id\": \"horizon-bright\",\n \"displayName\": \"Horizon Bright\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/horizon-bright'))\n },\n {\n \"id\": \"houston\",\n \"displayName\": \"Houston\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/houston'))\n },\n {\n \"id\": \"kanagawa-dragon\",\n \"displayName\": \"Kanagawa Dragon\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/kanagawa-dragon'))\n },\n {\n \"id\": \"kanagawa-lotus\",\n \"displayName\": \"Kanagawa Lotus\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/kanagawa-lotus'))\n },\n {\n \"id\": \"kanagawa-wave\",\n \"displayName\": \"Kanagawa Wave\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/kanagawa-wave'))\n },\n {\n \"id\": \"laserwave\",\n \"displayName\": \"LaserWave\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/laserwave'))\n },\n {\n \"id\": \"light-plus\",\n \"displayName\": \"Light Plus\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/light-plus'))\n },\n {\n \"id\": \"material-theme\",\n \"displayName\": \"Material Theme\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/material-theme'))\n },\n {\n \"id\": \"material-theme-darker\",\n \"displayName\": \"Material Theme Darker\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/material-theme-darker'))\n },\n {\n \"id\": \"material-theme-lighter\",\n \"displayName\": \"Material Theme Lighter\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/material-theme-lighter'))\n },\n {\n \"id\": \"material-theme-ocean\",\n \"displayName\": \"Material Theme Ocean\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/material-theme-ocean'))\n },\n {\n \"id\": \"material-theme-palenight\",\n \"displayName\": \"Material Theme Palenight\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/material-theme-palenight'))\n },\n {\n \"id\": \"min-dark\",\n \"displayName\": \"Min Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/min-dark'))\n },\n {\n \"id\": \"min-light\",\n \"displayName\": \"Min Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/min-light'))\n },\n {\n \"id\": \"monokai\",\n \"displayName\": \"Monokai\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/monokai'))\n },\n {\n \"id\": \"night-owl\",\n \"displayName\": \"Night Owl\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/night-owl'))\n },\n {\n \"id\": \"night-owl-light\",\n \"displayName\": \"Night Owl Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/night-owl-light'))\n },\n {\n \"id\": \"nord\",\n \"displayName\": \"Nord\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/nord'))\n },\n {\n \"id\": \"one-dark-pro\",\n \"displayName\": \"One Dark Pro\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/one-dark-pro'))\n },\n {\n \"id\": \"one-light\",\n \"displayName\": \"One Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/one-light'))\n },\n {\n \"id\": \"plastic\",\n \"displayName\": \"Plastic\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/plastic'))\n },\n {\n \"id\": \"poimandres\",\n \"displayName\": \"Poimandres\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/poimandres'))\n },\n {\n \"id\": \"red\",\n \"displayName\": \"Red\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/red'))\n },\n {\n \"id\": \"rose-pine\",\n \"displayName\": \"Ros\\xE9 Pine\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/rose-pine'))\n },\n {\n \"id\": \"rose-pine-dawn\",\n \"displayName\": \"Ros\\xE9 Pine Dawn\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/rose-pine-dawn'))\n },\n {\n \"id\": \"rose-pine-moon\",\n \"displayName\": \"Ros\\xE9 Pine Moon\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/rose-pine-moon'))\n },\n {\n \"id\": \"slack-dark\",\n \"displayName\": \"Slack Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/slack-dark'))\n },\n {\n \"id\": \"slack-ochin\",\n \"displayName\": \"Slack Ochin\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/slack-ochin'))\n },\n {\n \"id\": \"snazzy-light\",\n \"displayName\": \"Snazzy Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/snazzy-light'))\n },\n {\n \"id\": \"solarized-dark\",\n \"displayName\": \"Solarized Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/solarized-dark'))\n },\n {\n \"id\": \"solarized-light\",\n \"displayName\": \"Solarized Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/solarized-light'))\n },\n {\n \"id\": \"synthwave-84\",\n \"displayName\": \"Synthwave '84\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/synthwave-84'))\n },\n {\n \"id\": \"tokyo-night\",\n \"displayName\": \"Tokyo Night\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/tokyo-night'))\n },\n {\n \"id\": \"vesper\",\n \"displayName\": \"Vesper\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/vesper'))\n },\n {\n \"id\": \"vitesse-black\",\n \"displayName\": \"Vitesse Black\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/vitesse-black'))\n },\n {\n \"id\": \"vitesse-dark\",\n \"displayName\": \"Vitesse Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/vitesse-dark'))\n },\n {\n \"id\": \"vitesse-light\",\n \"displayName\": \"Vitesse Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/vitesse-light'))\n }\n];\nconst bundledThemes = Object.fromEntries(bundledThemesInfo.map((i) => [i.id, i.import]));\n\nexport { bundledThemes, bundledThemesInfo };\n","class ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ShikiError\";\n }\n}\n\nfunction getHeapMax() {\n return 2147483648;\n}\nfunction _emscripten_get_now() {\n return typeof performance !== \"undefined\" ? performance.now() : Date.now();\n}\nconst alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;\nasync function main(init) {\n let wasmMemory;\n let buffer;\n const binding = {};\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n binding.HEAPU8 = new Uint8Array(buf);\n binding.HEAPU32 = new Uint32Array(buf);\n }\n function _emscripten_memcpy_big(dest, src, num) {\n binding.HEAPU8.copyWithin(dest, src, src + num);\n }\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n } catch {\n }\n }\n function _emscripten_resize_heap(requestedSize) {\n const oldSize = binding.HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n const maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize)\n return false;\n for (let cutDown = 1; cutDown <= 4; cutDown *= 2) {\n let overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n const newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n const replacement = emscripten_realloc_buffer(newSize);\n if (replacement)\n return true;\n }\n return false;\n }\n const UTF8Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : void 0;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead = 1024) {\n const endIdx = idx + maxBytesToRead;\n let endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n let str = \"\";\n while (idx < endPtr) {\n let u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n const u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) === 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n const u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) === 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n const ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(binding.HEAPU8, ptr, maxBytesToRead) : \"\";\n }\n const asmLibraryArg = {\n emscripten_get_now: _emscripten_get_now,\n emscripten_memcpy_big: _emscripten_memcpy_big,\n emscripten_resize_heap: _emscripten_resize_heap,\n fd_write: () => 0\n };\n async function createWasm() {\n const info = {\n env: asmLibraryArg,\n wasi_snapshot_preview1: asmLibraryArg\n };\n const exports$1 = await init(info);\n wasmMemory = exports$1.memory;\n updateGlobalBufferAndViews(wasmMemory.buffer);\n Object.assign(binding, exports$1);\n binding.UTF8ToString = UTF8ToString;\n }\n await createWasm();\n return binding;\n}\n\nvar __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);\nlet onigBinding = null;\nfunction throwLastOnigError(onigBinding2) {\n throw new ShikiError(onigBinding2.UTF8ToString(onigBinding2.getLastOnigError()));\n}\nclass UtfString {\n constructor(str) {\n __publicField(this, \"utf16Length\");\n __publicField(this, \"utf8Length\");\n __publicField(this, \"utf16Value\");\n __publicField(this, \"utf8Value\");\n __publicField(this, \"utf16OffsetToUtf8\");\n __publicField(this, \"utf8OffsetToUtf16\");\n const utf16Length = str.length;\n const utf8Length = UtfString._utf8ByteLength(str);\n const computeIndicesMapping = utf8Length !== utf16Length;\n const utf16OffsetToUtf8 = computeIndicesMapping ? new Uint32Array(utf16Length + 1) : null;\n if (computeIndicesMapping)\n utf16OffsetToUtf8[utf16Length] = utf8Length;\n const utf8OffsetToUtf16 = computeIndicesMapping ? new Uint32Array(utf8Length + 1) : null;\n if (computeIndicesMapping)\n utf8OffsetToUtf16[utf8Length] = utf16Length;\n const utf8Value = new Uint8Array(utf8Length);\n let i8 = 0;\n for (let i16 = 0; i16 < utf16Length; i16++) {\n const charCode = str.charCodeAt(i16);\n let codePoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 55296 && charCode <= 56319) {\n if (i16 + 1 < utf16Length) {\n const nextCharCode = str.charCodeAt(i16 + 1);\n if (nextCharCode >= 56320 && nextCharCode <= 57343) {\n codePoint = (charCode - 55296 << 10) + 65536 | nextCharCode - 56320;\n wasSurrogatePair = true;\n }\n }\n }\n if (computeIndicesMapping) {\n utf16OffsetToUtf8[i16] = i8;\n if (wasSurrogatePair)\n utf16OffsetToUtf8[i16 + 1] = i8;\n if (codePoint <= 127) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n } else if (codePoint <= 2047) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n } else if (codePoint <= 65535) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n } else {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n utf8OffsetToUtf16[i8 + 3] = i16;\n }\n }\n if (codePoint <= 127) {\n utf8Value[i8++] = codePoint;\n } else if (codePoint <= 2047) {\n utf8Value[i8++] = 192 | (codePoint & 1984) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n } else if (codePoint <= 65535) {\n utf8Value[i8++] = 224 | (codePoint & 61440) >>> 12;\n utf8Value[i8++] = 128 | (codePoint & 4032) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n } else {\n utf8Value[i8++] = 240 | (codePoint & 1835008) >>> 18;\n utf8Value[i8++] = 128 | (codePoint & 258048) >>> 12;\n utf8Value[i8++] = 128 | (codePoint & 4032) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n }\n if (wasSurrogatePair)\n i16++;\n }\n this.utf16Length = utf16Length;\n this.utf8Length = utf8Length;\n this.utf16Value = str;\n this.utf8Value = utf8Value;\n this.utf16OffsetToUtf8 = utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utf8OffsetToUtf16;\n }\n static _utf8ByteLength(str) {\n let result = 0;\n for (let i = 0, len = str.length; i < len; i++) {\n const charCode = str.charCodeAt(i);\n let codepoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 55296 && charCode <= 56319) {\n if (i + 1 < len) {\n const nextCharCode = str.charCodeAt(i + 1);\n if (nextCharCode >= 56320 && nextCharCode <= 57343) {\n codepoint = (charCode - 55296 << 10) + 65536 | nextCharCode - 56320;\n wasSurrogatePair = true;\n }\n }\n }\n if (codepoint <= 127)\n result += 1;\n else if (codepoint <= 2047)\n result += 2;\n else if (codepoint <= 65535)\n result += 3;\n else\n result += 4;\n if (wasSurrogatePair)\n i++;\n }\n return result;\n }\n createString(onigBinding2) {\n const result = onigBinding2.omalloc(this.utf8Length);\n onigBinding2.HEAPU8.set(this.utf8Value, result);\n return result;\n }\n}\nconst _OnigString = class _OnigString {\n constructor(str) {\n __publicField(this, \"id\", ++_OnigString.LAST_ID);\n __publicField(this, \"_onigBinding\");\n __publicField(this, \"content\");\n __publicField(this, \"utf16Length\");\n __publicField(this, \"utf8Length\");\n __publicField(this, \"utf16OffsetToUtf8\");\n __publicField(this, \"utf8OffsetToUtf16\");\n __publicField(this, \"ptr\");\n if (!onigBinding)\n throw new ShikiError(\"Must invoke loadWasm first.\");\n this._onigBinding = onigBinding;\n this.content = str;\n const utfString = new UtfString(str);\n this.utf16Length = utfString.utf16Length;\n this.utf8Length = utfString.utf8Length;\n this.utf16OffsetToUtf8 = utfString.utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utfString.utf8OffsetToUtf16;\n if (this.utf8Length < 1e4 && !_OnigString._sharedPtrInUse) {\n if (!_OnigString._sharedPtr)\n _OnigString._sharedPtr = onigBinding.omalloc(1e4);\n _OnigString._sharedPtrInUse = true;\n onigBinding.HEAPU8.set(utfString.utf8Value, _OnigString._sharedPtr);\n this.ptr = _OnigString._sharedPtr;\n } else {\n this.ptr = utfString.createString(onigBinding);\n }\n }\n convertUtf8OffsetToUtf16(utf8Offset) {\n if (this.utf8OffsetToUtf16) {\n if (utf8Offset < 0)\n return 0;\n if (utf8Offset > this.utf8Length)\n return this.utf16Length;\n return this.utf8OffsetToUtf16[utf8Offset];\n }\n return utf8Offset;\n }\n convertUtf16OffsetToUtf8(utf16Offset) {\n if (this.utf16OffsetToUtf8) {\n if (utf16Offset < 0)\n return 0;\n if (utf16Offset > this.utf16Length)\n return this.utf8Length;\n return this.utf16OffsetToUtf8[utf16Offset];\n }\n return utf16Offset;\n }\n dispose() {\n if (this.ptr === _OnigString._sharedPtr)\n _OnigString._sharedPtrInUse = false;\n else\n this._onigBinding.ofree(this.ptr);\n }\n};\n__publicField(_OnigString, \"LAST_ID\", 0);\n__publicField(_OnigString, \"_sharedPtr\", 0);\n// a pointer to a string of 10000 bytes\n__publicField(_OnigString, \"_sharedPtrInUse\", false);\nlet OnigString = _OnigString;\nclass OnigScanner {\n constructor(patterns) {\n __publicField(this, \"_onigBinding\");\n __publicField(this, \"_ptr\");\n if (!onigBinding)\n throw new ShikiError(\"Must invoke loadWasm first.\");\n const strPtrsArr = [];\n const strLenArr = [];\n for (let i = 0, len = patterns.length; i < len; i++) {\n const utfString = new UtfString(patterns[i]);\n strPtrsArr[i] = utfString.createString(onigBinding);\n strLenArr[i] = utfString.utf8Length;\n }\n const strPtrsPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strPtrsArr, strPtrsPtr / 4);\n const strLenPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strLenArr, strLenPtr / 4);\n const scannerPtr = onigBinding.createOnigScanner(strPtrsPtr, strLenPtr, patterns.length);\n for (let i = 0, len = patterns.length; i < len; i++)\n onigBinding.ofree(strPtrsArr[i]);\n onigBinding.ofree(strLenPtr);\n onigBinding.ofree(strPtrsPtr);\n if (scannerPtr === 0)\n throwLastOnigError(onigBinding);\n this._onigBinding = onigBinding;\n this._ptr = scannerPtr;\n }\n dispose() {\n this._onigBinding.freeOnigScanner(this._ptr);\n }\n findNextMatchSync(string, startPosition, arg) {\n let options = 0 /* None */;\n if (typeof arg === \"number\") {\n options = arg;\n }\n if (typeof string === \"string\") {\n string = new OnigString(string);\n const result = this._findNextMatchSync(string, startPosition, false, options);\n string.dispose();\n return result;\n }\n return this._findNextMatchSync(string, startPosition, false, options);\n }\n _findNextMatchSync(string, startPosition, debugCall, options) {\n const onigBinding2 = this._onigBinding;\n const resultPtr = onigBinding2.findNextOnigScannerMatch(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n if (resultPtr === 0) {\n return null;\n }\n const HEAPU32 = onigBinding2.HEAPU32;\n let offset = resultPtr / 4;\n const index = HEAPU32[offset++];\n const count = HEAPU32[offset++];\n const captureIndices = [];\n for (let i = 0; i < count; i++) {\n const beg = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n const end = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n captureIndices[i] = {\n start: beg,\n end,\n length: end - beg\n };\n }\n return {\n index,\n captureIndices\n };\n }\n}\nfunction isInstantiatorOptionsObject(dataOrOptions) {\n return typeof dataOrOptions.instantiator === \"function\";\n}\nfunction isInstantiatorModule(dataOrOptions) {\n return typeof dataOrOptions.default === \"function\";\n}\nfunction isDataOptionsObject(dataOrOptions) {\n return typeof dataOrOptions.data !== \"undefined\";\n}\nfunction isResponse(dataOrOptions) {\n return typeof Response !== \"undefined\" && dataOrOptions instanceof Response;\n}\nfunction isArrayBuffer(data) {\n return typeof ArrayBuffer !== \"undefined\" && (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) || typeof Buffer !== \"undefined\" && Buffer.isBuffer?.(data) || typeof SharedArrayBuffer !== \"undefined\" && data instanceof SharedArrayBuffer || typeof Uint32Array !== \"undefined\" && data instanceof Uint32Array;\n}\nlet initPromise;\nfunction loadWasm(options) {\n if (initPromise)\n return initPromise;\n async function _load() {\n onigBinding = await main(async (info) => {\n let instance = options;\n instance = await instance;\n if (typeof instance === \"function\")\n instance = await instance(info);\n if (typeof instance === \"function\")\n instance = await instance(info);\n if (isInstantiatorOptionsObject(instance)) {\n instance = await instance.instantiator(info);\n } else if (isInstantiatorModule(instance)) {\n instance = await instance.default(info);\n } else {\n if (isDataOptionsObject(instance))\n instance = instance.data;\n if (isResponse(instance)) {\n if (typeof WebAssembly.instantiateStreaming === \"function\")\n instance = await _makeResponseStreamingLoader(instance)(info);\n else\n instance = await _makeResponseNonStreamingLoader(instance)(info);\n } else if (isArrayBuffer(instance)) {\n instance = await _makeArrayBufferLoader(instance)(info);\n } else if (instance instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance)(info);\n } else if (\"default\" in instance && instance.default instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance.default)(info);\n }\n }\n if (\"instance\" in instance)\n instance = instance.instance;\n if (\"exports\" in instance)\n instance = instance.exports;\n return instance;\n });\n }\n initPromise = _load();\n return initPromise;\n}\nfunction _makeArrayBufferLoader(data) {\n return (importObject) => WebAssembly.instantiate(data, importObject);\n}\nfunction _makeResponseStreamingLoader(data) {\n return (importObject) => WebAssembly.instantiateStreaming(data, importObject);\n}\nfunction _makeResponseNonStreamingLoader(data) {\n return async (importObject) => {\n const arrayBuffer = await data.arrayBuffer();\n return WebAssembly.instantiate(arrayBuffer, importObject);\n };\n}\n\nlet _defaultWasmLoader;\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\nfunction getDefaultWasmLoader() {\n return _defaultWasmLoader;\n}\nasync function createOnigurumaEngine(options) {\n if (options)\n await loadWasm(options);\n return {\n createScanner(patterns) {\n return new OnigScanner(patterns.map((p) => typeof p === \"string\" ? p : p.source));\n },\n createString(s) {\n return new OnigString(s);\n }\n };\n}\n\nexport { createOnigurumaEngine, getDefaultWasmLoader, loadWasm, setDefaultWasmLoader };\n","import { createSingletonShorthands, guessEmbeddedLanguages, createBundledHighlighter } from '@shikijs/core';\nexport * from '@shikijs/core';\nimport { bundledLanguages } from './langs.mjs';\nexport { bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo } from './langs.mjs';\nimport { bundledThemes } from './themes.mjs';\nexport { bundledThemesInfo } from './themes.mjs';\nimport { createOnigurumaEngine } from '@shikijs/engine-oniguruma';\n\nconst createHighlighter = /* @__PURE__ */ createBundledHighlighter({\n langs: bundledLanguages,\n themes: bundledThemes,\n engine: () => createOnigurumaEngine(import('shiki/wasm'))\n});\nconst {\n codeToHtml,\n codeToHast,\n codeToTokens,\n codeToTokensBase,\n codeToTokensWithThemes,\n getSingletonHighlighter,\n getLastGrammarState\n} = /* @__PURE__ */ createSingletonShorthands(\n createHighlighter,\n { guessEmbeddedLanguages }\n);\n\nexport { bundledLanguages, bundledThemes, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighter, getLastGrammarState, getSingletonHighlighter };\n","\"use strict\";function r(e){if([...e].length!==1)throw new Error(`Expected \"${e}\" to be a single code point`);return e.codePointAt(0)}function l(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}const i=new Set([\"alnum\",\"alpha\",\"ascii\",\"blank\",\"cntrl\",\"digit\",\"graph\",\"lower\",\"print\",\"punct\",\"space\",\"upper\",\"word\",\"xdigit\"]),o=String.raw;function u(e,t){if(e==null)throw new Error(t??\"Value expected\");return e}export{r as cpOf,l as getOrInsert,i as PosixClassNames,o as r,u as throwIfNullish};\n//# sourceMappingURL=utils.js.map\n","\"use strict\";import{cpOf as h,PosixClassNames as G,r as p,throwIfNullish as N}from\"../utils.js\";const m=p`\\[\\^?`,b=`c.? | C(?:-.?)?|${p`[pP]\\{(?:\\^?[-\\x20_]*[A-Za-z][-\\x20\\w]*\\})?`}|${p`x[89A-Fa-f]\\p{AHex}(?:\\\\x[89A-Fa-f]\\p{AHex})*`}|${p`u(?:\\p{AHex}{4})? | x\\{[^\\}]*\\}? | x\\p{AHex}{0,2}`}|${p`o\\{[^\\}]*\\}?`}|${p`\\d{1,3}`}`,y=/[?*+][?+]?|\\{(?:\\d+(?:,\\d*)?|,\\d+)\\}\\??/,C=new RegExp(p`\n \\\\ (?:\n ${b}\n | [gk]<[^>]*>?\n | [gk]'[^']*'?\n | .\n )\n | \\( (?:\n \\? (?:\n [:=!>({]\n | <[=!]\n | <[^>]*>\n | '[^']*'\n | ~\\|?\n | #(?:[^)\\\\]|\\\\.?)*\n | [^:)]*[:)]\n )?\n | \\*[^\\)]*\\)?\n )?\n | (?:${y.source})+\n | ${m}\n | .\n`.replace(/\\s+/g,\"\"),\"gsu\"),T=new RegExp(p`\n \\\\ (?:\n ${b}\n | .\n )\n | \\[:(?:\\^?\\p{Alpha}+|\\^):\\]\n | ${m}\n | &&\n | .\n`.replace(/\\s+/g,\"\"),\"gsu\");function M(e,n={}){const t={flags:\"\",...n,rules:{captureGroup:!1,singleline:!1,...n.rules}};if(typeof e!=\"string\")throw new Error(\"String expected as pattern\");const o=Y(t.flags),s=[o.extended],a={captureGroup:t.rules.captureGroup,getCurrentModX(){return s.at(-1)},numOpenGroups:0,popModX(){s.pop()},pushModX(u){s.push(u)},replaceCurrentModX(u){s[s.length-1]=u},singleline:t.rules.singleline};let r=[],i;for(C.lastIndex=0;i=C.exec(e);){const u=F(a,e,i[0],C.lastIndex);u.tokens?r.push(...u.tokens):u.token&&r.push(u.token),u.lastIndex!==void 0&&(C.lastIndex=u.lastIndex)}const l=[];let c=0;r.filter(u=>u.type===\"GroupOpen\").forEach(u=>{u.kind===\"capturing\"?u.number=++c:u.raw===\"(\"&&l.push(u)}),c||l.forEach((u,S)=>{u.kind=\"capturing\",u.number=S+1});const g=c||l.length;return{tokens:r.map(u=>u.type===\"EscapedNumber\"?ee(u,g):u).flat(),flags:o}}function F(e,n,t,o){const[s,a]=t;if(t===\"[\"||t===\"[^\"){const r=K(n,t,o);return{tokens:r.tokens,lastIndex:r.lastIndex}}if(s===\"\\\\\"){if(\"AbBGyYzZ\".includes(a))return{token:w(t,t)};if(/^\\\\g[<']/.test(t)){if(!/^\\\\g(?:<[^>]+>|'[^']+')$/.test(t))throw new Error(`Invalid group name \"${t}\"`);return{token:R(t)}}if(/^\\\\k[<']/.test(t)){if(!/^\\\\k(?:<[^>]+>|'[^']+')$/.test(t))throw new Error(`Invalid group name \"${t}\"`);return{token:A(t)}}if(a===\"K\")return{token:I(\"keep\",t)};if(a===\"N\"||a===\"R\")return{token:k(\"newline\",t,{negate:a===\"N\"})};if(a===\"O\")return{token:k(\"any\",t)};if(a===\"X\")return{token:k(\"text_segment\",t)};const r=x(t,{inCharClass:!1});return Array.isArray(r)?{tokens:r}:{token:r}}if(s===\"(\"){if(a===\"*\")return{token:j(t)};if(t===\"(?{\")throw new Error(`Unsupported callout \"${t}\"`);if(t.startsWith(\"(?#\")){if(n[o]!==\")\")throw new Error('Unclosed comment group \"(?#\"');return{lastIndex:o+1}}if(/^\\(\\?[-imx]+[:)]$/.test(t))return{token:L(t,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,t===\"(\"&&!e.captureGroup||t===\"(?:\")return{token:f(\"group\",t)};if(t===\"(?>\")return{token:f(\"atomic\",t)};if(t===\"(?=\"||t===\"(?!\"||t===\"(?<=\"||t===\"(?<!\")return{token:f(t[2]===\"<\"?\"lookbehind\":\"lookahead\",t,{negate:t.endsWith(\"!\")})};if(t===\"(\"&&e.captureGroup||t.startsWith(\"(?<\")&&t.endsWith(\">\")||t.startsWith(\"(?'\")&&t.endsWith(\"'\"))return{token:f(\"capturing\",t,{...t!==\"(\"&&{name:t.slice(3,-1)}})};if(t.startsWith(\"(?~\")){if(t===\"(?~|\")throw new Error(`Unsupported absence function kind \"${t}\"`);return{token:f(\"absence_repeater\",t)}}throw t===\"(?(\"?new Error(`Unsupported conditional \"${t}\"`):new Error(`Invalid or unsupported group option \"${t}\"`)}if(t===\")\"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched \")\"');return{token:Q(t)}}if(e.getCurrentModX()){if(t===\"#\"){const r=n.indexOf(`\n`,o);return{lastIndex:r===-1?n.length:r}}if(/^\\s$/.test(t)){const r=/\\s+/y;return r.lastIndex=o,{lastIndex:r.exec(n)?r.lastIndex:o}}}if(t===\".\")return{token:k(\"dot\",t)};if(t===\"^\"||t===\"$\"){const r=e.singleline?{\"^\":p`\\A`,$:p`\\Z`}[t]:t;return{token:w(r,t)}}return t===\"|\"?{token:P(t)}:y.test(t)?{tokens:te(t)}:{token:d(h(t),t)}}function K(e,n,t){const o=[E(n[1]===\"^\",n)];let s=1,a;for(T.lastIndex=t;a=T.exec(e);){const r=a[0];if(r[0]===\"[\"&&r[1]!==\":\")s++,o.push(E(r[1]===\"^\",r));else if(r===\"]\"){if(o.at(-1).type===\"CharacterClassOpen\")o.push(d(93,r));else if(s--,o.push(z(r)),!s)break}else{const i=X(r);Array.isArray(i)?o.push(...i):o.push(i)}}return{tokens:o,lastIndex:T.lastIndex||e.length}}function X(e){if(e[0]===\"\\\\\")return x(e,{inCharClass:!0});if(e[0]===\"[\"){const n=/\\[:(?<negate>\\^?)(?<name>[a-z]+):\\]/.exec(e);if(!n||!G.has(n.groups.name))throw new Error(`Invalid POSIX class \"${e}\"`);return k(\"posix\",e,{value:n.groups.name,negate:!!n.groups.negate})}return e===\"-\"?U(e):e===\"&&\"?H(e):d(h(e),e)}function x(e,{inCharClass:n}){const t=e[1];if(t===\"c\"||t===\"C\")return Z(e);if(\"dDhHsSwW\".includes(t))return q(e);if(e.startsWith(p`\\o{`))throw new Error(`Incomplete, invalid, or unsupported octal code point \"${e}\"`);if(/^\\\\[pP]\\{/.test(e)){if(e.length===3)throw new Error(`Incomplete or invalid Unicode property \"${e}\"`);return V(e)}if(/^\\\\x[89A-Fa-f]\\p{AHex}/u.test(e))try{const o=e.split(/\\\\x/).slice(1).map(i=>parseInt(i,16)),s=new TextDecoder(\"utf-8\",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(o)),a=new TextEncoder;return[...s].map(i=>{const l=[...a.encode(i)].map(c=>`\\\\x${c.toString(16)}`).join(\"\");return d(h(i),l)})}catch{throw new Error(`Multibyte code \"${e}\" incomplete or invalid in Oniguruma`)}if(t===\"u\"||t===\"x\")return d(J(e),e);if($.has(t))return d($.get(t),e);if(/\\d/.test(t))return W(n,e);if(e===\"\\\\\")throw new Error(p`Incomplete escape \"\\\"`);if(t===\"M\")throw new Error(`Unsupported meta \"${e}\"`);if([...e].length===2)return d(e.codePointAt(1),e);throw new Error(`Unexpected escape \"${e}\"`)}function P(e){return{type:\"Alternator\",raw:e}}function w(e,n){return{type:\"Assertion\",kind:e,raw:n}}function A(e){return{type:\"Backreference\",raw:e}}function d(e,n){return{type:\"Character\",value:e,raw:n}}function z(e){return{type:\"CharacterClassClose\",raw:e}}function U(e){return{type:\"CharacterClassHyphen\",raw:e}}function H(e){return{type:\"CharacterClassIntersector\",raw:e}}function E(e,n){return{type:\"CharacterClassOpen\",negate:e,raw:n}}function k(e,n,t={}){return{type:\"CharacterSet\",kind:e,...t,raw:n}}function I(e,n,t={}){return e===\"keep\"?{type:\"Directive\",kind:e,raw:n}:{type:\"Directive\",kind:e,flags:N(t.flags),raw:n}}function W(e,n){return{type:\"EscapedNumber\",inCharClass:e,raw:n}}function Q(e){return{type:\"GroupClose\",raw:e}}function f(e,n,t={}){return{type:\"GroupOpen\",kind:e,...t,raw:n}}function D(e,n,t,o){return{type:\"NamedCallout\",kind:e,tag:n,arguments:t,raw:o}}function _(e,n,t,o){return{type:\"Quantifier\",kind:e,min:n,max:t,raw:o}}function R(e){return{type:\"Subroutine\",raw:e}}const B=new Set([\"COUNT\",\"CMP\",\"ERROR\",\"FAIL\",\"MAX\",\"MISMATCH\",\"SKIP\",\"TOTAL_COUNT\"]),$=new Map([[\"a\",7],[\"b\",8],[\"e\",27],[\"f\",12],[\"n\",10],[\"r\",13],[\"t\",9],[\"v\",11]]);function Z(e){const n=e[1]===\"c\"?e[2]:e[3];if(!n||!/[A-Za-z]/.test(n))throw new Error(`Unsupported control character \"${e}\"`);return d(h(n.toUpperCase())-64,e)}function L(e,n){let{on:t,off:o}=/^\\(\\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(e).groups;o??=\"\";const s=(n.getCurrentModX()||t.includes(\"x\"))&&!o.includes(\"x\"),a=v(t),r=v(o),i={};if(a&&(i.enable=a),r&&(i.disable=r),e.endsWith(\")\"))return n.replaceCurrentModX(s),I(\"flags\",e,{flags:i});if(e.endsWith(\":\"))return n.pushModX(s),n.numOpenGroups++,f(\"group\",e,{...(a||r)&&{flags:i}});throw new Error(`Unexpected flag modifier \"${e}\"`)}function j(e){const n=/\\(\\*(?<name>[A-Za-z_]\\w*)?(?:\\[(?<tag>(?:[A-Za-z_]\\w*)?)\\])?(?:\\{(?<args>[^}]*)\\})?\\)/.exec(e);if(!n)throw new Error(`Incomplete or invalid named callout \"${e}\"`);const{name:t,tag:o,args:s}=n.groups;if(!t)throw new Error(`Invalid named callout \"${e}\"`);if(o===\"\")throw new Error(`Named callout tag with empty value not allowed \"${e}\"`);const a=s?s.split(\",\").filter(g=>g!==\"\").map(g=>/^[+-]?\\d+$/.test(g)?+g:g):[],[r,i,l]=a,c=B.has(t)?t.toLowerCase():\"custom\";switch(c){case\"fail\":case\"mismatch\":case\"skip\":if(a.length>0)throw new Error(`Named callout arguments not allowed \"${a}\"`);break;case\"error\":if(a.length>1)throw new Error(`Named callout allows only one argument \"${a}\"`);if(typeof r==\"string\")throw new Error(`Named callout argument must be a number \"${r}\"`);break;case\"max\":if(!a.length||a.length>2)throw new Error(`Named callout must have one or two arguments \"${a}\"`);if(typeof r==\"string\"&&!/^[A-Za-z_]\\w*$/.test(r))throw new Error(`Named callout argument one must be a tag or number \"${r}\"`);if(a.length===2&&(typeof i==\"number\"||!/^[<>X]$/.test(i)))throw new Error(`Named callout optional argument two must be '<', '>', or 'X' \"${i}\"`);break;case\"count\":case\"total_count\":if(a.length>1)throw new Error(`Named callout allows only one argument \"${a}\"`);if(a.length===1&&(typeof r==\"number\"||!/^[<>X]$/.test(r)))throw new Error(`Named callout optional argument must be '<', '>', or 'X' \"${r}\"`);break;case\"cmp\":if(a.length!==3)throw new Error(`Named callout must have three arguments \"${a}\"`);if(typeof r==\"string\"&&!/^[A-Za-z_]\\w*$/.test(r))throw new Error(`Named callout argument one must be a tag or number \"${r}\"`);if(typeof i==\"number\"||!/^(?:[<>!=]=|[<>])$/.test(i))throw new Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' \"${i}\"`);if(typeof l==\"string\"&&!/^[A-Za-z_]\\w*$/.test(l))throw new Error(`Named callout argument three must be a tag or number \"${l}\"`);break;case\"custom\":throw new Error(`Undefined callout name \"${t}\"`);default:throw new Error(`Unexpected named callout kind \"${c}\"`)}return D(c,o??null,s?.split(\",\")??null,e)}function O(e){let n=null,t,o;if(e[0]===\"{\"){const{minStr:s,maxStr:a}=/^\\{(?<minStr>\\d*)(?:,(?<maxStr>\\d*))?/.exec(e).groups,r=1e5;if(+s>r||a&&+a>r)throw new Error(\"Quantifier value unsupported in Oniguruma\");if(t=+s,o=a===void 0?+s:a===\"\"?1/0:+a,t>o&&(n=\"possessive\",[t,o]=[o,t]),e.endsWith(\"?\")){if(n===\"possessive\")throw new Error('Unsupported possessive interval quantifier chain with \"?\"');n=\"lazy\"}else n||(n=\"greedy\")}else t=e[0]===\"+\"?1:0,o=e[0]===\"?\"?1:1/0,n=e[1]===\"+\"?\"possessive\":e[1]===\"?\"?\"lazy\":\"greedy\";return _(n,t,o,e)}function q(e){const n=e[1].toLowerCase();return k({d:\"digit\",h:\"hex\",s:\"space\",w:\"word\"}[n],e,{negate:e[1]!==n})}function V(e){const{p:n,neg:t,value:o}=/^\\\\(?<p>[pP])\\{(?<neg>\\^?)(?<value>[^}]+)/.exec(e).groups;return k(\"property\",e,{value:o,negate:n===\"P\"&&!t||n===\"p\"&&!!t})}function v(e){const n={};return e.includes(\"i\")&&(n.ignoreCase=!0),e.includes(\"m\")&&(n.dotAll=!0),e.includes(\"x\")&&(n.extended=!0),Object.keys(n).length?n:null}function Y(e){const n={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii:!1,posixIsAscii:!1,spaceIsAscii:!1,wordIsAscii:!1,textSegmentMode:null};for(let t=0;t<e.length;t++){const o=e[t];if(!\"imxDPSWy\".includes(o))throw new Error(`Invalid flag \"${o}\"`);if(o===\"y\"){if(!/^y{[gw]}/.test(e.slice(t)))throw new Error('Invalid or unspecified flag \"y\" mode');n.textSegmentMode=e[t+2]===\"g\"?\"grapheme\":\"word\",t+=3;continue}n[{i:\"ignoreCase\",m:\"dotAll\",x:\"extended\",D:\"digitIsAscii\",P:\"posixIsAscii\",S:\"spaceIsAscii\",W:\"wordIsAscii\"}[o]]=!0}return n}function J(e){if(/^(?:\\\\u(?!\\p{AHex}{4})|\\\\x(?!\\p{AHex}{1,2}|\\{\\p{AHex}{1,8}\\}))/u.test(e))throw new Error(`Incomplete or invalid escape \"${e}\"`);const n=e[2]===\"{\"?/^\\\\x\\{\\s*(?<hex>\\p{AHex}+)/u.exec(e).groups.hex:e.slice(2);return parseInt(n,16)}function ee(e,n){const{raw:t,inCharClass:o}=e,s=t.slice(1);if(!o&&(s!==\"0\"&&s.length===1||s[0]!==\"0\"&&+s<=n))return[A(t)];const a=[],r=s.match(/^[0-7]+|\\d/g);for(let i=0;i<r.length;i++){const l=r[i];let c;if(i===0&&l!==\"8\"&&l!==\"9\"){if(c=parseInt(l,8),c>127)throw new Error(p`Octal encoded byte above 177 unsupported \"${t}\"`)}else c=h(l);a.push(d(c,(i===0?\"\\\\\":\"\")+l))}return a}function te(e){const n=[],t=new RegExp(y,\"gy\");let o;for(;o=t.exec(e);){const s=o[0];if(s[0]===\"{\"){const a=/^\\{(?<min>\\d+),(?<max>\\d+)\\}\\??$/.exec(s);if(a){const{min:r,max:i}=a.groups;if(+r>+i&&s.endsWith(\"?\")){t.lastIndex--,n.push(O(s.slice(0,-1)));continue}}}n.push(O(s))}return n}export{M as tokenize};\n//# sourceMappingURL=tokenize.js.map\n","\"use strict\";function o(e,t){if(!Array.isArray(e.body))throw new Error(\"Expected node with body array\");if(e.body.length!==1)return!1;const r=e.body[0];return!t||Object.keys(t).every(n=>t[n]===r[n])}function a(e){return!(!i.has(e.type)||e.type===\"AbsenceFunction\"&&e.kind!==\"repeater\")}const i=new Set([\"AbsenceFunction\",\"CapturingGroup\",\"Group\",\"LookaroundAssertion\",\"Regex\"]);function s(e){return y.has(e.type)}const y=new Set([\"AbsenceFunction\",\"Backreference\",\"CapturingGroup\",\"Character\",\"CharacterClass\",\"CharacterSet\",\"Group\",\"Quantifier\",\"Subroutine\"]);export{o as hasOnlyChild,a as isAlternativeContainer,s as isQuantifiable};\n//# sourceMappingURL=node-utils.js.map\n","\"use strict\";import{tokenize as q}from\"../tokenizer/tokenize.js\";import{cpOf as H,getOrInsert as Z,PosixClassNames as x,r as y,throwIfNullish as g}from\"../utils.js\";import{hasOnlyChild as Y,isAlternativeContainer as j,isQuantifiable as S}from\"./node-utils.js\";function J(e,r={}){const n={flags:\"\",normalizeUnknownPropertyNames:!1,skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...r,rules:{captureGroup:!1,singleline:!1,...r.rules}},t=q(e,{flags:n.flags,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline}}),s=(p,N)=>{const u=t.tokens[o.nextIndex];switch(o.parent=p,o.nextIndex++,u.type){case\"Alternator\":return b();case\"Assertion\":return W(u);case\"Backreference\":return X(u,o);case\"Character\":return m(u.value,{useLastValid:!!N.isCheckingRangeEnd});case\"CharacterClassHyphen\":return ee(u,o,N);case\"CharacterClassOpen\":return re(u,o,N);case\"CharacterSet\":return ne(u,o);case\"Directive\":return I(u.kind,{flags:u.flags});case\"GroupOpen\":return te(u,o,N);case\"NamedCallout\":return U(u.kind,u.tag,u.arguments);case\"Quantifier\":return oe(u,o);case\"Subroutine\":return ae(u,o);default:throw new Error(`Unexpected token type \"${u.type}\"`)}},o={capturingGroups:[],hasNumberedRef:!1,namedGroupsByName:new Map,nextIndex:0,normalizeUnknownPropertyNames:n.normalizeUnknownPropertyNames,parent:null,skipBackrefValidation:n.skipBackrefValidation,skipLookbehindValidation:n.skipLookbehindValidation,skipPropertyNameValidation:n.skipPropertyNameValidation,subroutines:[],tokens:t.tokens,unicodePropertyMap:n.unicodePropertyMap,walk:s},i=B(T(t.flags));let d=i.body[0];for(;o.nextIndex<t.tokens.length;){const p=s(d,{});p.type===\"Alternative\"?(i.body.push(p),d=p):d.body.push(p)}const{capturingGroups:a,hasNumberedRef:l,namedGroupsByName:c,subroutines:f}=o;if(l&&c.size&&!n.rules.captureGroup)throw new Error(\"Numbered backref/subroutine not allowed when using named capture\");for(const{ref:p}of f)if(typeof p==\"number\"){if(p>a.length)throw new Error(\"Subroutine uses a group number that's not defined\");p&&(a[p-1].isSubroutined=!0)}else if(c.has(p)){if(c.get(p).length>1)throw new Error(y`Subroutine uses a duplicate group name \"\\g<${p}>\"`);c.get(p)[0].isSubroutined=!0}else throw new Error(y`Subroutine uses a group name that's not defined \"\\g<${p}>\"`);return i}function W({kind:e}){return F(g({\"^\":\"line_start\",$:\"line_end\",\"\\\\A\":\"string_start\",\"\\\\b\":\"word_boundary\",\"\\\\B\":\"word_boundary\",\"\\\\G\":\"search_start\",\"\\\\y\":\"text_segment_boundary\",\"\\\\Y\":\"text_segment_boundary\",\"\\\\z\":\"string_end\",\"\\\\Z\":\"string_end_newline\"}[e],`Unexpected assertion kind \"${e}\"`),{negate:e===y`\\B`||e===y`\\Y`})}function X({raw:e},r){const n=/^\\\\k[<']/.test(e),t=n?e.slice(3,-1):e.slice(1),s=(o,i=!1)=>{const d=r.capturingGroups.length;let a=!1;if(o>d)if(r.skipBackrefValidation)a=!0;else throw new Error(`Not enough capturing groups defined to the left \"${e}\"`);return r.hasNumberedRef=!0,k(i?d+1-o:o,{orphan:a})};if(n){const o=/^(?<sign>-?)0*(?<num>[1-9]\\d*)$/.exec(t);if(o)return s(+o.groups.num,!!o.groups.sign);if(/[-+]/.test(t))throw new Error(`Invalid backref name \"${e}\"`);if(!r.namedGroupsByName.has(t))throw new Error(`Group name not defined to the left \"${e}\"`);return k(t)}return s(+t)}function ee(e,r,n){const{tokens:t,walk:s}=r,o=r.parent,i=o.body.at(-1),d=t[r.nextIndex];if(!n.isCheckingRangeEnd&&i&&i.type!==\"CharacterClass\"&&i.type!==\"CharacterClassRange\"&&d&&d.type!==\"CharacterClassOpen\"&&d.type!==\"CharacterClassClose\"&&d.type!==\"CharacterClassIntersector\"){const a=s(o,{...n,isCheckingRangeEnd:!0});if(i.type===\"Character\"&&a.type===\"Character\")return o.body.pop(),L(i,a);throw new Error(\"Invalid character class range\")}return m(H(\"-\"))}function re({negate:e},r,n){const{tokens:t,walk:s}=r,o=t[r.nextIndex],i=[C()];let d=z(o);for(;d.type!==\"CharacterClassClose\";){if(d.type===\"CharacterClassIntersector\")i.push(C()),r.nextIndex++;else{const l=i.at(-1);l.body.push(s(l,n))}d=z(t[r.nextIndex],o)}const a=C({negate:e});return i.length===1?a.body=i[0].body:(a.kind=\"intersection\",a.body=i.map(l=>l.body.length===1?l.body[0]:l)),r.nextIndex++,a}function ne({kind:e,negate:r,value:n},t){const{normalizeUnknownPropertyNames:s,skipPropertyNameValidation:o,unicodePropertyMap:i}=t;if(e===\"property\"){const d=w(n);if(x.has(d)&&!i?.has(d))e=\"posix\",n=d;else return Q(n,{negate:r,normalizeUnknownPropertyNames:s,skipPropertyNameValidation:o,unicodePropertyMap:i})}return e===\"posix\"?R(n,{negate:r}):E(e,{negate:r})}function te(e,r,n){const{tokens:t,capturingGroups:s,namedGroupsByName:o,skipLookbehindValidation:i,walk:d}=r,a=ie(e),l=a.type===\"AbsenceFunction\",c=$(a),f=c&&a.negate;if(a.type===\"CapturingGroup\"&&(s.push(a),a.name&&Z(o,a.name,[]).push(a)),l&&n.isInAbsenceFunction)throw new Error(\"Nested absence function not supported by Oniguruma\");let p=D(t[r.nextIndex]);for(;p.type!==\"GroupClose\";){if(p.type===\"Alternator\")a.body.push(b()),r.nextIndex++;else{const N=a.body.at(-1),u=d(N,{...n,isInAbsenceFunction:n.isInAbsenceFunction||l,isInLookbehind:n.isInLookbehind||c,isInNegLookbehind:n.isInNegLookbehind||f});if(N.body.push(u),(c||n.isInLookbehind)&&!i){const v=\"Lookbehind includes a pattern not allowed by Oniguruma\";if(f||n.isInNegLookbehind){if(M(u)||u.type===\"CapturingGroup\")throw new Error(v)}else if(M(u)||$(u)&&u.negate)throw new Error(v)}}p=D(t[r.nextIndex])}return r.nextIndex++,a}function oe({kind:e,min:r,max:n},t){const s=t.parent,o=s.body.at(-1);if(!o||!S(o))throw new Error(\"Quantifier requires a repeatable token\");const i=_(e,r,n,o);return s.body.pop(),i}function ae({raw:e},r){const{capturingGroups:n,subroutines:t}=r;let s=e.slice(3,-1);const o=/^(?<sign>[-+]?)0*(?<num>[1-9]\\d*)$/.exec(s);if(o){const d=+o.groups.num,a=n.length;if(r.hasNumberedRef=!0,s={\"\":d,\"+\":a+d,\"-\":a+1-d}[o.groups.sign],s<1)throw new Error(\"Invalid subroutine number\")}else s===\"0\"&&(s=0);const i=O(s);return t.push(i),i}function G(e,r){if(e!==\"repeater\")throw new Error(`Unexpected absence function kind \"${e}\"`);return{type:\"AbsenceFunction\",kind:e,body:h(r?.body)}}function b(e){return{type:\"Alternative\",body:V(e?.body)}}function F(e,r){const n={type:\"Assertion\",kind:e};return(e===\"word_boundary\"||e===\"text_segment_boundary\")&&(n.negate=!!r?.negate),n}function k(e,r){const n=!!r?.orphan;return{type:\"Backreference\",ref:e,...n&&{orphan:n}}}function P(e,r){const n={name:void 0,isSubroutined:!1,...r};if(n.name!==void 0&&!se(n.name))throw new Error(`Group name \"${n.name}\" invalid in Oniguruma`);return{type:\"CapturingGroup\",number:e,...n.name&&{name:n.name},...n.isSubroutined&&{isSubroutined:n.isSubroutined},body:h(r?.body)}}function m(e,r){const n={useLastValid:!1,...r};if(e>1114111){const t=e.toString(16);if(n.useLastValid)e=1114111;else throw e>1310719?new Error(`Invalid code point out of range \"\\\\x{${t}}\"`):new Error(`Invalid code point out of range in JS \"\\\\x{${t}}\"`)}return{type:\"Character\",value:e}}function C(e){const r={kind:\"union\",negate:!1,...e};return{type:\"CharacterClass\",kind:r.kind,negate:r.negate,body:V(e?.body)}}function L(e,r){if(r.value<e.value)throw new Error(\"Character class range out of order\");return{type:\"CharacterClassRange\",min:e,max:r}}function E(e,r){const n=!!r?.negate,t={type:\"CharacterSet\",kind:e};return(e===\"digit\"||e===\"hex\"||e===\"newline\"||e===\"space\"||e===\"word\")&&(t.negate=n),(e===\"text_segment\"||e===\"newline\"&&!n)&&(t.variableLength=!0),t}function I(e,r={}){if(e===\"keep\")return{type:\"Directive\",kind:e};if(e===\"flags\")return{type:\"Directive\",kind:e,flags:g(r.flags)};throw new Error(`Unexpected directive kind \"${e}\"`)}function T(e){return{type:\"Flags\",...e}}function A(e){const r=e?.atomic,n=e?.flags;if(r&&n)throw new Error(\"Atomic group cannot have flags\");return{type:\"Group\",...r&&{atomic:r},...n&&{flags:n},body:h(e?.body)}}function K(e){const r={behind:!1,negate:!1,...e};return{type:\"LookaroundAssertion\",kind:r.behind?\"lookbehind\":\"lookahead\",negate:r.negate,body:h(e?.body)}}function U(e,r,n){return{type:\"NamedCallout\",kind:e,tag:r,arguments:n}}function R(e,r){const n=!!r?.negate;if(!x.has(e))throw new Error(`Invalid POSIX class \"${e}\"`);return{type:\"CharacterSet\",kind:\"posix\",value:e,negate:n}}function _(e,r,n,t){if(r>n)throw new Error(\"Invalid reversed quantifier range\");return{type:\"Quantifier\",kind:e,min:r,max:n,body:t}}function B(e,r){return{type:\"Regex\",body:h(r?.body),flags:e}}function O(e){return{type:\"Subroutine\",ref:e}}function Q(e,r){const n={negate:!1,normalizeUnknownPropertyNames:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...r};let t=n.unicodePropertyMap?.get(w(e));if(!t){if(n.normalizeUnknownPropertyNames)t=de(e);else if(n.unicodePropertyMap&&!n.skipPropertyNameValidation)throw new Error(y`Invalid Unicode property \"\\p{${e}}\"`)}return{type:\"CharacterSet\",kind:\"property\",value:t??e,negate:n.negate}}function ie({flags:e,kind:r,name:n,negate:t,number:s}){switch(r){case\"absence_repeater\":return G(\"repeater\");case\"atomic\":return A({atomic:!0});case\"capturing\":return P(s,{name:n});case\"group\":return A({flags:e});case\"lookahead\":case\"lookbehind\":return K({behind:r===\"lookbehind\",negate:t});default:throw new Error(`Unexpected group kind \"${r}\"`)}}function h(e){if(e===void 0)e=[b()];else if(!Array.isArray(e)||!e.length||!e.every(r=>r.type===\"Alternative\"))throw new Error(\"Invalid body; expected array of one or more Alternative nodes\");return e}function V(e){if(e===void 0)e=[];else if(!Array.isArray(e)||!e.every(r=>!!r.type))throw new Error(\"Invalid body; expected array of nodes\");return e}function M(e){return e.type===\"LookaroundAssertion\"&&e.kind===\"lookahead\"}function $(e){return e.type===\"LookaroundAssertion\"&&e.kind===\"lookbehind\"}function se(e){return/^[\\p{Alpha}\\p{Pc}][^)]*$/u.test(e)}function de(e){return e.trim().replace(/[- _]+/g,\"_\").replace(/[A-Z][a-z]+(?=[A-Z])/g,\"$&_\").replace(/[A-Za-z]+/g,r=>r[0].toUpperCase()+r.slice(1).toLowerCase())}function w(e){return e.replace(/[- _]+/g,\"\").toLowerCase()}function z(e,r){return g(e,`${r?.type===\"Character\"&&r.value===93?\"Empty\":\"Unclosed\"} character class`)}function D(e){return g(e,\"Unclosed group\")}export{G as createAbsenceFunction,b as createAlternative,F as createAssertion,k as createBackreference,P as createCapturingGroup,m as createCharacter,C as createCharacterClass,L as createCharacterClassRange,E as createCharacterSet,I as createDirective,T as createFlags,A as createGroup,K as createLookaroundAssertion,U as createNamedCallout,R as createPosixClass,_ as createQuantifier,B as createRegex,O as createSubroutine,Q as createUnicodeProperty,Y as hasOnlyChild,j as isAlternativeContainer,S as isQuantifiable,J as parse,w as slug};\n//# sourceMappingURL=parse.js.map\n","\"use strict\";import{throwIfNullish as A}from\"../utils.js\";function S(a,v,N=null){function u(e,s){for(let t=0;t<e.length;t++){const r=n(e[t],s,t,e);t=Math.max(-1,t+r)}}function n(e,s=null,t=null,r=null){let i=0,c=!1;const d={node:e,parent:s,key:t,container:r,root:a,remove(){f(r).splice(Math.max(0,l(t)+i),1),i--,c=!0},removeAllNextSiblings(){return f(r).splice(l(t)+1)},removeAllPrevSiblings(){const o=l(t)+i;return i-=o,f(r).splice(0,Math.max(0,o))},replaceWith(o,y={}){const b=!!y.traverse;r?r[Math.max(0,l(t)+i)]=o:A(s,\"Can't replace root node\")[t]=o,b&&n(o,s,t,r),c=!0},replaceWithMultiple(o,y={}){const b=!!y.traverse;if(f(r).splice(Math.max(0,l(t)+i),1,...o),i+=o.length-1,b){let g=0;for(let x=0;x<o.length;x++)g+=n(o[x],s,l(t)+x+g,r)}c=!0},skip(){c=!0}},{type:m}=e,h=v[\"*\"],p=v[m],R=typeof h==\"function\"?h:h?.enter,P=typeof p==\"function\"?p:p?.enter;if(R?.(d,N),P?.(d,N),!c)switch(m){case\"AbsenceFunction\":case\"CapturingGroup\":case\"Group\":u(e.body,e);break;case\"Alternative\":case\"CharacterClass\":u(e.body,e);break;case\"Assertion\":case\"Backreference\":case\"Character\":case\"CharacterSet\":case\"Directive\":case\"Flags\":case\"NamedCallout\":case\"Subroutine\":break;case\"CharacterClassRange\":n(e.min,e,\"min\"),n(e.max,e,\"max\");break;case\"LookaroundAssertion\":u(e.body,e);break;case\"Quantifier\":n(e.body,e,\"body\");break;case\"Regex\":u(e.body,e),n(e.flags,e,\"flags\");break;default:throw new Error(`Unexpected node type \"${m}\"`)}return p?.exit?.(d,N),h?.exit?.(d,N),i}return n(a),a}function f(a){if(!Array.isArray(a))throw new Error(\"Container expected\");return a}function l(a){if(typeof a!=\"number\")throw new Error(\"Numeric key expected\");return a}export{S as traverse};\n//# sourceMappingURL=traverse.js.map\n","// Separating some utils for improved tree shaking of the `./internals` export\n\nconst noncapturingDelim = String.raw`\\(\\?(?:[:=!>A-Za-z\\-]|<[=!]|\\(DEFINE\\))`;\n\n/**\nUpdates the array in place by incrementing each value greater than or equal to the threshold.\n@param {Array<number>} arr\n@param {number} threshold\n*/\nfunction incrementIfAtLeast(arr, threshold) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] >= threshold) {\n arr[i]++;\n }\n }\n}\n\n/**\n@param {string} str\n@param {number} pos\n@param {string} oldValue\n@param {string} newValue\n@returns {string}\n*/\nfunction spliceStr(str, pos, oldValue, newValue) {\n return str.slice(0, pos) + newValue + str.slice(pos + oldValue.length);\n}\n\nexport {\n incrementIfAtLeast,\n noncapturingDelim,\n spliceStr,\n};\n","// Constant properties for tracking regex syntax context\nexport const Context = Object.freeze({\n DEFAULT: 'DEFAULT',\n CHAR_CLASS: 'CHAR_CLASS',\n});\n\n/**\nReplaces all unescaped instances of a regex pattern in the given context, using a replacement\nstring or callback.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {string | (match: RegExpExecArray, details: {\n context: 'DEFAULT' | 'CHAR_CLASS';\n negated: boolean;\n}) => string} replacement\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {string} Updated expression\n@example\nconst str = '.\\\\.\\\\\\\\.[[\\\\.].].';\nreplaceUnescaped(str, '\\\\.', '@');\n// → '@\\\\.\\\\\\\\@[[\\\\.]@]@'\nreplaceUnescaped(str, '\\\\.', '@', Context.DEFAULT);\n// → '@\\\\.\\\\\\\\@[[\\\\.].]@'\nreplaceUnescaped(str, '\\\\.', '@', Context.CHAR_CLASS);\n// → '.\\\\.\\\\\\\\.[[\\\\.]@].'\n*/\nexport function replaceUnescaped(expression, needle, replacement, context) {\n const re = new RegExp(String.raw`${needle}|(?<$skip>\\[\\^?|\\\\?.)`, 'gsu');\n const negated = [false];\n let numCharClassesOpen = 0;\n let result = '';\n for (const match of expression.matchAll(re)) {\n const {0: m, groups: {$skip}} = match;\n if (!$skip && (!context || (context === Context.DEFAULT) === !numCharClassesOpen)) {\n if (replacement instanceof Function) {\n result += replacement(match, {\n context: numCharClassesOpen ? Context.CHAR_CLASS : Context.DEFAULT,\n negated: negated[negated.length - 1],\n });\n } else {\n result += replacement;\n }\n continue;\n }\n if (m[0] === '[') {\n numCharClassesOpen++;\n negated.push(m[1] === '^');\n } else if (m === ']' && numCharClassesOpen) {\n numCharClassesOpen--;\n negated.pop();\n }\n result += m;\n }\n return result;\n}\n\n/**\nRuns a callback for each unescaped instance of a regex pattern in the given context.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {(match: RegExpExecArray, details: {\n context: 'DEFAULT' | 'CHAR_CLASS';\n negated: boolean;\n}) => void} callback\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n*/\nexport function forEachUnescaped(expression, needle, callback, context) {\n // Do this the easy way\n replaceUnescaped(expression, needle, callback, context);\n}\n\n/**\nReturns a match object for the first unescaped instance of a regex pattern in the given context, or\n`null`.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {number} [pos] Offset to start the search\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {RegExpExecArray | null}\n*/\nexport function execUnescaped(expression, needle, pos = 0, context) {\n // Quick partial test; avoid the loop if not needed\n if (!(new RegExp(needle, 'su').test(expression))) {\n return null;\n }\n const re = new RegExp(`${needle}|(?<$skip>\\\\\\\\?.)`, 'gsu');\n re.lastIndex = pos;\n let numCharClassesOpen = 0;\n let match;\n while (match = re.exec(expression)) {\n const {0: m, groups: {$skip}} = match;\n if (!$skip && (!context || (context === Context.DEFAULT) === !numCharClassesOpen)) {\n return match;\n }\n if (m === '[') {\n numCharClassesOpen++;\n } else if (m === ']' && numCharClassesOpen) {\n numCharClassesOpen--;\n }\n // Avoid an infinite loop on zero-length matches\n if (re.lastIndex == match.index) {\n re.lastIndex++;\n }\n }\n return null;\n}\n\n/**\nChecks whether an unescaped instance of a regex pattern appears in the given context.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {boolean} Whether the pattern was found\n*/\nexport function hasUnescaped(expression, needle, context) {\n // Do this the easy way\n return !!execUnescaped(expression, needle, 0, context);\n}\n\n/**\nExtracts the full contents of a group (subpattern) from the given expression, accounting for\nescaped characters, nested groups, and character classes. The group is identified by the position\nwhere its contents start (the string index just after the group's opening delimiter). Returns the\nrest of the string if the group is unclosed.\n\nAssumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {number} contentsStartPos\n@returns {string}\n*/\nexport function getGroupContents(expression, contentsStartPos) {\n const token = /\\\\?./gsu;\n token.lastIndex = contentsStartPos;\n let contentsEndPos = expression.length;\n let numCharClassesOpen = 0;\n // Starting search within an open group, after the group's opening\n let numGroupsOpen = 1;\n let match;\n while (match = token.exec(expression)) {\n const [m] = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (m === '(') {\n numGroupsOpen++;\n } else if (m === ')') {\n numGroupsOpen--;\n if (!numGroupsOpen) {\n contentsEndPos = match.index;\n break;\n }\n }\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n return expression.slice(contentsStartPos, contentsEndPos);\n}\n","import {incrementIfAtLeast, noncapturingDelim, spliceStr} from './utils-internals.js';\nimport {Context, replaceUnescaped} from 'regex-utilities';\n/**\n@import {PluginData, PluginResult} from './regex.js';\n*/\n\nconst atomicPluginToken = new RegExp(String.raw`(?<noncapturingStart>${noncapturingDelim})|(?<capturingStart>\\((?:\\?<[^>]+>)?)|\\\\?.`, 'gsu');\n\n/**\nApply transformations for atomic groups: `(?>…)`.\n@param {string} expression\n@param {PluginData} [data]\n@returns {Required<PluginResult>}\n*/\nfunction atomic(expression, data) {\n const hiddenCaptures = data?.hiddenCaptures ?? [];\n // Capture transfer is used by <github.com/slevithan/oniguruma-to-es>\n let captureTransfers = data?.captureTransfers ?? new Map();\n if (!/\\(\\?>/.test(expression)) {\n return {\n pattern: expression,\n captureTransfers,\n hiddenCaptures,\n };\n }\n\n const aGDelim = '(?>';\n const emulatedAGDelim = '(?:(?=(';\n const captureNumMap = [0];\n const addedHiddenCaptures = [];\n let numCapturesBeforeAG = 0;\n let numAGs = 0;\n let aGPos = NaN;\n let hasProcessedAG;\n do {\n hasProcessedAG = false;\n let numCharClassesOpen = 0;\n let numGroupsOpenInAG = 0;\n let inAG = false;\n let match;\n atomicPluginToken.lastIndex = Number.isNaN(aGPos) ? 0 : aGPos + emulatedAGDelim.length;\n while (match = atomicPluginToken.exec(expression)) {\n const {0: m, index, groups: {capturingStart, noncapturingStart}} = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n\n if (m === aGDelim && !inAG) {\n aGPos = index;\n inAG = true;\n } else if (inAG && noncapturingStart) {\n numGroupsOpenInAG++;\n } else if (capturingStart) {\n if (inAG) {\n numGroupsOpenInAG++;\n } else {\n numCapturesBeforeAG++;\n captureNumMap.push(numCapturesBeforeAG + numAGs);\n }\n } else if (m === ')' && inAG) {\n if (!numGroupsOpenInAG) {\n numAGs++;\n const addedCaptureNum = numCapturesBeforeAG + numAGs;\n // Replace `expression` and use `<$$N>` as a temporary wrapper for the backref so it\n // can avoid backref renumbering afterward. Wrap the whole substitution (including the\n // lookahead and following backref) in a noncapturing group to handle following\n // quantifiers and literal digits\n expression = `${expression.slice(0, aGPos)}${emulatedAGDelim}${\n expression.slice(aGPos + aGDelim.length, index)\n }))<$$${addedCaptureNum}>)${expression.slice(index + 1)}`;\n hasProcessedAG = true;\n addedHiddenCaptures.push(addedCaptureNum);\n incrementIfAtLeast(hiddenCaptures, addedCaptureNum);\n if (captureTransfers.size) {\n const newCaptureTransfers = new Map();\n captureTransfers.forEach((from, to) => {\n newCaptureTransfers.set(\n to >= addedCaptureNum ? to + 1 : to,\n from.map(f => f >= addedCaptureNum ? f + 1 : f)\n );\n });\n captureTransfers = newCaptureTransfers;\n }\n break;\n }\n numGroupsOpenInAG--;\n }\n\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n // Start over from the beginning of the atomic group's contents, in case the processed group\n // contains additional atomic groups\n } while (hasProcessedAG);\n\n hiddenCaptures.push(...addedHiddenCaptures);\n\n // Second pass to adjust numbered backrefs\n expression = replaceUnescaped(\n expression,\n String.raw`\\\\(?<backrefNum>[1-9]\\d*)|<\\$\\$(?<wrappedBackrefNum>\\d+)>`,\n ({0: m, groups: {backrefNum, wrappedBackrefNum}}) => {\n if (backrefNum) {\n const bNum = +backrefNum;\n if (bNum > captureNumMap.length - 1) {\n throw new Error(`Backref \"${m}\" greater than number of captures`);\n }\n return `\\\\${captureNumMap[bNum]}`;\n }\n return `\\\\${wrappedBackrefNum}`;\n },\n Context.DEFAULT\n );\n\n return {\n pattern: expression,\n captureTransfers,\n hiddenCaptures,\n };\n}\n\nconst baseQuantifier = String.raw`(?:[?*+]|\\{\\d+(?:,\\d*)?\\})`;\n// Complete tokenizer for base syntax; doesn't (need to) know about character-class-only syntax\nconst possessivePluginToken = new RegExp(String.raw`\n\\\\(?: \\d+\n | c[A-Za-z]\n | [gk]<[^>]+>\n | [pPu]\\{[^\\}]+\\}\n | u[A-Fa-f\\d]{4}\n | x[A-Fa-f\\d]{2}\n )\n| \\((?: \\? (?: [:=!>]\n | <(?:[=!]|[^>]+>)\n | [A-Za-z\\-]+:\n | \\(DEFINE\\)\n ))?\n| (?<qBase>${baseQuantifier})(?<qMod>[?+]?)(?<invalidQ>[?*+\\{]?)\n| \\\\?.\n`.replace(/\\s+/g, ''), 'gsu');\n\n/**\nTransform posessive quantifiers into atomic groups. The posessessive quantifiers are:\n`?+`, `*+`, `++`, `{N}+`, `{N,}+`, `{N,N}+`.\nThis follows Java, PCRE, Perl, and Python.\nPossessive quantifiers in Oniguruma and Onigmo are only: `?+`, `*+`, `++`.\n@param {string} expression\n@returns {PluginResult}\n*/\nfunction possessive(expression) {\n if (!(new RegExp(`${baseQuantifier}\\\\+`).test(expression))) {\n return {\n pattern: expression,\n };\n }\n\n const openGroupIndices = [];\n let lastGroupIndex = null;\n let lastCharClassIndex = null;\n let lastToken = '';\n let numCharClassesOpen = 0;\n let match;\n possessivePluginToken.lastIndex = 0;\n while (match = possessivePluginToken.exec(expression)) {\n const {0: m, index, groups: {qBase, qMod, invalidQ}} = match;\n if (m === '[') {\n if (!numCharClassesOpen) {\n lastCharClassIndex = index;\n }\n numCharClassesOpen++;\n } else if (m === ']') {\n if (numCharClassesOpen) {\n numCharClassesOpen--;\n // Unmatched `]`\n } else {\n lastCharClassIndex = null;\n }\n } else if (!numCharClassesOpen) {\n\n if (qMod === '+' && lastToken && !lastToken.startsWith('(')) {\n // Invalid following quantifier would become valid via the wrapping group\n if (invalidQ) {\n throw new Error(`Invalid quantifier \"${m}\"`);\n }\n let charsAdded = -1; // -1 for removed trailing `+`\n // Possessivizing fixed repetition quantifiers like `{2}` does't change their behavior, so\n // avoid doing so (convert them to greedy)\n if (/^\\{\\d+\\}$/.test(qBase)) {\n expression = spliceStr(expression, index + qBase.length, qMod, '');\n } else {\n if (lastToken === ')' || lastToken === ']') {\n const nodeIndex = lastToken === ')' ? lastGroupIndex : lastCharClassIndex;\n // Unmatched `)` would break out of the wrapping group and mess with handling.\n // Unmatched `]` wouldn't be a problem, but it's unnecessary to have dedicated support\n // for unescaped `]++` since this won't work with flag u or v anyway\n if (nodeIndex === null) {\n throw new Error(`Invalid unmatched \"${lastToken}\"`);\n }\n expression = `${expression.slice(0, nodeIndex)}(?>${expression.slice(nodeIndex, index)}${qBase})${expression.slice(index + m.length)}`;\n } else {\n expression = `${expression.slice(0, index - lastToken.length)}(?>${lastToken}${qBase})${expression.slice(index + m.length)}`;\n }\n charsAdded += 4; // `(?>)`\n }\n possessivePluginToken.lastIndex += charsAdded;\n } else if (m[0] === '(') {\n openGroupIndices.push(index);\n } else if (m === ')') {\n lastGroupIndex = openGroupIndices.length ? openGroupIndices.pop() : null;\n }\n\n }\n lastToken = m;\n }\n\n return {\n pattern: expression,\n };\n}\n\nexport {\n atomic,\n possessive,\n};\n","import {Context, forEachUnescaped, getGroupContents, hasUnescaped, replaceUnescaped} from 'regex-utilities';\n\nconst r = String.raw;\nconst gRToken = r`\\\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`;\nconst recursiveToken = r`\\(\\?R=(?<rDepth>[^\\)]+)\\)|${gRToken}`;\nconst namedCaptureDelim = r`\\(\\?<(?![=!])(?<captureName>[^>]+)>`;\nconst captureDelim = r`${namedCaptureDelim}|(?<unnamed>\\()(?!\\?)`;\nconst token = new RegExp(r`${namedCaptureDelim}|${recursiveToken}|\\(\\?|\\\\?.`, 'gsu');\nconst overlappingRecursionMsg = 'Cannot use multiple overlapping recursions';\n\n/**\n@param {string} pattern\n@param {{\n flags?: string;\n captureTransfers?: Map<number, Array<number>>;\n hiddenCaptures?: Array<number>;\n mode?: 'plugin' | 'external';\n}} [data]\n@returns {{\n pattern: string;\n captureTransfers: Map<number, Array<number>>;\n hiddenCaptures: Array<number>;\n}}\n*/\nfunction recursion(pattern, data) {\n const {hiddenCaptures, mode} = {\n hiddenCaptures: [],\n mode: 'plugin',\n ...data,\n };\n // Capture transfer is used by <github.com/slevithan/oniguruma-to-es>\n let captureTransfers = data?.captureTransfers ?? new Map();\n // Keep the initial fail-check (which avoids unneeded processing) as fast as possible by testing\n // without the accuracy improvement of using `hasUnescaped` with `Context.DEFAULT`\n if (!(new RegExp(recursiveToken, 'su').test(pattern))) {\n return {\n pattern,\n captureTransfers,\n hiddenCaptures,\n };\n }\n if (mode === 'plugin' && hasUnescaped(pattern, r`\\(\\?\\(DEFINE\\)`, Context.DEFAULT)) {\n throw new Error('DEFINE groups cannot be used with recursion');\n }\n\n const addedHiddenCaptures = [];\n const hasNumberedBackref = hasUnescaped(pattern, r`\\\\[1-9]`, Context.DEFAULT);\n const groupContentsStartPos = new Map();\n const openGroups = [];\n let hasRecursed = false;\n let numCharClassesOpen = 0;\n let numCapturesPassed = 0;\n let match;\n token.lastIndex = 0;\n while ((match = token.exec(pattern))) {\n const {0: m, groups: {captureName, rDepth, gRNameOrNum, gRDepth}} = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n\n // `(?R=N)`\n if (rDepth) {\n assertMaxInBounds(rDepth);\n if (hasRecursed) {\n throw new Error(overlappingRecursionMsg);\n }\n if (hasNumberedBackref) {\n // Could add support for numbered backrefs with extra effort, but it's probably not worth\n // it. To trigger this error, the regex must include recursion and one of the following:\n // - An interpolated regex that contains a numbered backref (since other numbered\n // backrefs are prevented by implicit flag n).\n // - A numbered backref, when flag n is explicitly disabled.\n // Note that Regex+'s extended syntax (atomic groups and sometimes subroutines) can also\n // add numbered backrefs, but those work fine because external plugins like this one run\n // *before* the transformation of built-in syntax extensions\n throw new Error(\n // When used in `external` mode by transpilers other than Regex+, backrefs might have\n // gone through conversion from named to numbered, so avoid a misleading error\n `${mode === 'external' ? 'Backrefs' : 'Numbered backrefs'} cannot be used with global recursion`\n );\n }\n const left = pattern.slice(0, match.index);\n const right = pattern.slice(token.lastIndex);\n if (hasUnescaped(right, recursiveToken, Context.DEFAULT)) {\n throw new Error(overlappingRecursionMsg);\n }\n const reps = +rDepth - 1;\n pattern = makeRecursive(\n left,\n right,\n reps,\n false,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n );\n captureTransfers = mapCaptureTransfers(\n captureTransfers,\n left,\n reps,\n addedHiddenCaptures.length,\n 0,\n numCapturesPassed\n );\n // No need to parse further\n break;\n // `\\g<name&R=N>`, `\\g<number&R=N>`\n } else if (gRNameOrNum) {\n assertMaxInBounds(gRDepth);\n let isWithinReffedGroup = false;\n for (const g of openGroups) {\n if (g.name === gRNameOrNum || g.num === +gRNameOrNum) {\n isWithinReffedGroup = true;\n if (g.hasRecursedWithin) {\n throw new Error(overlappingRecursionMsg);\n }\n break;\n }\n }\n if (!isWithinReffedGroup) {\n throw new Error(r`Recursive \\g cannot be used outside the referenced group \"${\n mode === 'external' ? gRNameOrNum : r`\\g<${gRNameOrNum}&R=${gRDepth}>`\n }\"`);\n }\n const startPos = groupContentsStartPos.get(gRNameOrNum);\n const groupContents = getGroupContents(pattern, startPos);\n if (\n hasNumberedBackref &&\n hasUnescaped(groupContents, r`${namedCaptureDelim}|\\((?!\\?)`, Context.DEFAULT)\n ) {\n throw new Error(\n // When used in `external` mode by transpilers other than Regex+, backrefs might have\n // gone through conversion from named to numbered, so avoid a misleading error\n `${mode === 'external' ? 'Backrefs' : 'Numbered backrefs'} cannot be used with recursion of capturing groups`\n );\n }\n const groupContentsLeft = pattern.slice(startPos, match.index);\n const groupContentsRight = groupContents.slice(groupContentsLeft.length + m.length);\n const numAddedHiddenCapturesPreExpansion = addedHiddenCaptures.length;\n const reps = +gRDepth - 1;\n const expansion = makeRecursive(\n groupContentsLeft,\n groupContentsRight,\n reps,\n true,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n );\n captureTransfers = mapCaptureTransfers(\n captureTransfers,\n groupContentsLeft,\n reps,\n addedHiddenCaptures.length - numAddedHiddenCapturesPreExpansion,\n numAddedHiddenCapturesPreExpansion,\n numCapturesPassed\n );\n const pre = pattern.slice(0, startPos);\n const post = pattern.slice(startPos + groupContents.length);\n // Modify the string we're looping over\n pattern = `${pre}${expansion}${post}`;\n // Step forward for the next loop iteration\n token.lastIndex += expansion.length - m.length - groupContentsLeft.length - groupContentsRight.length;\n openGroups.forEach(g => g.hasRecursedWithin = true);\n hasRecursed = true;\n } else if (captureName) {\n numCapturesPassed++;\n groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);\n groupContentsStartPos.set(captureName, token.lastIndex);\n openGroups.push({\n num: numCapturesPassed,\n name: captureName,\n });\n } else if (m[0] === '(') {\n const isUnnamedCapture = m === '(';\n if (isUnnamedCapture) {\n numCapturesPassed++;\n groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);\n }\n openGroups.push(isUnnamedCapture ? {num: numCapturesPassed} : {});\n } else if (m === ')') {\n openGroups.pop();\n }\n\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n\n hiddenCaptures.push(...addedHiddenCaptures);\n\n return {\n pattern,\n captureTransfers,\n hiddenCaptures,\n };\n}\n\n/**\n@param {string} max\n*/\nfunction assertMaxInBounds(max) {\n const errMsg = `Max depth must be integer between 2 and 100; used ${max}`;\n if (!/^[1-9]\\d*$/.test(max)) {\n throw new Error(errMsg);\n }\n max = +max;\n if (max < 2 || max > 100) {\n throw new Error(errMsg);\n }\n}\n\n/**\n@param {string} left\n@param {string} right\n@param {number} reps\n@param {boolean} isSubpattern\n@param {Array<number>} hiddenCaptures\n@param {Array<number>} addedHiddenCaptures\n@param {number} numCapturesPassed\n@returns {string}\n*/\nfunction makeRecursive(\n left,\n right,\n reps,\n isSubpattern,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n) {\n const namesInRecursed = new Set();\n // Can skip this work if not needed\n if (isSubpattern) {\n forEachUnescaped(left + right, namedCaptureDelim, ({groups: {captureName}}) => {\n namesInRecursed.add(captureName);\n }, Context.DEFAULT);\n }\n const rest = [\n reps,\n isSubpattern ? namesInRecursed : null,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed,\n ];\n // Depth 2: 'left(?:left(?:)right)right'\n // Depth 3: 'left(?:left(?:left(?:)right)right)right'\n // Empty group in the middle separates tokens and absorbs a following quantifier if present\n return `${left}${\n repeatWithDepth(`(?:${left}`, 'forward', ...rest)\n }(?:)${\n repeatWithDepth(`${right})`, 'backward', ...rest)\n }${right}`;\n}\n\n/**\n@param {string} pattern\n@param {'forward' | 'backward'} direction\n@param {number} reps\n@param {Set<string> | null} namesInRecursed\n@param {Array<number>} hiddenCaptures\n@param {Array<number>} addedHiddenCaptures\n@param {number} numCapturesPassed\n@returns {string}\n*/\nfunction repeatWithDepth(\n pattern,\n direction,\n reps,\n namesInRecursed,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n) {\n const startNum = 2;\n const getDepthNum = i => direction === 'forward' ? (i + startNum) : (reps - i + startNum - 1);\n let result = '';\n for (let i = 0; i < reps; i++) {\n const depthNum = getDepthNum(i);\n result += replaceUnescaped(\n pattern,\n r`${captureDelim}|\\\\k<(?<backref>[^>]+)>`,\n ({0: m, groups: {captureName, unnamed, backref}}) => {\n if (backref && namesInRecursed && !namesInRecursed.has(backref)) {\n // Don't alter backrefs to groups outside the recursed subpattern\n return m;\n }\n const suffix = `_$${depthNum}`;\n if (unnamed || captureName) {\n const addedCaptureNum = numCapturesPassed + addedHiddenCaptures.length + 1;\n addedHiddenCaptures.push(addedCaptureNum);\n incrementIfAtLeast(hiddenCaptures, addedCaptureNum);\n return unnamed ? m : `(?<${captureName}${suffix}>`;\n }\n return r`\\k<${backref}${suffix}>`;\n },\n Context.DEFAULT\n );\n }\n return result;\n}\n\n/**\nUpdates the array in place by incrementing each value greater than or equal to the threshold.\n@param {Array<number>} arr\n@param {number} threshold\n*/\nfunction incrementIfAtLeast(arr, threshold) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] >= threshold) {\n arr[i]++;\n }\n }\n}\n\n/**\n@param {Map<number, Array<number>>} captureTransfers\n@param {string} left\n@param {number} reps\n@param {number} numCapturesAddedInExpansion\n@param {number} numAddedHiddenCapturesPreExpansion\n@param {number} numCapturesPassed\n@returns {Map<number, Array<number>>}\n*/\nfunction mapCaptureTransfers(captureTransfers, left, reps, numCapturesAddedInExpansion, numAddedHiddenCapturesPreExpansion, numCapturesPassed) {\n if (captureTransfers.size && numCapturesAddedInExpansion) {\n let numCapturesInLeft = 0;\n forEachUnescaped(left, captureDelim, () => numCapturesInLeft++, Context.DEFAULT);\n // Is 0 for global recursion\n const recursionDelimCaptureNum = numCapturesPassed - numCapturesInLeft + numAddedHiddenCapturesPreExpansion;\n const newCaptureTransfers = new Map();\n captureTransfers.forEach((from, to) => {\n const numCapturesInRight = (numCapturesAddedInExpansion - (numCapturesInLeft * reps)) / reps;\n const numCapturesAddedInLeft = numCapturesInLeft * reps;\n const newTo = to > (recursionDelimCaptureNum + numCapturesInLeft) ? to + numCapturesAddedInExpansion : to;\n const newFrom = [];\n for (const f of from) {\n // Before the recursed subpattern\n if (f <= recursionDelimCaptureNum) {\n newFrom.push(f);\n // After the recursed subpattern\n } else if (f > (recursionDelimCaptureNum + numCapturesInLeft + numCapturesInRight)) {\n newFrom.push(f + numCapturesAddedInExpansion);\n // Within the recursed subpattern, on the left of the recursion token\n } else if (f <= (recursionDelimCaptureNum + numCapturesInLeft)) {\n for (let i = 0; i <= reps; i++) {\n newFrom.push(f + (numCapturesInLeft * i));\n }\n // Within the recursed subpattern, on the right of the recursion token\n } else {\n for (let i = 0; i <= reps; i++) {\n newFrom.push(f + numCapturesAddedInLeft + (numCapturesInRight * i));\n }\n }\n }\n newCaptureTransfers.set(newTo, newFrom);\n });\n return newCaptureTransfers;\n }\n return captureTransfers;\n}\n\nexport {\n recursion,\n};\n","// src/utils.js\nvar cp = String.fromCodePoint;\nvar r = String.raw;\nvar envFlags = {\n flagGroups: (() => {\n try {\n new RegExp(\"(?i:)\");\n } catch {\n return false;\n }\n return true;\n })(),\n unicodeSets: (() => {\n try {\n new RegExp(\"[[]]\", \"v\");\n } catch {\n return false;\n }\n return true;\n })()\n};\nenvFlags.bugFlagVLiteralHyphenIsRange = envFlags.unicodeSets ? (() => {\n try {\n new RegExp(r`[\\d\\-a]`, \"v\");\n } catch {\n return true;\n }\n return false;\n})() : false;\nenvFlags.bugNestedClassIgnoresNegation = envFlags.unicodeSets && new RegExp(\"[[^a]]\", \"v\").test(\"a\");\nfunction getNewCurrentFlags(current, { enable, disable }) {\n return {\n dotAll: !disable?.dotAll && !!(enable?.dotAll || current.dotAll),\n ignoreCase: !disable?.ignoreCase && !!(enable?.ignoreCase || current.ignoreCase)\n };\n}\nfunction getOrInsert(map, key, defaultValue) {\n if (!map.has(key)) {\n map.set(key, defaultValue);\n }\n return map.get(key);\n}\nfunction isMinTarget(target, min) {\n return EsVersion[target] >= EsVersion[min];\n}\nfunction throwIfNullish(value, msg) {\n if (value == null) {\n throw new Error(msg ?? \"Value expected\");\n }\n return value;\n}\n\n// src/options.js\nvar EsVersion = {\n ES2025: 2025,\n ES2024: 2024,\n ES2018: 2018\n};\nvar Target = (\n /** @type {const} */\n {\n auto: \"auto\",\n ES2025: \"ES2025\",\n ES2024: \"ES2024\",\n ES2018: \"ES2018\"\n }\n);\nfunction getOptions(options = {}) {\n if ({}.toString.call(options) !== \"[object Object]\") {\n throw new Error(\"Unexpected options\");\n }\n if (options.target !== void 0 && !Target[options.target]) {\n throw new Error(`Unexpected target \"${options.target}\"`);\n }\n const opts = {\n // Sets the level of emulation rigor/strictness.\n accuracy: \"default\",\n // Disables advanced emulation that relies on returning a `RegExp` subclass, resulting in\n // certain patterns not being emulatable.\n avoidSubclass: false,\n // Oniguruma flags; a string with `i`, `m`, `x`, `D`, `S`, `W`, `y{g}` in any order (all\n // optional). Oniguruma's `m` is equivalent to JavaScript's `s` (`dotAll`).\n flags: \"\",\n // Include JavaScript flag `g` (`global`) in the result.\n global: false,\n // Include JavaScript flag `d` (`hasIndices`) in the result.\n hasIndices: false,\n // Delay regex construction until first use if the transpiled pattern is at least this length.\n lazyCompileLength: Infinity,\n // JavaScript version used for generated regexes. Using `auto` detects the best value based on\n // your environment. Later targets allow faster processing, simpler generated source, and\n // support for additional features.\n target: \"auto\",\n // Disables minifications that simplify the pattern without changing the meaning.\n verbose: false,\n ...options,\n // Advanced options that override standard behavior, error checking, and flags when enabled.\n rules: {\n // Useful with TextMate grammars that merge backreferences across patterns.\n allowOrphanBackrefs: false,\n // Use ASCII `\\b` and `\\B`, which increases search performance of generated regexes.\n asciiWordBoundaries: false,\n // Allow unnamed captures and numbered calls (backreferences and subroutines) when using\n // named capture. This is Oniguruma option `ONIG_OPTION_CAPTURE_GROUP`; on by default in\n // `vscode-oniguruma`.\n captureGroup: false,\n // Change the recursion depth limit from Oniguruma's `20` to an integer `2`–`20`.\n recursionLimit: 20,\n // `^` as `\\A`; `$` as`\\Z`. Improves search performance of generated regexes without changing\n // the meaning if searching line by line. This is Oniguruma option `ONIG_OPTION_SINGLELINE`.\n singleline: false,\n ...options.rules\n }\n };\n if (opts.target === \"auto\") {\n opts.target = envFlags.flagGroups ? \"ES2025\" : envFlags.unicodeSets ? \"ES2024\" : \"ES2018\";\n }\n return opts;\n}\n\n// src/unicode.js\nimport { slug } from \"oniguruma-parser/parser\";\nvar asciiSpaceChar = \"[\t-\\r ]\";\nvar CharsWithoutIgnoreCaseExpansion = /* @__PURE__ */ new Set([\n cp(304),\n // İ\n cp(305)\n // ı\n]);\nvar defaultWordChar = r`[\\p{L}\\p{M}\\p{N}\\p{Pc}]`;\nfunction getIgnoreCaseMatchChars(char) {\n if (CharsWithoutIgnoreCaseExpansion.has(char)) {\n return [char];\n }\n const set = /* @__PURE__ */ new Set();\n const lower = char.toLowerCase();\n const upper = lower.toUpperCase();\n const title = LowerToTitleCaseMap.get(lower);\n const altLower = LowerToAlternativeLowerCaseMap.get(lower);\n const altUpper = LowerToAlternativeUpperCaseMap.get(lower);\n if ([...upper].length === 1) {\n set.add(upper);\n }\n altUpper && set.add(altUpper);\n title && set.add(title);\n set.add(lower);\n altLower && set.add(altLower);\n return [...set];\n}\nvar JsUnicodePropertyMap = /* @__PURE__ */ new Map(\n `C Other\nCc Control cntrl\nCf Format\nCn Unassigned\nCo Private_Use\nCs Surrogate\nL Letter\nLC Cased_Letter\nLl Lowercase_Letter\nLm Modifier_Letter\nLo Other_Letter\nLt Titlecase_Letter\nLu Uppercase_Letter\nM Mark Combining_Mark\nMc Spacing_Mark\nMe Enclosing_Mark\nMn Nonspacing_Mark\nN Number\nNd Decimal_Number digit\nNl Letter_Number\nNo Other_Number\nP Punctuation punct\nPc Connector_Punctuation\nPd Dash_Punctuation\nPe Close_Punctuation\nPf Final_Punctuation\nPi Initial_Punctuation\nPo Other_Punctuation\nPs Open_Punctuation\nS Symbol\nSc Currency_Symbol\nSk Modifier_Symbol\nSm Math_Symbol\nSo Other_Symbol\nZ Separator\nZl Line_Separator\nZp Paragraph_Separator\nZs Space_Separator\nASCII\nASCII_Hex_Digit AHex\nAlphabetic Alpha\nAny\nAssigned\nBidi_Control Bidi_C\nBidi_Mirrored Bidi_M\nCase_Ignorable CI\nCased\nChanges_When_Casefolded CWCF\nChanges_When_Casemapped CWCM\nChanges_When_Lowercased CWL\nChanges_When_NFKC_Casefolded CWKCF\nChanges_When_Titlecased CWT\nChanges_When_Uppercased CWU\nDash\nDefault_Ignorable_Code_Point DI\nDeprecated Dep\nDiacritic Dia\nEmoji\nEmoji_Component EComp\nEmoji_Modifier EMod\nEmoji_Modifier_Base EBase\nEmoji_Presentation EPres\nExtended_Pictographic ExtPict\nExtender Ext\nGrapheme_Base Gr_Base\nGrapheme_Extend Gr_Ext\nHex_Digit Hex\nIDS_Binary_Operator IDSB\nIDS_Trinary_Operator IDST\nID_Continue IDC\nID_Start IDS\nIdeographic Ideo\nJoin_Control Join_C\nLogical_Order_Exception LOE\nLowercase Lower\nMath\nNoncharacter_Code_Point NChar\nPattern_Syntax Pat_Syn\nPattern_White_Space Pat_WS\nQuotation_Mark QMark\nRadical\nRegional_Indicator RI\nSentence_Terminal STerm\nSoft_Dotted SD\nTerminal_Punctuation Term\nUnified_Ideograph UIdeo\nUppercase Upper\nVariation_Selector VS\nWhite_Space space\nXID_Continue XIDC\nXID_Start XIDS`.split(/\\s/).map((p) => [slug(p), p])\n);\nvar LowerToAlternativeLowerCaseMap = /* @__PURE__ */ new Map([\n [\"s\", cp(383)],\n // s, ſ\n [cp(383), \"s\"]\n // ſ, s\n]);\nvar LowerToAlternativeUpperCaseMap = /* @__PURE__ */ new Map([\n [cp(223), cp(7838)],\n // ß, ẞ\n [cp(107), cp(8490)],\n // k, K (Kelvin)\n [cp(229), cp(8491)],\n // å, Å (Angstrom)\n [cp(969), cp(8486)]\n // ω, Ω (Ohm)\n]);\nvar LowerToTitleCaseMap = new Map([\n titleEntry(453),\n titleEntry(456),\n titleEntry(459),\n titleEntry(498),\n ...titleRange(8072, 8079),\n ...titleRange(8088, 8095),\n ...titleRange(8104, 8111),\n titleEntry(8124),\n titleEntry(8140),\n titleEntry(8188)\n]);\nvar PosixClassMap = /* @__PURE__ */ new Map([\n [\"alnum\", r`[\\p{Alpha}\\p{Nd}]`],\n [\"alpha\", r`\\p{Alpha}`],\n [\"ascii\", r`\\p{ASCII}`],\n [\"blank\", r`[\\p{Zs}\\t]`],\n [\"cntrl\", r`\\p{Cc}`],\n [\"digit\", r`\\p{Nd}`],\n [\"graph\", r`[\\P{space}&&\\P{Cc}&&\\P{Cn}&&\\P{Cs}]`],\n [\"lower\", r`\\p{Lower}`],\n [\"print\", r`[[\\P{space}&&\\P{Cc}&&\\P{Cn}&&\\P{Cs}]\\p{Zs}]`],\n [\"punct\", r`[\\p{P}\\p{S}]`],\n // Updated value from Onig 6.9.9; changed from Unicode `\\p{punct}`\n [\"space\", r`\\p{space}`],\n [\"upper\", r`\\p{Upper}`],\n [\"word\", r`[\\p{Alpha}\\p{M}\\p{Nd}\\p{Pc}]`],\n [\"xdigit\", r`\\p{AHex}`]\n]);\nfunction range(start, end) {\n const range2 = [];\n for (let i = start; i <= end; i++) {\n range2.push(i);\n }\n return range2;\n}\nfunction titleEntry(codePoint) {\n const char = cp(codePoint);\n return [char.toLowerCase(), char];\n}\nfunction titleRange(start, end) {\n return range(start, end).map((codePoint) => titleEntry(codePoint));\n}\nvar UnicodePropertiesWithSpecificCase = /* @__PURE__ */ new Set([\n \"Lower\",\n \"Lowercase\",\n \"Upper\",\n \"Uppercase\",\n \"Ll\",\n \"Lowercase_Letter\",\n \"Lt\",\n \"Titlecase_Letter\",\n \"Lu\",\n \"Uppercase_Letter\"\n // The `Changes_When_*` properties (and their aliases) could be included, but they're very rare.\n // Some other properties include a handful of chars with specific cases only, but these chars are\n // generally extreme edge cases and using such properties case insensitively generally produces\n // undesired behavior anyway\n]);\n\n// src/transform.js\nimport { createAlternative, createAssertion, createBackreference, createCapturingGroup, createCharacter, createCharacterClass, createCharacterSet, createGroup, createLookaroundAssertion, createQuantifier, createSubroutine, createUnicodeProperty, hasOnlyChild, parse, slug as slug2 } from \"oniguruma-parser/parser\";\nimport { traverse } from \"oniguruma-parser/traverser\";\nfunction transform(ast, options) {\n const opts = {\n // A couple edge cases exist where options `accuracy` and `bestEffortTarget` are used:\n // - `CharacterSet` kind `text_segment` (`\\X`): An exact representation would require heavy\n // Unicode data; a best-effort approximation requires knowing the target.\n // - `CharacterSet` kind `posix` with values `graph` and `print`: Their complex Unicode\n // representations would be hard to change to ASCII versions after the fact in the generator\n // based on `target`/`accuracy`, so produce the appropriate structure here.\n accuracy: \"default\",\n asciiWordBoundaries: false,\n avoidSubclass: false,\n bestEffortTarget: \"ES2025\",\n ...options\n };\n addParentProperties(ast);\n const firstPassState = {\n accuracy: opts.accuracy,\n asciiWordBoundaries: opts.asciiWordBoundaries,\n avoidSubclass: opts.avoidSubclass,\n flagDirectivesByAlt: /* @__PURE__ */ new Map(),\n jsGroupNameMap: /* @__PURE__ */ new Map(),\n minTargetEs2024: isMinTarget(opts.bestEffortTarget, \"ES2024\"),\n passedLookbehind: false,\n strategy: null,\n // Subroutines can appear before the groups they ref, so collect reffed nodes for a second pass \n subroutineRefMap: /* @__PURE__ */ new Map(),\n supportedGNodes: /* @__PURE__ */ new Set(),\n digitIsAscii: ast.flags.digitIsAscii,\n spaceIsAscii: ast.flags.spaceIsAscii,\n wordIsAscii: ast.flags.wordIsAscii\n };\n traverse(ast, FirstPassVisitor, firstPassState);\n const globalFlags = {\n dotAll: ast.flags.dotAll,\n ignoreCase: ast.flags.ignoreCase\n };\n const secondPassState = {\n currentFlags: globalFlags,\n prevFlags: null,\n globalFlags,\n groupOriginByCopy: /* @__PURE__ */ new Map(),\n groupsByName: /* @__PURE__ */ new Map(),\n multiplexCapturesToLeftByRef: /* @__PURE__ */ new Map(),\n openRefs: /* @__PURE__ */ new Map(),\n reffedNodesByReferencer: /* @__PURE__ */ new Map(),\n subroutineRefMap: firstPassState.subroutineRefMap\n };\n traverse(ast, SecondPassVisitor, secondPassState);\n const thirdPassState = {\n groupsByName: secondPassState.groupsByName,\n highestOrphanBackref: 0,\n numCapturesToLeft: 0,\n reffedNodesByReferencer: secondPassState.reffedNodesByReferencer\n };\n traverse(ast, ThirdPassVisitor, thirdPassState);\n ast._originMap = secondPassState.groupOriginByCopy;\n ast._strategy = firstPassState.strategy;\n return ast;\n}\nvar FirstPassVisitor = {\n AbsenceFunction({ node, parent, replaceWith }) {\n const { body, kind } = node;\n if (kind === \"repeater\") {\n const innerGroup = createGroup();\n innerGroup.body[0].body.push(\n // Insert own alts as `body`\n createLookaroundAssertion({ negate: true, body }),\n createUnicodeProperty(\"Any\")\n );\n const outerGroup = createGroup();\n outerGroup.body[0].body.push(\n createQuantifier(\"greedy\", 0, Infinity, innerGroup)\n );\n replaceWith(setParentDeep(outerGroup, parent), { traverse: true });\n } else {\n throw new Error(`Unsupported absence function \"(?~|\"`);\n }\n },\n Alternative: {\n enter({ node, parent, key }, { flagDirectivesByAlt }) {\n const flagDirectives = node.body.filter((el) => el.kind === \"flags\");\n for (let i = key + 1; i < parent.body.length; i++) {\n const forwardSiblingAlt = parent.body[i];\n getOrInsert(flagDirectivesByAlt, forwardSiblingAlt, []).push(...flagDirectives);\n }\n },\n exit({ node }, { flagDirectivesByAlt }) {\n if (flagDirectivesByAlt.get(node)?.length) {\n const flags = getCombinedFlagModsFromFlagNodes(flagDirectivesByAlt.get(node));\n if (flags) {\n const flagGroup = createGroup({ flags });\n flagGroup.body[0].body = node.body;\n node.body = [setParentDeep(flagGroup, node)];\n }\n }\n }\n },\n Assertion({ node, parent, key, container, root, remove, replaceWith }, state) {\n const { kind, negate } = node;\n const { asciiWordBoundaries, avoidSubclass, supportedGNodes, wordIsAscii } = state;\n if (kind === \"text_segment_boundary\") {\n throw new Error(`Unsupported text segment boundary \"\\\\${negate ? \"Y\" : \"y\"}\"`);\n } else if (kind === \"line_end\") {\n replaceWith(setParentDeep(createLookaroundAssertion({ body: [\n createAlternative({ body: [createAssertion(\"string_end\")] }),\n createAlternative({ body: [createCharacter(10)] })\n // `\\n`\n ] }), parent));\n } else if (kind === \"line_start\") {\n replaceWith(setParentDeep(parseFragment(r`(?<=\\A|\\n(?!\\z))`, { skipLookbehindValidation: true }), parent));\n } else if (kind === \"search_start\") {\n if (supportedGNodes.has(node)) {\n root.flags.sticky = true;\n remove();\n } else {\n const prev = container[key - 1];\n if (prev && isAlwaysNonZeroLength(prev)) {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else if (avoidSubclass) {\n throw new Error(r`Uses \"\\G\" in a way that requires a subclass`);\n } else {\n replaceWith(setParent(createAssertion(\"string_start\"), parent));\n state.strategy = \"clip_search\";\n }\n }\n } else if (kind === \"string_end\" || kind === \"string_start\") {\n } else if (kind === \"string_end_newline\") {\n replaceWith(setParentDeep(parseFragment(r`(?=\\n?\\z)`), parent));\n } else if (kind === \"word_boundary\") {\n if (!wordIsAscii && !asciiWordBoundaries) {\n const b = `(?:(?<=${defaultWordChar})(?!${defaultWordChar})|(?<!${defaultWordChar})(?=${defaultWordChar}))`;\n const B = `(?:(?<=${defaultWordChar})(?=${defaultWordChar})|(?<!${defaultWordChar})(?!${defaultWordChar}))`;\n replaceWith(setParentDeep(parseFragment(negate ? B : b), parent));\n }\n } else {\n throw new Error(`Unexpected assertion kind \"${kind}\"`);\n }\n },\n Backreference({ node }, { jsGroupNameMap }) {\n let { ref } = node;\n if (typeof ref === \"string\" && !isValidJsGroupName(ref)) {\n ref = getAndStoreJsGroupName(ref, jsGroupNameMap);\n node.ref = ref;\n }\n },\n CapturingGroup({ node }, { jsGroupNameMap, subroutineRefMap }) {\n let { name } = node;\n if (name && !isValidJsGroupName(name)) {\n name = getAndStoreJsGroupName(name, jsGroupNameMap);\n node.name = name;\n }\n subroutineRefMap.set(node.number, node);\n if (name) {\n subroutineRefMap.set(name, node);\n }\n },\n CharacterClassRange({ node, parent, replaceWith }) {\n if (parent.kind === \"intersection\") {\n const cc = createCharacterClass({ body: [node] });\n replaceWith(setParentDeep(cc, parent), { traverse: true });\n }\n },\n CharacterSet({ node, parent, replaceWith }, { accuracy, minTargetEs2024, digitIsAscii, spaceIsAscii, wordIsAscii }) {\n const { kind, negate, value } = node;\n if (digitIsAscii && (kind === \"digit\" || value === \"digit\")) {\n replaceWith(setParent(createCharacterSet(\"digit\", { negate }), parent));\n return;\n }\n if (spaceIsAscii && (kind === \"space\" || value === \"space\")) {\n replaceWith(setParentDeep(setNegate(parseFragment(asciiSpaceChar), negate), parent));\n return;\n }\n if (wordIsAscii && (kind === \"word\" || value === \"word\")) {\n replaceWith(setParent(createCharacterSet(\"word\", { negate }), parent));\n return;\n }\n if (kind === \"any\") {\n replaceWith(setParent(createUnicodeProperty(\"Any\"), parent));\n } else if (kind === \"digit\") {\n replaceWith(setParent(createUnicodeProperty(\"Nd\", { negate }), parent));\n } else if (kind === \"dot\") {\n } else if (kind === \"text_segment\") {\n if (accuracy === \"strict\") {\n throw new Error(r`Use of \"\\X\" requires non-strict accuracy`);\n }\n const eBase = \"\\\\p{Emoji}(?:\\\\p{EMod}|\\\\uFE0F\\\\u20E3?|[\\\\x{E0020}-\\\\x{E007E}]+\\\\x{E007F})?\";\n const emoji = r`\\p{RI}{2}|${eBase}(?:\\u200D${eBase})*`;\n replaceWith(setParentDeep(parseFragment(\n // Close approximation of an extended grapheme cluster; see <unicode.org/reports/tr29/>\n r`(?>\\r\\n|${minTargetEs2024 ? r`\\p{RGI_Emoji}` : emoji}|\\P{M}\\p{M}*)`,\n // Allow JS property `RGI_Emoji` through\n { skipPropertyNameValidation: true }\n ), parent));\n } else if (kind === \"hex\") {\n replaceWith(setParent(createUnicodeProperty(\"AHex\", { negate }), parent));\n } else if (kind === \"newline\") {\n replaceWith(setParentDeep(parseFragment(negate ? \"[^\\n]\" : \"(?>\\r\\n?|[\\n\\v\\f\\x85\\u2028\\u2029])\"), parent));\n } else if (kind === \"posix\") {\n if (!minTargetEs2024 && (value === \"graph\" || value === \"print\")) {\n if (accuracy === \"strict\") {\n throw new Error(`POSIX class \"${value}\" requires min target ES2024 or non-strict accuracy`);\n }\n let ascii = {\n graph: \"!-~\",\n print: \" -~\"\n }[value];\n if (negate) {\n ascii = `\\0-${cp(ascii.codePointAt(0) - 1)}${cp(ascii.codePointAt(2) + 1)}-\\u{10FFFF}`;\n }\n replaceWith(setParentDeep(parseFragment(`[${ascii}]`), parent));\n } else {\n replaceWith(setParentDeep(setNegate(parseFragment(PosixClassMap.get(value)), negate), parent));\n }\n } else if (kind === \"property\") {\n if (!JsUnicodePropertyMap.has(slug2(value))) {\n node.key = \"sc\";\n }\n } else if (kind === \"space\") {\n replaceWith(setParent(createUnicodeProperty(\"space\", { negate }), parent));\n } else if (kind === \"word\") {\n replaceWith(setParentDeep(setNegate(parseFragment(defaultWordChar), negate), parent));\n } else {\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n }\n },\n Directive({ node, parent, root, remove, replaceWith, removeAllPrevSiblings, removeAllNextSiblings }) {\n const { kind, flags } = node;\n if (kind === \"flags\") {\n if (!flags.enable && !flags.disable) {\n remove();\n } else {\n const flagGroup = createGroup({ flags });\n flagGroup.body[0].body = removeAllNextSiblings();\n replaceWith(setParentDeep(flagGroup, parent), { traverse: true });\n }\n } else if (kind === \"keep\") {\n const firstAlt = root.body[0];\n const hasWrapperGroup = root.body.length === 1 && // Not emulatable if within a `CapturingGroup`\n hasOnlyChild(firstAlt, { type: \"Group\" }) && firstAlt.body[0].body.length === 1;\n const topLevel = hasWrapperGroup ? firstAlt.body[0] : root;\n if (parent.parent !== topLevel || topLevel.body.length > 1) {\n throw new Error(r`Uses \"\\K\" in a way that's unsupported`);\n }\n const lookbehind = createLookaroundAssertion({ behind: true });\n lookbehind.body[0].body = removeAllPrevSiblings();\n replaceWith(setParentDeep(lookbehind, parent));\n } else {\n throw new Error(`Unexpected directive kind \"${kind}\"`);\n }\n },\n Flags({ node, parent }) {\n if (node.posixIsAscii) {\n throw new Error('Unsupported flag \"P\"');\n }\n if (node.textSegmentMode === \"word\") {\n throw new Error('Unsupported flag \"y{w}\"');\n }\n [\n \"digitIsAscii\",\n // Flag D\n \"extended\",\n // Flag x\n \"posixIsAscii\",\n // Flag P\n \"spaceIsAscii\",\n // Flag S\n \"wordIsAscii\",\n // Flag W\n \"textSegmentMode\"\n // Flag y{g} or y{w}\n ].forEach((f) => delete node[f]);\n Object.assign(node, {\n // JS flag g; no Onig equiv\n global: false,\n // JS flag d; no Onig equiv\n hasIndices: false,\n // JS flag m; no Onig equiv but its behavior is always on in Onig. Onig's only line break\n // char is line feed, unlike JS, so this flag isn't used since it would produce inaccurate\n // results (also allows `^` and `$` to be used in the generator for string start and end)\n multiline: false,\n // JS flag y; no Onig equiv, but used for `\\G` emulation\n sticky: node.sticky ?? false\n // Note: Regex+ doesn't allow explicitly adding flags it handles implicitly, so leave out\n // properties `unicode` (JS flag u) and `unicodeSets` (JS flag v). Keep the existing values\n // for `ignoreCase` (flag i) and `dotAll` (JS flag s, but Onig flag m)\n });\n parent.options = {\n disable: {\n // Onig uses different rules for flag x than Regex+, so disable the implicit flag\n x: true,\n // Onig has no flag to control \"named capture only\" mode but contextually applies its\n // behavior when named capturing is used, so disable Regex+'s implicit flag for it\n n: true\n },\n force: {\n // Always add flag v because we're generating an AST that relies on it (it enables JS\n // support for Onig features nested classes, intersection, Unicode properties, etc.).\n // However, the generator might disable flag v based on its `target` option\n v: true\n }\n };\n },\n Group({ node }) {\n if (!node.flags) {\n return;\n }\n const { enable, disable } = node.flags;\n enable?.extended && delete enable.extended;\n disable?.extended && delete disable.extended;\n enable?.dotAll && disable?.dotAll && delete enable.dotAll;\n enable?.ignoreCase && disable?.ignoreCase && delete enable.ignoreCase;\n enable && !Object.keys(enable).length && delete node.flags.enable;\n disable && !Object.keys(disable).length && delete node.flags.disable;\n !node.flags.enable && !node.flags.disable && delete node.flags;\n },\n LookaroundAssertion({ node }, state) {\n const { kind } = node;\n if (kind === \"lookbehind\") {\n state.passedLookbehind = true;\n }\n },\n NamedCallout({ node, parent, replaceWith }) {\n const { kind } = node;\n if (kind === \"fail\") {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else {\n throw new Error(`Unsupported named callout \"(*${kind.toUpperCase()}\"`);\n }\n },\n Quantifier({ node }) {\n if (node.body.type === \"Quantifier\") {\n const group = createGroup();\n group.body[0].body.push(node.body);\n node.body = setParentDeep(group, node);\n }\n },\n Regex: {\n enter({ node }, { supportedGNodes }) {\n const leadingGs = [];\n let hasAltWithLeadG = false;\n let hasAltWithoutLeadG = false;\n for (const alt of node.body) {\n if (alt.body.length === 1 && alt.body[0].kind === \"search_start\") {\n alt.body.pop();\n } else {\n const leadingG = getLeadingG(alt.body);\n if (leadingG) {\n hasAltWithLeadG = true;\n Array.isArray(leadingG) ? leadingGs.push(...leadingG) : leadingGs.push(leadingG);\n } else {\n hasAltWithoutLeadG = true;\n }\n }\n }\n if (hasAltWithLeadG && !hasAltWithoutLeadG) {\n leadingGs.forEach((g) => supportedGNodes.add(g));\n }\n },\n exit(_, { accuracy, passedLookbehind, strategy }) {\n if (accuracy === \"strict\" && passedLookbehind && strategy) {\n throw new Error(r`Uses \"\\G\" in a way that requires non-strict accuracy`);\n }\n }\n },\n Subroutine({ node }, { jsGroupNameMap }) {\n let { ref } = node;\n if (typeof ref === \"string\" && !isValidJsGroupName(ref)) {\n ref = getAndStoreJsGroupName(ref, jsGroupNameMap);\n node.ref = ref;\n }\n }\n};\nvar SecondPassVisitor = {\n Backreference({ node }, { multiplexCapturesToLeftByRef, reffedNodesByReferencer }) {\n const { orphan, ref } = node;\n if (!orphan) {\n reffedNodesByReferencer.set(node, [...multiplexCapturesToLeftByRef.get(ref).map(({ node: node2 }) => node2)]);\n }\n },\n CapturingGroup: {\n enter({\n node,\n parent,\n replaceWith,\n skip\n }, {\n groupOriginByCopy,\n groupsByName,\n multiplexCapturesToLeftByRef,\n openRefs,\n reffedNodesByReferencer\n }) {\n const origin = groupOriginByCopy.get(node);\n if (origin && openRefs.has(node.number)) {\n const recursion2 = setParent(createRecursion(node.number), parent);\n reffedNodesByReferencer.set(recursion2, openRefs.get(node.number));\n replaceWith(recursion2);\n return;\n }\n openRefs.set(node.number, node);\n multiplexCapturesToLeftByRef.set(node.number, []);\n if (node.name) {\n getOrInsert(multiplexCapturesToLeftByRef, node.name, []);\n }\n const multiplexNodes = multiplexCapturesToLeftByRef.get(node.name ?? node.number);\n for (let i = 0; i < multiplexNodes.length; i++) {\n const multiplex = multiplexNodes[i];\n if (\n // This group is from subroutine expansion, and there's a multiplex value from either the\n // origin node or a prior subroutine expansion group with the same origin\n origin === multiplex.node || origin && origin === multiplex.origin || // This group is not from subroutine expansion, and it comes after a subroutine expansion\n // group that refers to this group\n node === multiplex.origin\n ) {\n multiplexNodes.splice(i, 1);\n break;\n }\n }\n multiplexCapturesToLeftByRef.get(node.number).push({ node, origin });\n if (node.name) {\n multiplexCapturesToLeftByRef.get(node.name).push({ node, origin });\n }\n if (node.name) {\n const groupsWithSameName = getOrInsert(groupsByName, node.name, /* @__PURE__ */ new Map());\n let hasDuplicateNameToRemove = false;\n if (origin) {\n hasDuplicateNameToRemove = true;\n } else {\n for (const groupInfo of groupsWithSameName.values()) {\n if (!groupInfo.hasDuplicateNameToRemove) {\n hasDuplicateNameToRemove = true;\n break;\n }\n }\n }\n groupsByName.get(node.name).set(node, { node, hasDuplicateNameToRemove });\n }\n },\n exit({ node }, { openRefs }) {\n openRefs.delete(node.number);\n }\n },\n Group: {\n enter({ node }, state) {\n state.prevFlags = state.currentFlags;\n if (node.flags) {\n state.currentFlags = getNewCurrentFlags(state.currentFlags, node.flags);\n }\n },\n exit(_, state) {\n state.currentFlags = state.prevFlags;\n }\n },\n Subroutine({ node, parent, replaceWith }, state) {\n const { isRecursive, ref } = node;\n if (isRecursive) {\n let reffed = parent;\n while (reffed = reffed.parent) {\n if (reffed.type === \"CapturingGroup\" && (reffed.name === ref || reffed.number === ref)) {\n break;\n }\n }\n state.reffedNodesByReferencer.set(node, reffed);\n return;\n }\n const reffedGroupNode = state.subroutineRefMap.get(ref);\n const isGlobalRecursion = ref === 0;\n const expandedSubroutine = isGlobalRecursion ? createRecursion(0) : (\n // The reffed group might itself contain subroutines, which are expanded during sub-traversal\n cloneCapturingGroup(reffedGroupNode, state.groupOriginByCopy, null)\n );\n let replacement = expandedSubroutine;\n if (!isGlobalRecursion) {\n const reffedGroupFlagMods = getCombinedFlagModsFromFlagNodes(getAllParents(\n reffedGroupNode,\n (p) => p.type === \"Group\" && !!p.flags\n ));\n const reffedGroupFlags = reffedGroupFlagMods ? getNewCurrentFlags(state.globalFlags, reffedGroupFlagMods) : state.globalFlags;\n if (!areFlagsEqual(reffedGroupFlags, state.currentFlags)) {\n replacement = createGroup({\n flags: getFlagModsFromFlags(reffedGroupFlags)\n });\n replacement.body[0].body.push(expandedSubroutine);\n }\n }\n replaceWith(setParentDeep(replacement, parent), { traverse: !isGlobalRecursion });\n }\n};\nvar ThirdPassVisitor = {\n Backreference({ node, parent, replaceWith }, state) {\n if (node.orphan) {\n state.highestOrphanBackref = Math.max(state.highestOrphanBackref, node.ref);\n return;\n }\n const reffedNodes = state.reffedNodesByReferencer.get(node);\n const participants = reffedNodes.filter((reffed) => canParticipateWithNode(reffed, node));\n if (!participants.length) {\n replaceWith(setParentDeep(createLookaroundAssertion({ negate: true }), parent));\n } else if (participants.length > 1) {\n const group = createGroup({\n atomic: true,\n body: participants.reverse().map((reffed) => createAlternative({\n body: [createBackreference(reffed.number)]\n }))\n });\n replaceWith(setParentDeep(group, parent));\n } else {\n node.ref = participants[0].number;\n }\n },\n CapturingGroup({ node }, state) {\n node.number = ++state.numCapturesToLeft;\n if (node.name) {\n if (state.groupsByName.get(node.name).get(node).hasDuplicateNameToRemove) {\n delete node.name;\n }\n }\n },\n Regex: {\n exit({ node }, state) {\n const numCapsNeeded = Math.max(state.highestOrphanBackref - state.numCapturesToLeft, 0);\n for (let i = 0; i < numCapsNeeded; i++) {\n const emptyCapture = createCapturingGroup();\n node.body.at(-1).body.push(emptyCapture);\n }\n }\n },\n Subroutine({ node }, state) {\n if (!node.isRecursive || node.ref === 0) {\n return;\n }\n node.ref = state.reffedNodesByReferencer.get(node).number;\n }\n};\nfunction addParentProperties(root) {\n traverse(root, {\n \"*\"({ node, parent }) {\n node.parent = parent;\n }\n });\n}\nfunction areFlagsEqual(a, b) {\n return a.dotAll === b.dotAll && a.ignoreCase === b.ignoreCase;\n}\nfunction canParticipateWithNode(capture, node) {\n let rightmostPoint = node;\n do {\n if (rightmostPoint.type === \"Regex\") {\n return false;\n }\n if (rightmostPoint.type === \"Alternative\") {\n continue;\n }\n if (rightmostPoint === capture) {\n return false;\n }\n const kidsOfParent = getKids(rightmostPoint.parent);\n for (const kid of kidsOfParent) {\n if (kid === rightmostPoint) {\n break;\n }\n if (kid === capture || isAncestorOf(kid, capture)) {\n return true;\n }\n }\n } while (rightmostPoint = rightmostPoint.parent);\n throw new Error(\"Unexpected path\");\n}\nfunction cloneCapturingGroup(obj, originMap, up, up2) {\n const store = Array.isArray(obj) ? [] : {};\n for (const [key, value] of Object.entries(obj)) {\n if (key === \"parent\") {\n store.parent = Array.isArray(up) ? up2 : up;\n } else if (value && typeof value === \"object\") {\n store[key] = cloneCapturingGroup(value, originMap, store, up);\n } else {\n if (key === \"type\" && value === \"CapturingGroup\") {\n originMap.set(store, originMap.get(obj) ?? obj);\n }\n store[key] = value;\n }\n }\n return store;\n}\nfunction createRecursion(ref) {\n const node = createSubroutine(ref);\n node.isRecursive = true;\n return node;\n}\nfunction getAllParents(node, filterFn) {\n const results = [];\n while (node = node.parent) {\n if (!filterFn || filterFn(node)) {\n results.push(node);\n }\n }\n return results;\n}\nfunction getAndStoreJsGroupName(name, map) {\n if (map.has(name)) {\n return map.get(name);\n }\n const jsName = `$${map.size}_${name.replace(/^[^$_\\p{IDS}]|[^$\\u200C\\u200D\\p{IDC}]/ug, \"_\")}`;\n map.set(name, jsName);\n return jsName;\n}\nfunction getCombinedFlagModsFromFlagNodes(flagNodes) {\n const flagProps = [\"dotAll\", \"ignoreCase\"];\n const combinedFlags = { enable: {}, disable: {} };\n flagNodes.forEach(({ flags }) => {\n flagProps.forEach((prop) => {\n if (flags.enable?.[prop]) {\n delete combinedFlags.disable[prop];\n combinedFlags.enable[prop] = true;\n }\n if (flags.disable?.[prop]) {\n combinedFlags.disable[prop] = true;\n }\n });\n });\n if (!Object.keys(combinedFlags.enable).length) {\n delete combinedFlags.enable;\n }\n if (!Object.keys(combinedFlags.disable).length) {\n delete combinedFlags.disable;\n }\n if (combinedFlags.enable || combinedFlags.disable) {\n return combinedFlags;\n }\n return null;\n}\nfunction getFlagModsFromFlags({ dotAll, ignoreCase }) {\n const mods = {};\n if (dotAll || ignoreCase) {\n mods.enable = {};\n dotAll && (mods.enable.dotAll = true);\n ignoreCase && (mods.enable.ignoreCase = true);\n }\n if (!dotAll || !ignoreCase) {\n mods.disable = {};\n !dotAll && (mods.disable.dotAll = true);\n !ignoreCase && (mods.disable.ignoreCase = true);\n }\n return mods;\n}\nfunction getKids(node) {\n if (!node) {\n throw new Error(\"Node expected\");\n }\n const { body } = node;\n return Array.isArray(body) ? body : body ? [body] : null;\n}\nfunction getLeadingG(els) {\n const firstToConsider = els.find((el) => el.kind === \"search_start\" || isLoneGLookaround(el, { negate: false }) || !isAlwaysZeroLength(el));\n if (!firstToConsider) {\n return null;\n }\n if (firstToConsider.kind === \"search_start\") {\n return firstToConsider;\n }\n if (firstToConsider.type === \"LookaroundAssertion\") {\n return firstToConsider.body[0].body[0];\n }\n if (firstToConsider.type === \"CapturingGroup\" || firstToConsider.type === \"Group\") {\n const gNodesForGroup = [];\n for (const alt of firstToConsider.body) {\n const leadingG = getLeadingG(alt.body);\n if (!leadingG) {\n return null;\n }\n Array.isArray(leadingG) ? gNodesForGroup.push(...leadingG) : gNodesForGroup.push(leadingG);\n }\n return gNodesForGroup;\n }\n return null;\n}\nfunction isAncestorOf(node, descendant) {\n const kids = getKids(node) ?? [];\n for (const kid of kids) {\n if (kid === descendant || isAncestorOf(kid, descendant)) {\n return true;\n }\n }\n return false;\n}\nfunction isAlwaysZeroLength({ type }) {\n return type === \"Assertion\" || type === \"Directive\" || type === \"LookaroundAssertion\";\n}\nfunction isAlwaysNonZeroLength(node) {\n const types = [\n \"Character\",\n \"CharacterClass\",\n \"CharacterSet\"\n ];\n return types.includes(node.type) || node.type === \"Quantifier\" && node.min && types.includes(node.body.type);\n}\nfunction isLoneGLookaround(node, options) {\n const opts = {\n negate: null,\n ...options\n };\n return node.type === \"LookaroundAssertion\" && (opts.negate === null || node.negate === opts.negate) && node.body.length === 1 && hasOnlyChild(node.body[0], {\n type: \"Assertion\",\n kind: \"search_start\"\n });\n}\nfunction isValidJsGroupName(name) {\n return /^[$_\\p{IDS}][$\\u200C\\u200D\\p{IDC}]*$/u.test(name);\n}\nfunction parseFragment(pattern, options) {\n const ast = parse(pattern, {\n ...options,\n // Providing a custom set of Unicode property names avoids converting some JS Unicode\n // properties (ex: `\\p{Alpha}`) to Onig POSIX classes\n unicodePropertyMap: JsUnicodePropertyMap\n });\n const alts = ast.body;\n if (alts.length > 1 || alts[0].body.length > 1) {\n return createGroup({ body: alts });\n }\n return alts[0].body[0];\n}\nfunction setNegate(node, negate) {\n node.negate = negate;\n return node;\n}\nfunction setParent(node, parent) {\n node.parent = parent;\n return node;\n}\nfunction setParentDeep(node, parent) {\n addParentProperties(node);\n node.parent = parent;\n return node;\n}\n\n// src/generate.js\nimport { createAlternative as createAlternative2, createCharacter as createCharacter2, createGroup as createGroup2 } from \"oniguruma-parser/parser\";\nimport { traverse as traverse2 } from \"oniguruma-parser/traverser\";\nfunction generate(ast, options) {\n const opts = getOptions(options);\n const minTargetEs2024 = isMinTarget(opts.target, \"ES2024\");\n const minTargetEs2025 = isMinTarget(opts.target, \"ES2025\");\n const recursionLimit = opts.rules.recursionLimit;\n if (!Number.isInteger(recursionLimit) || recursionLimit < 2 || recursionLimit > 20) {\n throw new Error(\"Invalid recursionLimit; use 2-20\");\n }\n let hasCaseInsensitiveNode = null;\n let hasCaseSensitiveNode = null;\n if (!minTargetEs2025) {\n const iStack = [ast.flags.ignoreCase];\n traverse2(ast, FlagModifierVisitor, {\n getCurrentModI: () => iStack.at(-1),\n popModI() {\n iStack.pop();\n },\n pushModI(isIOn) {\n iStack.push(isIOn);\n },\n setHasCasedChar() {\n if (iStack.at(-1)) {\n hasCaseInsensitiveNode = true;\n } else {\n hasCaseSensitiveNode = true;\n }\n }\n });\n }\n const appliedGlobalFlags = {\n dotAll: ast.flags.dotAll,\n // - Turn global flag i on if a case insensitive node was used and no case sensitive nodes were\n // used (to avoid unnecessary node expansion).\n // - Turn global flag i off if a case sensitive node was used (since case sensitivity can't be\n // forced without the use of ES2025 flag groups)\n ignoreCase: !!((ast.flags.ignoreCase || hasCaseInsensitiveNode) && !hasCaseSensitiveNode)\n };\n let lastNode = ast;\n const state = {\n accuracy: opts.accuracy,\n appliedGlobalFlags,\n captureMap: /* @__PURE__ */ new Map(),\n currentFlags: {\n dotAll: ast.flags.dotAll,\n ignoreCase: ast.flags.ignoreCase\n },\n inCharClass: false,\n lastNode,\n originMap: ast._originMap,\n recursionLimit,\n useAppliedIgnoreCase: !!(!minTargetEs2025 && hasCaseInsensitiveNode && hasCaseSensitiveNode),\n useFlagMods: minTargetEs2025,\n useFlagV: minTargetEs2024,\n verbose: opts.verbose\n };\n function gen(node) {\n state.lastNode = lastNode;\n lastNode = node;\n const fn = throwIfNullish(generator[node.type], `Unexpected node type \"${node.type}\"`);\n return fn(node, state, gen);\n }\n const result = {\n pattern: ast.body.map(gen).join(\"|\"),\n // Could reset `lastNode` at this point via `lastNode = ast`, but it isn't needed by flags\n flags: gen(ast.flags),\n options: { ...ast.options }\n };\n if (!minTargetEs2024) {\n delete result.options.force.v;\n result.options.disable.v = true;\n result.options.unicodeSetsPlugin = null;\n }\n result._captureTransfers = /* @__PURE__ */ new Map();\n result._hiddenCaptures = [];\n state.captureMap.forEach((value, key) => {\n if (value.hidden) {\n result._hiddenCaptures.push(key);\n }\n if (value.transferTo) {\n getOrInsert(result._captureTransfers, value.transferTo, []).push(key);\n }\n });\n return result;\n}\nvar FlagModifierVisitor = {\n \"*\": {\n enter({ node }, state) {\n if (isAnyGroup(node)) {\n const currentModI = state.getCurrentModI();\n state.pushModI(\n node.flags ? getNewCurrentFlags({ ignoreCase: currentModI }, node.flags).ignoreCase : currentModI\n );\n }\n },\n exit({ node }, state) {\n if (isAnyGroup(node)) {\n state.popModI();\n }\n }\n },\n Backreference(_, state) {\n state.setHasCasedChar();\n },\n Character({ node }, state) {\n if (charHasCase(cp(node.value))) {\n state.setHasCasedChar();\n }\n },\n CharacterClassRange({ node, skip }, state) {\n skip();\n if (getCasesOutsideCharClassRange(node, { firstOnly: true }).length) {\n state.setHasCasedChar();\n }\n },\n CharacterSet({ node }, state) {\n if (node.kind === \"property\" && UnicodePropertiesWithSpecificCase.has(node.value)) {\n state.setHasCasedChar();\n }\n }\n};\nvar generator = {\n /**\n @param {AlternativeNode} node\n */\n Alternative({ body }, _, gen) {\n return body.map(gen).join(\"\");\n },\n /**\n @param {AssertionNode} node\n */\n Assertion({ kind, negate }) {\n if (kind === \"string_end\") {\n return \"$\";\n }\n if (kind === \"string_start\") {\n return \"^\";\n }\n if (kind === \"word_boundary\") {\n return negate ? r`\\B` : r`\\b`;\n }\n throw new Error(`Unexpected assertion kind \"${kind}\"`);\n },\n /**\n @param {BackreferenceNode} node\n */\n Backreference({ ref }, state) {\n if (typeof ref !== \"number\") {\n throw new Error(\"Unexpected named backref in transformed AST\");\n }\n if (!state.useFlagMods && state.accuracy === \"strict\" && state.currentFlags.ignoreCase && !state.captureMap.get(ref).ignoreCase) {\n throw new Error(\"Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy\");\n }\n return \"\\\\\" + ref;\n },\n /**\n @param {CapturingGroupNode} node\n */\n CapturingGroup(node, state, gen) {\n const { body, name, number } = node;\n const data = { ignoreCase: state.currentFlags.ignoreCase };\n const origin = state.originMap.get(node);\n if (origin) {\n data.hidden = true;\n if (number > origin.number) {\n data.transferTo = origin.number;\n }\n }\n state.captureMap.set(number, data);\n return `(${name ? `?<${name}>` : \"\"}${body.map(gen).join(\"|\")})`;\n },\n /**\n @param {CharacterNode} node\n */\n Character({ value }, state) {\n const char = cp(value);\n const escaped = getCharEscape(value, {\n escDigit: state.lastNode.type === \"Backreference\",\n inCharClass: state.inCharClass,\n useFlagV: state.useFlagV\n });\n if (escaped !== char) {\n return escaped;\n }\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase && charHasCase(char)) {\n const cases = getIgnoreCaseMatchChars(char);\n return state.inCharClass ? cases.join(\"\") : cases.length > 1 ? `[${cases.join(\"\")}]` : cases[0];\n }\n return char;\n },\n /**\n @param {CharacterClassNode} node\n */\n CharacterClass(node, state, gen) {\n const { kind, negate, parent } = node;\n let { body } = node;\n if (kind === \"intersection\" && !state.useFlagV) {\n throw new Error(\"Use of character class intersection requires min target ES2024\");\n }\n if (envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV && body.some(isLiteralHyphen)) {\n body = [createCharacter2(45), ...body.filter((kid) => !isLiteralHyphen(kid))];\n }\n const genClass = () => `[${negate ? \"^\" : \"\"}${body.map(gen).join(kind === \"intersection\" ? \"&&\" : \"\")}]`;\n if (!state.inCharClass) {\n if (\n // Already established `kind !== 'intersection'` if `!state.useFlagV`; don't check again\n (!state.useFlagV || envFlags.bugNestedClassIgnoresNegation) && !negate\n ) {\n const negatedChildClasses = body.filter(\n (kid) => kid.type === \"CharacterClass\" && kid.kind === \"union\" && kid.negate\n );\n if (negatedChildClasses.length) {\n const group = createGroup2();\n const groupFirstAlt = group.body[0];\n group.parent = parent;\n groupFirstAlt.parent = group;\n body = body.filter((kid) => !negatedChildClasses.includes(kid));\n node.body = body;\n if (body.length) {\n node.parent = groupFirstAlt;\n groupFirstAlt.body.push(node);\n } else {\n group.body.pop();\n }\n negatedChildClasses.forEach((cc) => {\n const newAlt = createAlternative2({ body: [cc] });\n cc.parent = newAlt;\n newAlt.parent = group;\n group.body.push(newAlt);\n });\n return gen(group);\n }\n }\n state.inCharClass = true;\n const result = genClass();\n state.inCharClass = false;\n return result;\n }\n const firstEl = body[0];\n if (\n // Already established that the parent is a char class via `inCharClass`; don't check again\n kind === \"union\" && !negate && firstEl && // Allows many nested classes to work with `target` ES2018 which doesn't support nesting\n ((!state.useFlagV || !state.verbose) && parent.kind === \"union\" && !(envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV) || !state.verbose && parent.kind === \"intersection\" && // JS doesn't allow intersection with union or ranges\n body.length === 1 && firstEl.type !== \"CharacterClassRange\")\n ) {\n return body.map(gen).join(\"\");\n }\n if (!state.useFlagV && parent.type === \"CharacterClass\") {\n throw new Error(\"Uses nested character class in a way that requires min target ES2024\");\n }\n return genClass();\n },\n /**\n @param {CharacterClassRangeNode} node\n */\n CharacterClassRange(node, state) {\n const min = node.min.value;\n const max = node.max.value;\n const escOpts = {\n escDigit: false,\n inCharClass: true,\n useFlagV: state.useFlagV\n };\n const minStr = getCharEscape(min, escOpts);\n const maxStr = getCharEscape(max, escOpts);\n const extraChars = /* @__PURE__ */ new Set();\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase) {\n const charsOutsideRange = getCasesOutsideCharClassRange(node);\n const ranges = getCodePointRangesFromChars(charsOutsideRange);\n ranges.forEach((value) => {\n extraChars.add(\n Array.isArray(value) ? `${getCharEscape(value[0], escOpts)}-${getCharEscape(value[1], escOpts)}` : getCharEscape(value, escOpts)\n );\n });\n }\n return `${minStr}-${maxStr}${[...extraChars].join(\"\")}`;\n },\n /**\n @param {CharacterSetNode} node\n */\n CharacterSet({ kind, negate, value, key }, state) {\n if (kind === \"dot\") {\n return state.currentFlags.dotAll ? state.appliedGlobalFlags.dotAll || state.useFlagMods ? \".\" : \"[^]\" : (\n // Onig's only line break char is line feed, unlike JS\n r`[^\\n]`\n );\n }\n if (kind === \"digit\") {\n return negate ? r`\\D` : r`\\d`;\n }\n if (kind === \"property\") {\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase && UnicodePropertiesWithSpecificCase.has(value)) {\n throw new Error(`Unicode property \"${value}\" can't be case-insensitive when other chars have specific case`);\n }\n return `${negate ? r`\\P` : r`\\p`}{${key ? `${key}=` : \"\"}${value}}`;\n }\n if (kind === \"word\") {\n return negate ? r`\\W` : r`\\w`;\n }\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n },\n /**\n @param {FlagsNode} node\n */\n Flags(node, state) {\n return (\n // The transformer should never turn on the properties for flags d, g, m since Onig doesn't\n // have equivs. Flag m is never used since Onig uses different line break chars than JS\n // (node.hasIndices ? 'd' : '') +\n // (node.global ? 'g' : '') +\n // (node.multiline ? 'm' : '') +\n (state.appliedGlobalFlags.ignoreCase ? \"i\" : \"\") + (node.dotAll ? \"s\" : \"\") + (node.sticky ? \"y\" : \"\")\n );\n },\n /**\n @param {GroupNode} node\n */\n Group({ atomic: atomic2, body, flags, parent }, state, gen) {\n const currentFlags = state.currentFlags;\n if (flags) {\n state.currentFlags = getNewCurrentFlags(currentFlags, flags);\n }\n const contents = body.map(gen).join(\"|\");\n const result = !state.verbose && body.length === 1 && // Single alt\n parent.type !== \"Quantifier\" && !atomic2 && (!state.useFlagMods || !flags) ? contents : `(?${getGroupPrefix(atomic2, flags, state.useFlagMods)}${contents})`;\n state.currentFlags = currentFlags;\n return result;\n },\n /**\n @param {LookaroundAssertionNode} node\n */\n LookaroundAssertion({ body, kind, negate }, _, gen) {\n const prefix = `${kind === \"lookahead\" ? \"\" : \"<\"}${negate ? \"!\" : \"=\"}`;\n return `(?${prefix}${body.map(gen).join(\"|\")})`;\n },\n /**\n @param {QuantifierNode} node\n */\n Quantifier(node, _, gen) {\n return gen(node.body) + getQuantifierStr(node);\n },\n /**\n @param {SubroutineNode & {isRecursive: true}} node\n */\n Subroutine({ isRecursive, ref }, state) {\n if (!isRecursive) {\n throw new Error(\"Unexpected non-recursive subroutine in transformed AST\");\n }\n const limit = state.recursionLimit;\n return ref === 0 ? `(?R=${limit})` : r`\\g<${ref}&R=${limit}>`;\n }\n};\nvar BaseEscapeChars = /* @__PURE__ */ new Set([\n \"$\",\n \"(\",\n \")\",\n \"*\",\n \"+\",\n \".\",\n \"?\",\n \"[\",\n \"\\\\\",\n \"]\",\n \"^\",\n \"{\",\n \"|\",\n \"}\"\n]);\nvar CharClassEscapeChars = /* @__PURE__ */ new Set([\n \"-\",\n \"\\\\\",\n \"]\",\n \"^\",\n // Literal `[` doesn't require escaping with flag u, but this can help work around regex source\n // linters and regex syntax processors that expect unescaped `[` to create a nested class\n \"[\"\n]);\nvar CharClassEscapeCharsFlagV = /* @__PURE__ */ new Set([\n \"(\",\n \")\",\n \"-\",\n \"/\",\n \"[\",\n \"\\\\\",\n \"]\",\n \"^\",\n \"{\",\n \"|\",\n \"}\",\n // Double punctuators; also includes already-listed `-` and `^`\n \"!\",\n \"#\",\n \"$\",\n \"%\",\n \"&\",\n \"*\",\n \"+\",\n \",\",\n \".\",\n \":\",\n \";\",\n \"<\",\n \"=\",\n \">\",\n \"?\",\n \"@\",\n \"`\",\n \"~\"\n]);\nvar CharCodeEscapeMap = /* @__PURE__ */ new Map([\n [9, r`\\t`],\n // horizontal tab\n [10, r`\\n`],\n // line feed\n [11, r`\\v`],\n // vertical tab\n [12, r`\\f`],\n // form feed\n [13, r`\\r`],\n // carriage return\n [8232, r`\\u2028`],\n // line separator\n [8233, r`\\u2029`],\n // paragraph separator\n [65279, r`\\uFEFF`]\n // ZWNBSP/BOM\n]);\nvar casedRe = /^\\p{Cased}$/u;\nfunction charHasCase(char) {\n return casedRe.test(char);\n}\nfunction getCasesOutsideCharClassRange(node, options) {\n const firstOnly = !!options?.firstOnly;\n const min = node.min.value;\n const max = node.max.value;\n const found = [];\n if (min < 65 && (max === 65535 || max >= 131071) || min === 65536 && max >= 131071) {\n return found;\n }\n for (let i = min; i <= max; i++) {\n const char = cp(i);\n if (!charHasCase(char)) {\n continue;\n }\n const charsOutsideRange = getIgnoreCaseMatchChars(char).filter((caseOfChar) => {\n const num = caseOfChar.codePointAt(0);\n return num < min || num > max;\n });\n if (charsOutsideRange.length) {\n found.push(...charsOutsideRange);\n if (firstOnly) {\n break;\n }\n }\n }\n return found;\n}\nfunction getCharEscape(codePoint, { escDigit, inCharClass, useFlagV }) {\n if (CharCodeEscapeMap.has(codePoint)) {\n return CharCodeEscapeMap.get(codePoint);\n }\n if (\n // Control chars, etc.; condition modeled on the Chrome developer console's display for strings\n codePoint < 32 || codePoint > 126 && codePoint < 160 || // Unicode planes 4-16; unassigned, special purpose, and private use area\n codePoint > 262143 || // Avoid corrupting a preceding backref by immediately following it with a literal digit\n escDigit && isDigitCharCode(codePoint)\n ) {\n return codePoint > 255 ? `\\\\u{${codePoint.toString(16).toUpperCase()}}` : `\\\\x${codePoint.toString(16).toUpperCase().padStart(2, \"0\")}`;\n }\n const escapeChars = inCharClass ? useFlagV ? CharClassEscapeCharsFlagV : CharClassEscapeChars : BaseEscapeChars;\n const char = cp(codePoint);\n return (escapeChars.has(char) ? \"\\\\\" : \"\") + char;\n}\nfunction getCodePointRangesFromChars(chars) {\n const codePoints = chars.map((char) => char.codePointAt(0)).sort((a, b) => a - b);\n const values = [];\n let start = null;\n for (let i = 0; i < codePoints.length; i++) {\n if (codePoints[i + 1] === codePoints[i] + 1) {\n start ??= codePoints[i];\n } else if (start === null) {\n values.push(codePoints[i]);\n } else {\n values.push([start, codePoints[i]]);\n start = null;\n }\n }\n return values;\n}\nfunction getGroupPrefix(atomic2, flagMods, useFlagMods) {\n if (atomic2) {\n return \">\";\n }\n let mods = \"\";\n if (flagMods && useFlagMods) {\n const { enable, disable } = flagMods;\n mods = (enable?.ignoreCase ? \"i\" : \"\") + (enable?.dotAll ? \"s\" : \"\") + (disable ? \"-\" : \"\") + (disable?.ignoreCase ? \"i\" : \"\") + (disable?.dotAll ? \"s\" : \"\");\n }\n return `${mods}:`;\n}\nfunction getQuantifierStr({ kind, max, min }) {\n let base;\n if (!min && max === 1) {\n base = \"?\";\n } else if (!min && max === Infinity) {\n base = \"*\";\n } else if (min === 1 && max === Infinity) {\n base = \"+\";\n } else if (min === max) {\n base = `{${min}}`;\n } else {\n base = `{${min},${max === Infinity ? \"\" : max}}`;\n }\n return base + {\n greedy: \"\",\n lazy: \"?\",\n possessive: \"+\"\n }[kind];\n}\nfunction isAnyGroup({ type }) {\n return type === \"CapturingGroup\" || type === \"Group\" || type === \"LookaroundAssertion\";\n}\nfunction isDigitCharCode(value) {\n return value > 47 && value < 58;\n}\nfunction isLiteralHyphen({ type, value }) {\n return type === \"Character\" && value === 45;\n}\n\n// src/subclass.js\nvar EmulatedRegExp = class _EmulatedRegExp extends RegExp {\n /**\n @type {Map<number, {\n hidden?: true;\n transferTo?: number;\n }>}\n */\n #captureMap = /* @__PURE__ */ new Map();\n /**\n @type {RegExp | EmulatedRegExp | null}\n */\n #compiled = null;\n /**\n @type {string}\n */\n #pattern;\n /**\n @type {Map<number, string>?}\n */\n #nameMap = null;\n /**\n @type {string?}\n */\n #strategy = null;\n /**\n Can be used to serialize the instance.\n @type {EmulatedRegExpOptions}\n */\n rawOptions = {};\n // Override the getter with one that works with lazy-compiled regexes\n get source() {\n return this.#pattern || \"(?:)\";\n }\n /**\n @overload\n @param {string} pattern\n @param {string} [flags]\n @param {EmulatedRegExpOptions} [options]\n */\n /**\n @overload\n @param {EmulatedRegExp} pattern\n @param {string} [flags]\n */\n constructor(pattern, flags, options) {\n const lazyCompile = !!options?.lazyCompile;\n if (pattern instanceof RegExp) {\n if (options) {\n throw new Error(\"Cannot provide options when copying a regexp\");\n }\n const re = pattern;\n super(re, flags);\n this.#pattern = re.source;\n if (re instanceof _EmulatedRegExp) {\n this.#captureMap = re.#captureMap;\n this.#nameMap = re.#nameMap;\n this.#strategy = re.#strategy;\n this.rawOptions = re.rawOptions;\n }\n } else {\n const opts = {\n hiddenCaptures: [],\n strategy: null,\n transfers: [],\n ...options\n };\n super(lazyCompile ? \"\" : pattern, flags);\n this.#pattern = pattern;\n this.#captureMap = createCaptureMap(opts.hiddenCaptures, opts.transfers);\n this.#strategy = opts.strategy;\n this.rawOptions = options ?? {};\n }\n if (!lazyCompile) {\n this.#compiled = this;\n }\n }\n /**\n Called internally by all String/RegExp methods that use regexes.\n @override\n @param {string} str\n @returns {RegExpExecArray?}\n */\n exec(str) {\n if (!this.#compiled) {\n const { lazyCompile, ...rest } = this.rawOptions;\n this.#compiled = new _EmulatedRegExp(this.#pattern, this.flags, rest);\n }\n const useLastIndex = this.global || this.sticky;\n const pos = this.lastIndex;\n if (this.#strategy === \"clip_search\" && useLastIndex && pos) {\n this.lastIndex = 0;\n const match = this.#execCore(str.slice(pos));\n if (match) {\n adjustMatchDetailsForOffset(match, pos, str, this.hasIndices);\n this.lastIndex += pos;\n }\n return match;\n }\n return this.#execCore(str);\n }\n /**\n Adds support for hidden and transfer captures.\n @param {string} str\n @returns\n */\n #execCore(str) {\n this.#compiled.lastIndex = this.lastIndex;\n const match = super.exec.call(this.#compiled, str);\n this.lastIndex = this.#compiled.lastIndex;\n if (!match || !this.#captureMap.size) {\n return match;\n }\n const matchCopy = [...match];\n match.length = 1;\n let indicesCopy;\n if (this.hasIndices) {\n indicesCopy = [...match.indices];\n match.indices.length = 1;\n }\n const mappedNums = [0];\n for (let i = 1; i < matchCopy.length; i++) {\n const { hidden, transferTo } = this.#captureMap.get(i) ?? {};\n if (hidden) {\n mappedNums.push(null);\n } else {\n mappedNums.push(match.length);\n match.push(matchCopy[i]);\n if (this.hasIndices) {\n match.indices.push(indicesCopy[i]);\n }\n }\n if (transferTo && matchCopy[i] !== void 0) {\n const to = mappedNums[transferTo];\n if (!to) {\n throw new Error(`Invalid capture transfer to \"${to}\"`);\n }\n match[to] = matchCopy[i];\n if (this.hasIndices) {\n match.indices[to] = indicesCopy[i];\n }\n if (match.groups) {\n if (!this.#nameMap) {\n this.#nameMap = createNameMap(this.source);\n }\n const name = this.#nameMap.get(transferTo);\n if (name) {\n match.groups[name] = matchCopy[i];\n if (this.hasIndices) {\n match.indices.groups[name] = indicesCopy[i];\n }\n }\n }\n }\n }\n return match;\n }\n};\nfunction adjustMatchDetailsForOffset(match, offset, input, hasIndices) {\n match.index += offset;\n match.input = input;\n if (hasIndices) {\n const indices = match.indices;\n for (let i = 0; i < indices.length; i++) {\n const arr = indices[i];\n if (arr) {\n indices[i] = [arr[0] + offset, arr[1] + offset];\n }\n }\n const groupIndices = indices.groups;\n if (groupIndices) {\n Object.keys(groupIndices).forEach((key) => {\n const arr = groupIndices[key];\n if (arr) {\n groupIndices[key] = [arr[0] + offset, arr[1] + offset];\n }\n });\n }\n }\n}\nfunction createCaptureMap(hiddenCaptures, transfers) {\n const captureMap = /* @__PURE__ */ new Map();\n for (const num of hiddenCaptures) {\n captureMap.set(num, {\n hidden: true\n });\n }\n for (const [to, from] of transfers) {\n for (const num of from) {\n getOrInsert(captureMap, num, {}).transferTo = to;\n }\n }\n return captureMap;\n}\nfunction createNameMap(pattern) {\n const re = /(?<capture>\\((?:\\?<(?![=!])(?<name>[^>]+)>|(?!\\?)))|\\\\?./gsu;\n const map = /* @__PURE__ */ new Map();\n let numCharClassesOpen = 0;\n let numCaptures = 0;\n let match;\n while (match = re.exec(pattern)) {\n const { 0: m, groups: { capture, name } } = match;\n if (m === \"[\") {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (capture) {\n numCaptures++;\n if (name) {\n map.set(numCaptures, name);\n }\n }\n } else if (m === \"]\") {\n numCharClassesOpen--;\n }\n }\n return map;\n}\n\n// src/index.js\nimport { parse as parse2 } from \"oniguruma-parser/parser\";\nimport { atomic, possessive } from \"regex/internals\";\nimport { recursion } from \"regex-recursion\";\nfunction toRegExp(pattern, options) {\n const d = toRegExpDetails(pattern, options);\n if (d.options) {\n return new EmulatedRegExp(d.pattern, d.flags, d.options);\n }\n return new RegExp(d.pattern, d.flags);\n}\nfunction toRegExpDetails(pattern, options) {\n const opts = getOptions(options);\n const onigurumaAst = parse2(pattern, {\n flags: opts.flags,\n normalizeUnknownPropertyNames: true,\n rules: {\n captureGroup: opts.rules.captureGroup,\n singleline: opts.rules.singleline\n },\n skipBackrefValidation: opts.rules.allowOrphanBackrefs,\n unicodePropertyMap: JsUnicodePropertyMap\n });\n const regexPlusAst = transform(onigurumaAst, {\n accuracy: opts.accuracy,\n asciiWordBoundaries: opts.rules.asciiWordBoundaries,\n avoidSubclass: opts.avoidSubclass,\n bestEffortTarget: opts.target\n });\n const generated = generate(regexPlusAst, opts);\n const recursionResult = recursion(generated.pattern, {\n captureTransfers: generated._captureTransfers,\n hiddenCaptures: generated._hiddenCaptures,\n mode: \"external\"\n });\n const possessiveResult = possessive(recursionResult.pattern);\n const atomicResult = atomic(possessiveResult.pattern, {\n captureTransfers: recursionResult.captureTransfers,\n hiddenCaptures: recursionResult.hiddenCaptures\n });\n const details = {\n pattern: atomicResult.pattern,\n flags: `${opts.hasIndices ? \"d\" : \"\"}${opts.global ? \"g\" : \"\"}${generated.flags}${generated.options.disable.v ? \"u\" : \"v\"}`\n };\n if (opts.avoidSubclass) {\n if (opts.lazyCompileLength !== Infinity) {\n throw new Error(\"Lazy compilation requires subclass\");\n }\n } else {\n const hiddenCaptures = atomicResult.hiddenCaptures.sort((a, b) => a - b);\n const transfers = Array.from(atomicResult.captureTransfers);\n const strategy = regexPlusAst._strategy;\n const lazyCompile = details.pattern.length >= opts.lazyCompileLength;\n if (hiddenCaptures.length || transfers.length || strategy || lazyCompile) {\n details.options = {\n ...hiddenCaptures.length && { hiddenCaptures },\n ...transfers.length && { transfers },\n ...strategy && { strategy },\n ...lazyCompile && { lazyCompile }\n };\n }\n }\n return details;\n}\nexport {\n EmulatedRegExp,\n toRegExp,\n toRegExpDetails\n};\n//# sourceMappingURL=index.js.map\n","const MAX = 4294967295;\nclass JavaScriptScanner {\n constructor(patterns, options = {}) {\n this.patterns = patterns;\n this.options = options;\n const {\n forgiving = false,\n cache,\n regexConstructor\n } = options;\n if (!regexConstructor) {\n throw new Error(\"Option `regexConstructor` is not provided\");\n }\n this.regexps = patterns.map((p) => {\n if (typeof p !== \"string\") {\n return p;\n }\n const cached = cache?.get(p);\n if (cached) {\n if (cached instanceof RegExp) {\n return cached;\n }\n if (forgiving)\n return null;\n throw cached;\n }\n try {\n const regex = regexConstructor(p);\n cache?.set(p, regex);\n return regex;\n } catch (e) {\n cache?.set(p, e);\n if (forgiving)\n return null;\n throw e;\n }\n });\n }\n regexps;\n findNextMatchSync(string, startPosition, _options) {\n const str = typeof string === \"string\" ? string : string.content;\n const pending = [];\n function toResult(index, match, offset = 0) {\n return {\n index,\n captureIndices: match.indices.map((indice) => {\n if (indice == null) {\n return {\n start: MAX,\n end: MAX,\n length: 0\n };\n }\n return {\n start: indice[0] + offset,\n end: indice[1] + offset,\n length: indice[1] - indice[0]\n };\n })\n };\n }\n for (let i = 0; i < this.regexps.length; i++) {\n const regexp = this.regexps[i];\n if (!regexp)\n continue;\n try {\n regexp.lastIndex = startPosition;\n const match = regexp.exec(str);\n if (!match)\n continue;\n if (match.index === startPosition) {\n return toResult(i, match, 0);\n }\n pending.push([i, match, 0]);\n } catch (e) {\n if (this.options.forgiving)\n continue;\n throw e;\n }\n }\n if (pending.length) {\n const minIndex = Math.min(...pending.map((m) => m[1].index));\n for (const [i, match, offset] of pending) {\n if (match.index === minIndex) {\n return toResult(i, match, offset);\n }\n }\n }\n return null;\n }\n}\n\nexport { JavaScriptScanner as J };\n","import { toRegExp } from 'oniguruma-to-es';\nimport { J as JavaScriptScanner } from './shared/engine-javascript.hzpS1_41.mjs';\n\nfunction defaultJavaScriptRegexConstructor(pattern, options) {\n return toRegExp(\n pattern,\n {\n global: true,\n hasIndices: true,\n // This has no benefit for the standard JS engine, but it avoids a perf penalty for\n // precompiled grammars when constructing extremely long patterns that aren't always used\n lazyCompileLength: 3e3,\n rules: {\n // Needed since TextMate grammars merge backrefs across patterns\n allowOrphanBackrefs: true,\n // Improves search performance for generated regexes\n asciiWordBoundaries: true,\n // Follow `vscode-oniguruma` which enables this Oniguruma option by default\n captureGroup: true,\n // Oniguruma uses depth limit `20`; lowered here to keep regexes shorter and maybe\n // sometimes faster, but can be increased if issues reported due to low limit\n recursionLimit: 5,\n // Oniguruma option for `^`->`\\A`, `$`->`\\Z`; improves search performance without any\n // change in meaning since TM grammars search line by line\n singleline: true\n },\n ...options\n }\n );\n}\nfunction createJavaScriptRegexEngine(options = {}) {\n const _options = Object.assign(\n {\n target: \"auto\",\n cache: /* @__PURE__ */ new Map()\n },\n options\n );\n _options.regexConstructor ||= (pattern) => defaultJavaScriptRegexConstructor(pattern, { target: _options.target });\n return {\n createScanner(patterns) {\n return new JavaScriptScanner(patterns, _options);\n },\n createString(s) {\n return {\n content: s\n };\n }\n };\n}\n\nexport { createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor };\n"],"names":["Registry","html","svg","htmlBase","svgBase","own","stringify","re","emptyChildren","body","tbody","commas","spaces","ShikiError$1","codeToTokensBase","getLastGrammarState","codeToTokensWithThemes","codeToTokens","codeToHast","codeToHtml","ShikiError","r","l","o","m","p","b","y","C","T","M","F","ee","K","w","R","A","I","k","L","f","Q","P","te","h","E","z","X","G","U","V","J","$","W","N","D","_","B","O","q","g","H","i","x","Z","s","S","u","incrementIfAtLeast","slug","traverse","createGroup","createLookaroundAssertion","createUnicodeProperty","createQuantifier","createAlternative","createAssertion","createCharacter","createCharacterClass","createCharacterSet","slug2","hasOnlyChild","createBackreference","createCapturingGroup","createSubroutine","parse","traverse2","createCharacter2","createGroup2","createAlternative2","parse2"],"mappings":"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;AACb,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,MAAM,EAAE,GAAG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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62]}
|