@aquera/nile-elements 0.0.102 → 0.0.103
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/README.md +4 -0
- package/dist/{gdresource-f3b2ce0c.esm.js → gdresource-6d1fa09f.esm.js} +1 -1
- package/dist/{gdresource-a87092f3.cjs.js → gdresource-94dcf330.cjs.js} +2 -2
- package/dist/{gdresource-a87092f3.cjs.js.map → gdresource-94dcf330.cjs.js.map} +1 -1
- package/dist/gdscript-00144682.esm.js +1 -0
- package/dist/gdscript-ffbf4a9f.cjs.js +2 -0
- package/dist/gdscript-ffbf4a9f.cjs.js.map +1 -0
- package/dist/mdx-61c0b1c2.cjs.js +2 -0
- package/dist/mdx-61c0b1c2.cjs.js.map +1 -0
- package/dist/mdx-878bd7c0.esm.js +1 -0
- package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js.map +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.esm.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +2 -2
- package/dist/nile-highlighter/nile-highlighter.cjs.js +1 -1
- package/dist/nile-highlighter/nile-highlighter.cjs.js.map +1 -1
- package/dist/nile-highlighter/nile-highlighter.esm.js +1 -1
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.d.ts +1 -0
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.js +19 -3
- package/dist/src/nile-button-toggle-group/nile-button-toggle-group.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.d.ts +7 -5
- package/dist/src/nile-code-editor/nile-code-editor.js +15 -4
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-button-toggle-group/nile-button-toggle-group.ts +16 -8
- package/src/nile-code-editor/nile-code-editor.ts +13 -13
- package/dist/gdscript-b291189b.esm.js +0 -1
- package/dist/gdscript-f553f938.cjs.js +0 -2
- package/dist/gdscript-f553f938.cjs.js.map +0 -1
- package/dist/mdx-35b64539.cjs.js +0 -2
- package/dist/mdx-35b64539.cjs.js.map +0 -1
- package/dist/mdx-8b360abb.esm.js +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-highlighter.cjs.js","sources":["../../../../node_modules/@shikijs/vscode-textmate/dist/main.mjs","../../../../node_modules/@shikijs/core/dist/index.mjs","../../../../node_modules/shiki/dist/bundle-full.mjs","../../../../node_modules/shiki/dist/langs.mjs","../../../../node_modules/shiki/dist/chunks/wasm-dynamic.mjs","../../../../node_modules/shiki/dist/themes.mjs","../../../../node_modules/@shikijs/core/dist/types.mjs","../../../src/nile-highlighter/nile-highlighter.ts"],"sourcesContent":["// 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 (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 this.cache = /* @__PURE__ */ new Map();\n }\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 this._cachedMatchRoot = new CachedFn(\n (scopeName) => this._root.match(scopeName)\n );\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 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};\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 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 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 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 constructor() {\n this._references = [];\n this._seenReferenceKeys = /* @__PURE__ */ new Set();\n this.visitedRule = /* @__PURE__ */ new Set();\n }\n get references() {\n return this._references;\n }\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 = /* @__PURE__ */ new Set();\n this.seenPartialScopeRequests = /* @__PURE__ */ new Set();\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\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 constructor() {\n this.kind = 0 /* Base */;\n }\n};\nvar SelfReference = class {\n constructor() {\n this.kind = 1 /* Self */;\n }\n};\nvar RelativeReference = class {\n constructor(ruleName) {\n this.ruleName = ruleName;\n this.kind = 2 /* RelativeReference */;\n }\n};\nvar TopLevelReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n this.kind = 3 /* TopLevelReference */;\n }\n};\nvar TopLevelRepositoryReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n this.kind = 4 /* TopLevelRepositoryReference */;\n }\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 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 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 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 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 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 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 constructor(regExpSource, ruleId) {\n if (regExpSource) {\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 this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\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 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 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) {\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 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 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 constructor(initialLanguageId, embeddedLanguages) {\n this._getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\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 /**\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};\n_BasicScopeAttributesProvider._NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n_BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\nvar BasicScopeAttributesProvider = _BasicScopeAttributesProvider;\nvar ScopeMatcher = class {\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 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 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._stackElementBrand = void 0;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\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};\n// TODO remove me\n_StateStackImpl.NULL = new _StateStackImpl(\n null,\n 0,\n 0,\n 0,\n false,\n null,\n null,\n null\n);\nvar StateStackImpl = _StateStackImpl;\nvar BalancedBracketSelectors = class {\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.allowAny = false;\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 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._grammars = /* @__PURE__ */ new Map();\n this._rawGrammars = /* @__PURE__ */ new Map();\n this._injectionGrammars = /* @__PURE__ */ new Map();\n this._theme = theme;\n }\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/main.ts\nvar Registry = class {\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 INITIAL,\n Registry,\n Theme,\n disposeOnigString\n};\n","import { FontStyle } from './types.mjs';\nimport { INITIAL, EncodedTokenMetadata, Registry as Registry$1, Theme } from '@shikijs/vscode-textmate';\nexport { EncodedTokenMetadata as StackElementMetadata } from '@shikijs/vscode-textmate';\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\n/**\n * Split a string into lines, each line preserves the line ending.\n */\nfunction splitLines(code, preserveEnding = false) {\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\n ? parts[i] + (parts[i + 1] || '')\n : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\n/**\n * Check if the language is plaintext that is ignored by Shiki.\n *\n * Hard-coded plain text languages: `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isPlainLang(lang) {\n return !lang || ['plaintext', 'txt', 'text', 'plain'].includes(lang);\n}\n/**\n * Check if the language is specially handled or bypassed by Shiki.\n *\n * Hard-coded languages: `ansi` and plaintexts like `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isSpecialLang(lang) {\n return lang === 'ansi' || isPlainLang(lang);\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isNoneTheme(theme) {\n return theme === 'none';\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\n/**\n * Utility to append class to a hast node\n *\n * If the `property.class` is a string, it will be splitted by space and converted to an array.\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/**\n * Split a token into multiple tokens by given offsets.\n *\n * The offsets are relative to the token, and should be sorted.\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}\n/**\n * Split 2D tokens array by given breakpoints.\n */\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array.from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints))\n .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\n .filter(i => token.offset < i && i < token.offset + token.content.length)\n .map(i => i - token.offset)\n .sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\n/**\n * Normalize a getter to a promise.\n */\nasync function normalizeGetter(p) {\n return Promise.resolve(typeof p === 'function' ? p() : p).then(r => r.default || r);\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}\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 if (token.fontStyle & FontStyle.Underline)\n styles['text-decoration'] = 'underline';\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(';');\n}\n/**\n * Creates a converter between index and position in a code block.\n *\n * Overflow/underflow are unchecked.\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}\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ShikiError';\n }\n}\n\n/**\n * A built-in transformer to add decorations to the highlighted code.\n */\nfunction transformerDecorations() {\n const map = new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n const converter = createPositionConverter(shiki.source);\n function normalizePosition(p) {\n if (typeof p === 'number') {\n if (p < 0 || p > shiki.source.length)\n throw new ShikiError(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n return {\n ...converter.indexToPos(p),\n offset: p,\n };\n }\n else {\n const line = converter.lines[p.line];\n if (line === undefined)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n if (p.character < 0 || p.character > line.length)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n return {\n ...p,\n offset: converter.posToIndex(p.line, p.character),\n };\n }\n }\n const decorations = (shiki.options.decorations || [])\n .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(`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$2(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(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n // Full line decoration\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, 'line');\n }\n // Single token decoration\n else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === 'element') {\n applyDecoration(children[0], decoration, 'token');\n }\n // Create a wrapper for the decoration\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 // Apply decorations in reverse order so the nested ones get applied first.\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.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 }\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(`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 (isFooHasBarEnd && isFooHasBarEnd)\n continue; // nested\n if (isBarHasFooStart && isBarHasFooEnd)\n continue; // nested\n throw new ShikiError(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n}\nfunction stringify$2(el) {\n if (el.type === 'text')\n return el.value;\n if (el.type === 'element')\n return el.children.map(stringify$2).join('');\n return '';\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations(),\n];\nfunction getTransformers(options) {\n return [\n ...options.transformers || [],\n ...builtInTransformers,\n ];\n}\n\n/**\n * GrammarState is a special reference object that holds the state of a grammar.\n *\n * It's used to highlight code snippets that are part of the target language.\n */\nclass GrammarState {\n _stack;\n lang;\n theme;\n /**\n * Static method to create a initial grammar state.\n */\n static initial(lang, theme) {\n return new GrammarState(INITIAL, lang, theme);\n }\n constructor(_stack, lang, theme) {\n this._stack = _stack;\n this.lang = lang;\n this.theme = theme;\n }\n get scopes() {\n return getScopes(this._stack);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n scopes: this.scopes,\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = new Set();\n function pushScope(stack) {\n if (visited.has(stack))\n return;\n visited.add(stack);\n const name = stack?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack.parent)\n pushScope(stack.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state) {\n if (!(state instanceof GrammarState))\n throw new ShikiError('Invalid grammar state');\n // @ts-expect-error _stack is private\n return state._stack;\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 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B[\", position);\n if (nextEscape !== -1) {\n const nextClose = value.indexOf(\"m\", nextEscape);\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence, index) {\n let offset = 1;\n const colorMode = sequence[index + offset++];\n let color;\n if (colorMode === \"2\") {\n const rgb = [\n sequence[index + offset++],\n sequence[index + offset++],\n sequence[index + offset]\n ].map((x) => Number.parseInt(x));\n if (rgb.length === 3 && !rgb.some((x) => Number.isNaN(x))) {\n color = {\n type: \"rgb\",\n rgb\n };\n }\n } else if (colorMode === \"5\") {\n const colorIndex = Number.parseInt(sequence[index + offset]);\n if (!Number.isNaN(colorIndex)) {\n color = { type: \"table\", index: Number(colorIndex) };\n }\n }\n return [offset, color];\n}\nfunction parseSequence(sequence) {\n const commands = [];\n for (let i = 0; i < sequence.length; i++) {\n const code = sequence[i];\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 }\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 [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n i += offset;\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 [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\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\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const colorPalette = createColorPalette(Object.fromEntries(namedColors.map(name => [\n name,\n theme.colors?.[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`],\n ])));\n const parser = createAnsiSequenceParser();\n return lines.map(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 }\n else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : undefined;\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 return {\n content: token.value,\n offset: line[1], // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle,\n };\n }));\n}\n/**\n * Adds 50% alpha to a hex color string or the \"-dim\" postfix to a CSS variable\n */\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);\n if (hexMatch) {\n if (hexMatch[3]) {\n // convert from #rrggbbaa to #rrggbb(aa/2)\n const alpha = Math.round(Number.parseInt(hexMatch[3], 16) / 2)\n .toString(16)\n .padStart(2, '0');\n return `#${hexMatch[1]}${hexMatch[2]}${alpha}`;\n }\n else if (hexMatch[2]) {\n // convert from #rrggbb to #rrggbb80\n return `#${hexMatch[1]}${hexMatch[2]}80`;\n }\n else {\n // convert from #rgb to #rrggbb80\n return `#${Array.from(hexMatch[1])\n .map(x => `${x}${x}`)\n .join('')}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\n/* ---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *-------------------------------------------------------- */\n/**\n * Code to tokens, with a simple theme.\n */\nfunction codeToTokensBase(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\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(lang);\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (options.grammarState.theme !== themeName) {\n throw new ShikiError(`Grammar state theme \"${options.grammarState.theme}\" does not match highlight theme \"${themeName}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError('Plain language does not have grammar state');\n if (lang === 'ansi')\n throw new ShikiError('ANSI language does not have grammar state');\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(_tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack, _grammar.name, theme.name);\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n return _tokenizeWithTheme(code, grammar, theme, colorMap, options).tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const { tokenizeMaxLineLength = 0, tokenizeTimeLimit = 500, } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState\n ? getGrammarStack(options.grammarState)\n : options.grammarContextCode != null\n ? _tokenizeWithTheme(options.grammarContextCode, grammar, theme, colorMap, {\n ...options,\n grammarState: undefined,\n grammarContextCode: undefined,\n }).stateStack\n : 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 // Do not attempt to tokenize if the line length is longer than the `tokenizationMaxLineLength`\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);\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(colorMap[EncodedTokenMetadata.getForeground(metadata)], colorReplacements);\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(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: options.includeExplanation === 'scopeName'\n ? explainThemeScopesNameOnly(tokenWithScopes.scopes)\n : explainThemeScopesFull(themeSettingsSelectors, tokenWithScopes.scopes),\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\n || (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; // continue to the next theme settings\n }\n }\n }\n return result;\n}\n\n/**\n * Get tokens with multiple themes\n */\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }));\n const tokens = syncThemesTokenization(...themes.map(t => codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme,\n })));\n const mergedTokens = tokens[0]\n .map((line, lineIdx) => line\n .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 { content: _, explanation: __, offset: ___, ...styles } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n }));\n return mergedTokens;\n}\n/**\n * Break tokens from multiple themes into same tokenization.\n *\n * For example, given two themes that tokenize `console.log(\"hello\")` as:\n *\n * - `console . log (\" hello \")` (6 tokens)\n * - `console .log ( \"hello\" )` (5 tokens)\n *\n * This function will return:\n *\n * - `console . log ( \" hello \" )` (8 tokens)\n * - `console . log ( \" hello \" )` (8 tokens)\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, i) => t.push(outLines[i]));\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 }\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\n/**\n * High-level code-to-tokens API.\n *\n * It will use `codeToTokensWithThemes` or `codeToTokensBase` based on the options.\n */\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n if ('themes' in options) {\n const { defaultColor = 'light', cssVariablePrefix = '--shiki-', } = options;\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }))\n .sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError('`themes` option must not be empty');\n const themeTokens = codeToTokensWithThemes(internal, code, options);\n if (defaultColor && !themes.find(t => t.color === defaultColor))\n throw new ShikiError(`\\`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\n .map(line => line.map(token => mergeToken(token, themesOrder, cssVariablePrefix, defaultColor)));\n const themeColorReplacements = themes.map(t => resolveColorReplacements(t.theme, options));\n fg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}:`) + (applyColorReplacements(themeRegs[idx].fg, themeColorReplacements[idx]) || 'inherit')).join(';');\n bg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}-bg:`) + (applyColorReplacements(themeRegs[idx].bg, themeColorReplacements[idx]) || 'inherit')).join(';');\n themeName = `shiki-themes ${themeRegs.map(t => t.name).join(' ')}`;\n rootStyle = defaultColor ? undefined : [fg, bg].join(';');\n }\n else if ('theme' in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(internal, code, options);\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n }\n else {\n throw new ShikiError('Invalid options, either `theme` or `themes` must be provided');\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n };\n}\nfunction mergeToken(merged, variantsOrder, cssVariablePrefix, defaultColor) {\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 // Get all style keys, for themes that missing some style, we put `inherit` to override as needed\n const styleKeys = new Set(styles.flatMap(t => Object.keys(t)));\n const mergedStyles = styles.reduce((acc, cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || 'inherit';\n if (idx === 0 && defaultColor) {\n acc[key] = value;\n }\n else {\n const keyName = key === 'color' ? '' : key === 'background-color' ? '-bg' : `-${key}`;\n const varKey = cssVariablePrefix + variantsOrder[idx] + (key === 'color' ? '' : keyName);\n if (acc[key])\n acc[key] += `;${varKey}:${value}`;\n else\n acc[key] = `${varKey}:${value}`;\n }\n }\n return acc;\n }, {});\n token.htmlStyle = defaultColor\n ? stringifyTokenStyle(mergedStyles)\n : Object.values(mergedStyles).join(';');\n return token;\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 { tokens, fg, bg, themeName, rootStyle, } = codeToTokens(internal, input, options);\n const { mergeWhitespaces = true, } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === 'never')\n tokens = splitWhitespaceTokens(tokens);\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(tokens, {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle,\n }, contextSource);\n}\nfunction tokensToHast(tokens, options, transformerContext) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: 'root',\n children: [],\n };\n const { structure = 'classic', } = options;\n let preNode = {\n type: 'element',\n tagName: 'pre',\n properties: {\n class: `shiki ${options.themeName || ''}`,\n style: options.rootStyle || `background-color:${options.bg};color:${options.fg}`,\n tabindex: '0',\n ...Object.fromEntries(Array.from(Object.entries(options.meta || {}))\n .filter(([key]) => !key.startsWith('_'))),\n },\n children: [],\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 children: [{ type: 'text', value: token.content }],\n };\n const style = token.htmlStyle || stringifyTokenStyle(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) || 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 }\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 }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = '';\n let firstOffset = 0;\n line.forEach((token, idx) => {\n const isUnderline = token.fontStyle && token.fontStyle & FontStyle.Underline;\n const couldMerge = !isUnderline;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (!firstOffset)\n firstOffset = token.offset;\n carryOnContent += token.content;\n }\n else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content,\n });\n }\n else {\n newLine.push({\n content: carryOnContent,\n offset: firstOffset,\n }, token);\n }\n firstOffset = 0;\n carryOnContent = '';\n }\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 // eslint-disable-next-line regexp/no-super-linear-backtracking\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}\n\n/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nconst 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/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nclass Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property;\n this.normal = normal;\n if (space) {\n this.space = space;\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {};\n/** @type {Normal} */\nSchema.prototype.normal = {};\n/** @type {string|null} */\nSchema.prototype.space = null;\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nfunction merge(definitions, space) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n let index = -1;\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property);\n Object.assign(normal, definitions[index].normal);\n }\n\n return new Schema(property, normal, space)\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction normalize(value) {\n return value.toLowerCase()\n}\n\nclass Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property;\n /** @type {string} */\n this.attribute = attribute;\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null;\nInfo.prototype.boolean = false;\nInfo.prototype.booleanish = false;\nInfo.prototype.overloadedBoolean = false;\nInfo.prototype.number = false;\nInfo.prototype.commaSeparated = false;\nInfo.prototype.spaceSeparated = false;\nInfo.prototype.commaOrSpaceSeparated = false;\nInfo.prototype.mustUseProperty = false;\nInfo.prototype.defined = false;\n\nlet powers = 0;\n\nconst boolean = increment();\nconst booleanish = increment();\nconst overloadedBoolean = increment();\nconst number = increment();\nconst spaceSeparated = increment();\nconst commaSeparated = increment();\nconst commaOrSpaceSeparated = increment();\n\nfunction increment() {\n return 2 ** ++powers\n}\n\nvar types = /*#__PURE__*/Object.freeze({\n __proto__: null,\n boolean: boolean,\n booleanish: booleanish,\n commaOrSpaceSeparated: commaOrSpaceSeparated,\n commaSeparated: commaSeparated,\n number: number,\n overloadedBoolean: overloadedBoolean,\n spaceSeparated: spaceSeparated\n});\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types);\n\nclass DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\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 * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value;\n }\n}\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\n\nconst own$3 = {}.hasOwnProperty;\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nfunction create(definition) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n /** @type {string} */\n let prop;\n\n for (prop in definition.properties) {\n if (own$3.call(definition.properties, prop)) {\n const value = definition.properties[prop];\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n );\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true;\n }\n\n property[prop] = info;\n\n normal[normalize(prop)] = prop;\n normal[normalize(info.attribute)] = prop;\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n\nconst xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\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});\n\nconst xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n});\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n\nconst xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n});\n\nconst aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\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});\n\nconst html$3 = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\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: boolean,\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 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\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});\n\nconst svg$1 = create({\n space: 'svg',\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 transform: caseSensitiveTransform,\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});\n\n/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\n\nconst valid = /^data[-\\w.:]+$/i;\nconst dash = /-[a-z]/g;\nconst cap = /[A-Z]/g;\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nfunction find(schema, value) {\n const normal = normalize(value);\n let prop = 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 prop = '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(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n\n/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nconst html$2 = merge([xml, xlink, xmlns, aria, html$3], 'html');\nconst svg = merge([xml, xlink, xmlns, aria, svg$1], 'svg');\n\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$2 = {}.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 */\nfunction 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$2.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key]);\n // @ts-expect-error Indexable.\n fn = own$2.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/**\n * @typedef CoreOptions\n * @property {Array<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\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nfunction core(value, options) {\n value = value.replace(\n options.subset ? charactersToExpression(options.subset) : /[\"&'<>`]/g,\n basic\n );\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(\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,\n basic\n )\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 * @param {Array<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(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'));\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\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 */\nfunction toHexadecimal(code, next, omit) {\n const value = '&#x' + code.toString(16).toUpperCase();\n return omit && next && !/[\\dA-Fa-f]/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\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 */\nfunction toDecimal(code, next, omit) {\n const value = '&#' + String(code);\n return omit && next && !/\\d/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nconst 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/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nconst 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/**\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 */\nconst dangerous = [\n 'cent',\n 'copy',\n 'divide',\n 'gt',\n 'lt',\n 'not',\n 'para',\n 'times'\n];\n\nconst own$1 = {}.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$1.call(characterEntitiesHtml4, key)) {\n characters[characterEntitiesHtml4[key]] = key;\n }\n}\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 */\nfunction toNamed(code, next, omit, attribute) {\n const character = String.fromCharCode(code);\n\n if (own$1.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 /[^\\da-z]/i.test(String.fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\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\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 */\nfunction 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/**\n * @typedef {import('./core.js').CoreOptions & import('./util/format-smart.js').FormatSmartOptions} Options\n * @typedef {import('./core.js').CoreOptions} LightOptions\n */\n\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 */\nfunction stringifyEntities(value, options) {\n return core(value, Object.assign({format: formatSmart}, options))\n}\n\n/**\n * @import {Comment, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\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 */\nfunction 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/**\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 */\nfunction doctype(_1, _2, _3, state) {\n return (\n '<!' +\n (state.settings.upperDoctype ? 'DOCTYPE' : 'doctype') +\n (state.settings.tightDoctype ? '' : ' ') +\n 'html>'\n )\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 */\nfunction 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/**\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/**\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 */\nfunction stringify$1(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/**\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 */\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 */\nfunction stringify(values) {\n return values.join(' ').trim()\n}\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 */\nfunction 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/**\n * @import {Parents, RootContent} from 'hast'\n */\n\n\nconst siblingAfter = siblings(1);\nconst siblingBefore = siblings(-1);\n\n/** @type {Array<RootContent>} */\nconst emptyChildren$1 = [];\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$1;\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/**\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 */\nfunction 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/**\n * @import {Element, Parents} from 'hast'\n */\n\n\nconst closing = omission({\n body: body$1,\n caption: headOrColgroupOrCaption,\n colgroup: headOrColgroupOrCaption,\n dd,\n dt,\n head: headOrColgroupOrCaption,\n html: html$1,\n li,\n optgroup,\n option,\n p,\n rp: rubyElement,\n rt: rubyElement,\n tbody: tbody$1,\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$1(_, 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$1(_, 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$1(_, 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/**\n * @import {Element, Parents} from 'hast'\n */\n\n\nconst 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 const children = node.children;\n /** @type {Array<string>} */\n const seen = [];\n let index = -1;\n\n while (++index < children.length) {\n const child = children[index];\n if (\n child.type === 'element' &&\n (child.tagName === 'title' || child.tagName === 'base')\n ) {\n if (seen.includes(child.tagName)) return false\n seen.push(child.tagName);\n }\n }\n\n return children.length > 0\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/**\n * @import {Element, Parents, Properties} from 'hast'\n * @import {State} from '../index.js'\n */\n\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 */\nfunction 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 ||\n (info.overloadedBoolean && typeof value !== 'string')\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 ? stringify$1 : stringify)(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/**\n * @import {Parents, Text} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {State} from '../index.js'\n */\n\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 */\nfunction 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/**\n * @import {Parents} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {State} from '../index.js'\n */\n\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 */\nfunction raw(node, index, parent, state) {\n return state.settings.allowDangerousHtml\n ? node.value\n : text(node, index, parent, state)\n}\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 */\nfunction root(node, _1, _2, state) {\n return state.all(node)\n}\n\n/**\n * @import {Nodes, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\n\n/**\n * @type {(node: Nodes, index: number | undefined, parent: Parents | undefined, state: State) => string}\n */\nconst 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/**\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/** @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 */\nfunction 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$2,\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 */\nfunction 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\n/**\n * Get highlighted code in HTML.\n */\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 = toHtml(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\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 }\n catch { }\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') : undefined;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead = 1024) {\n const endIdx = idx + maxBytesToRead;\n let endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx))\n ++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 }\n else {\n u0 = ((u0 & 7) << 18)\n | (u1 << 12)\n | (u2 << 6)\n | (heapOrArray[idx++] & 63);\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n }\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 = await init(info);\n wasmMemory = exports.memory;\n updateGlobalBufferAndViews(wasmMemory.buffer);\n Object.assign(binding, exports);\n binding.UTF8ToString = UTF8ToString;\n }\n await createWasm();\n return binding;\n}\n\n/* ---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *-------------------------------------------------------- */\nlet onigBinding = null;\n// let defaultDebugCall = false\nfunction throwLastOnigError(onigBinding) {\n throw new ShikiError(onigBinding.UTF8ToString(onigBinding.getLastOnigError()));\n}\nclass UtfString {\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 >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i + 1 < len) {\n const nextCharCode = str.charCodeAt(i + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codepoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (codepoint <= 0x7F)\n result += 1;\n else if (codepoint <= 0x7FF)\n result += 2;\n else if (codepoint <= 0xFFFF)\n result += 3;\n else\n result += 4;\n if (wasSurrogatePair)\n i++;\n }\n return result;\n }\n utf16Length;\n utf8Length;\n utf16Value;\n utf8Value;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n constructor(str) {\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 >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i16 + 1 < utf16Length) {\n const nextCharCode = str.charCodeAt(i16 + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codePoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (computeIndicesMapping) {\n utf16OffsetToUtf8[i16] = i8;\n if (wasSurrogatePair)\n utf16OffsetToUtf8[i16 + 1] = i8;\n if (codePoint <= 0x7F) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n }\n else if (codePoint <= 0x7FF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n }\n else if (codePoint <= 0xFFFF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n }\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 <= 0x7F) {\n utf8Value[i8++] = codePoint;\n }\n else if (codePoint <= 0x7FF) {\n utf8Value[i8++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else if (codePoint <= 0xFFFF) {\n utf8Value[i8++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else {\n utf8Value[i8++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 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 createString(onigBinding) {\n const result = onigBinding.omalloc(this.utf8Length);\n onigBinding.HEAPU8.set(this.utf8Value, result);\n return result;\n }\n}\nclass OnigString {\n static LAST_ID = 0;\n static _sharedPtr = 0; // a pointer to a string of 10000 bytes\n static _sharedPtrInUse = false;\n id = (++OnigString.LAST_ID);\n _onigBinding;\n content;\n utf16Length;\n utf8Length;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n ptr;\n constructor(str) {\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 < 10000 && !OnigString._sharedPtrInUse) {\n if (!OnigString._sharedPtr)\n OnigString._sharedPtr = onigBinding.omalloc(10000);\n OnigString._sharedPtrInUse = true;\n onigBinding.HEAPU8.set(utfString.utf8Value, OnigString._sharedPtr);\n this.ptr = OnigString._sharedPtr;\n }\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}\nclass OnigScanner {\n _onigBinding;\n _ptr;\n constructor(patterns) {\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 debugCall = defaultDebugCall\n let options = 0 /* FindOption.None */;\n if (typeof arg === 'number') {\n // if (arg & FindOption.DebugCall)\n // debugCall = true\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 onigBinding = this._onigBinding;\n // let resultPtr: Pointer\n // if (debugCall)\n // resultPtr = onigBinding.findNextOnigScannerMatchDbg(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options)\n // else\n const resultPtr = onigBinding.findNextOnigScannerMatch(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n if (resultPtr === 0) {\n // no match\n return null;\n }\n const HEAPU32 = onigBinding.HEAPU32;\n let offset = resultPtr / 4; // byte offset -> uint32 offset\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)))\n // eslint-disable-next-line node/prefer-global/buffer\n || (typeof Buffer !== 'undefined' && Buffer.isBuffer?.(data))\n || (typeof SharedArrayBuffer !== 'undefined' && data instanceof SharedArrayBuffer)\n || (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 }\n else if (isInstantiatorModule(instance)) {\n instance = await instance.default(info);\n }\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 }\n else if (isArrayBuffer(instance)) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n // import(\"shiki/onig.wasm\") returns `{ default: WebAssembly.Module }` on cloudflare workers\n // https://developers.cloudflare.com/workers/wrangler/bundling/\n else if (instance instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\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// export function createOnigString(str: string) {\n// return new OnigString(str)\n// }\n// export function createOnigScanner(patterns: string[]) {\n// return new OnigScanner(patterns)\n// }\n// export function setDefaultDebugCall(_defaultDebugCall: boolean): void {\n// defaultDebugCall = _defaultDebugCall\n// }\n\nasync function createWasmOnigEngine(options) {\n if (options)\n await loadWasm(options);\n return {\n createScanner(patterns) {\n return new OnigScanner(patterns);\n },\n createString(s) {\n return new OnigString(s);\n },\n };\n}\n\n/**\n * https://github.com/microsoft/vscode/blob/f7f05dee53fb33fe023db2e06e30a89d3094488f/src/vs/platform/theme/common/colorRegistry.ts#L258-L268\n */\nconst VSCODE_FALLBACK_EDITOR_FG = { light: '#333333', dark: '#bbbbbb' };\nconst VSCODE_FALLBACK_EDITOR_BG = { light: '#fffffe', dark: '#1e1e1e' };\nconst RESOLVED_KEY = '__shiki_resolved';\n/**\n * Normalize a textmate theme to shiki theme\n */\nfunction normalizeTheme(rawTheme) {\n // @ts-expect-error private field\n if (rawTheme?.[RESOLVED_KEY])\n return rawTheme;\n const theme = {\n ...rawTheme,\n };\n // Fallback settings\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 // Guess fg/bg colors\n let { bg, fg } = theme;\n if (!bg || !fg) {\n /**\n * First try:\n * Theme might contain a global `tokenColor` without `name` or `scope`\n * Used as default value for foreground/background\n */\n const globalSetting = theme.settings\n ? theme.settings.find((s) => !s.name && !s.scope)\n : undefined;\n if (globalSetting?.settings?.foreground)\n fg = globalSetting.settings.foreground;\n if (globalSetting?.settings?.background)\n bg = globalSetting.settings.background;\n /**\n * Second try:\n * If there's no global `tokenColor` without `name` or `scope`\n * Use `editor.foreground` and `editor.background`\n */\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 /**\n * Last try:\n * If there's no fg/bg color specified in theme, use default\n */\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 // Push a no-scope setting with fallback colors\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 // Push non-hex colors to color replacements, as `vscode-textmate` doesn't support them\n let replacementCount = 0;\n const replacementMap = 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}`]) // already exists\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 // Only patch for known keys\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\n/**\n * Resolve\n */\nasync function resolveLangs(langs) {\n return Array.from(new Set((await Promise.all(langs\n .filter(l => !isSpecialLang(l))\n .map(async (lang) => await normalizeGetter(lang).then(r => Array.isArray(r) ? r : [r])))).flat()));\n}\nasync function resolveThemes(themes) {\n const resolved = await Promise.all(themes.map(async (theme) => isSpecialTheme(theme)\n ? null\n : normalizeTheme(await normalizeGetter(theme))));\n return resolved.filter(i => !!i);\n}\n\nclass Registry extends Registry$1 {\n _resolver;\n _themes;\n _langs;\n _alias;\n _resolvedThemes = new Map();\n _resolvedGrammars = new Map();\n _langMap = new Map();\n _langGraph = new Map();\n _textmateThemeCache = new WeakMap();\n _loadedThemesCache = null;\n _loadedLanguagesCache = null;\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 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 // Reset cache\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 // @ts-expect-error Access private `_syncRegistry`, but should work in runtime\n this._syncRegistry.setTheme(textmateTheme);\n }\n getGrammar(name) {\n if (this._alias[name]) {\n const resolved = new Set([name]);\n while (this._alias[name]) {\n name = this._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 this._resolvedGrammars.get(name);\n }\n loadLanguage(lang) {\n if (this.getGrammar(lang.name))\n return;\n const embeddedLazilyBy = new Set([...this._langMap.values()]\n .filter(i => i.embeddedLangsLazy?.includes(lang.name)));\n this._resolver.addLanguage(lang);\n const grammarConfig = {\n balancedBracketSelectors: lang.balancedBracketSelectors || ['*'],\n unbalancedBracketSelectors: lang.unbalancedBracketSelectors || [],\n };\n // @ts-expect-error Private members, set this to override the previous grammar (that can be a stub)\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 // Reset cache\n this._loadedLanguagesCache = null;\n // If there is a language that embeds this language lazily, we need to reload it\n if (embeddedLazilyBy.size) {\n for (const e of embeddedLazilyBy) {\n this._resolvedGrammars.delete(e.name);\n // Reset cache\n this._loadedLanguagesCache = null;\n // @ts-expect-error clear cache\n this._syncRegistry?._injectionGrammars?.delete(e.scopeName);\n // @ts-expect-error clear cache\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\n .filter(([_, lang]) => lang && lang.embeddedLangs?.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 ...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 if (lang.embeddedLangs) {\n for (const embeddedLang of lang.embeddedLangs)\n this._langGraph.set(embeddedLang, this._langMap.get(embeddedLang));\n }\n }\n}\n\nclass Resolver {\n _langs = new Map();\n _scopeToLang = new Map();\n _injections = 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;\n/**\n * Get the minimal shiki context for rendering.\n *\n * Synchronous version of `createShikiInternal`, which requires to provide the engine and all themes and languages upfront.\n */\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 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(...langs) {\n ensureNotDisposed();\n _registry.loadLanguages(langs.flat(1));\n }\n async function loadLanguage(...langs) {\n return loadLanguageSync(await resolveLangs(langs));\n }\n async function loadThemeSync(...themes) {\n ensureNotDisposed();\n for (const theme of themes.flat(1)) {\n _registry.loadTheme(theme);\n }\n }\n async function loadTheme(...themes) {\n ensureNotDisposed();\n return loadThemeSync(await resolveThemes(themes));\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 loadLanguage,\n loadLanguageSync,\n loadTheme,\n loadThemeSync,\n dispose,\n [Symbol.dispose]: dispose,\n };\n}\n\nlet _defaultWasmLoader;\n/**\n * Set the default wasm loader for `loadWasm`.\n * @internal\n */\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\n/**\n * Get the minimal shiki context for rendering.\n */\nasync function createShikiInternal(options = {}) {\n const [themes, langs, engine,] = await Promise.all([\n resolveThemes(options.themes || []),\n resolveLangs(options.langs || []),\n (options.engine || createWasmOnigEngine(options.loadWasm || _defaultWasmLoader)),\n ]);\n return createShikiInternalSync({\n ...options,\n loadWasm: undefined,\n themes,\n langs,\n engine,\n });\n}\n/**\n * @deprecated Use `createShikiInternal` instead.\n */\nfunction getShikiInternal(options = {}) {\n // TODO: next: console.warn('`getShikiInternal` is deprecated. Use `createShikiInternal` instead.')\n return createShikiInternal(options);\n}\n\n/**\n * Create a Shiki core highlighter instance, with no languages or themes bundled.\n * Wasm and each language and theme must be loaded manually.\n *\n * @see http://shiki.style/guide/bundles#fine-grained-bundle\n */\nasync function createHighlighterCore(options = {}) {\n const internal = await createShikiInternal(options);\n return {\n getLastGrammarState: (code, options) => getLastGrammarState(internal, code, options),\n codeToTokensBase: (code, options) => codeToTokensBase(internal, code, options),\n codeToTokensWithThemes: (code, options) => codeToTokensWithThemes(internal, code, options),\n codeToTokens: (code, options) => codeToTokens(internal, code, options),\n codeToHast: (code, options) => codeToHast(internal, code, options),\n codeToHtml: (code, options) => codeToHtml(internal, code, options),\n ...internal,\n getInternalContext: () => internal,\n };\n}\n/**\n * Create a Shiki core highlighter instance, with no languages or themes bundled.\n * Wasm and each language and theme must be loaded manually.\n *\n * Synchronous version of `createHighlighterCore`, which requires to provide the engine and all themes and languages upfront.\n *\n * @see http://shiki.style/guide/bundles#fine-grained-bundle\n */\nfunction createHighlighterCoreSync(options = {}) {\n const internal = createShikiInternalSync(options);\n return {\n getLastGrammarState: (code, options) => getLastGrammarState(internal, code, options),\n codeToTokensBase: (code, options) => codeToTokensBase(internal, code, options),\n codeToTokensWithThemes: (code, options) => codeToTokensWithThemes(internal, code, options),\n codeToTokens: (code, options) => codeToTokens(internal, code, options),\n codeToHast: (code, options) => codeToHast(internal, code, options),\n codeToHtml: (code, options) => codeToHtml(internal, code, options),\n ...internal,\n getInternalContext: () => internal,\n };\n}\nfunction makeSingletonHighlighterCore(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighterCore(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || [],\n });\n return _shiki;\n }\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 getSingletonHighlighterCore;\n}\nconst getSingletonHighlighterCore = /* @__PURE__ */ makeSingletonHighlighterCore(createHighlighterCore);\n/**\n * @deprecated Use `createHighlighterCore` or `getSingletonHighlighterCore` instead.\n */\n/* v8 ignore next 5 */\nfunction getHighlighterCore(options = {}) {\n // TODO: next: console.warn('`getHighlighterCore` is deprecated. Use `createHighlighterCore` or `getSingletonHighlighterCore` instead.')\n return createHighlighterCore(options);\n}\n\n// Implementation\nfunction createdBundledHighlighter(arg1, arg2, arg3) {\n let bundledLanguages;\n let bundledThemes;\n let engine;\n if (arg2) {\n // TODO: next: console.warn('`createdBundledHighlighter` signature with `bundledLanguages` and `bundledThemes` is deprecated. Use the options object signature instead.')\n bundledLanguages = arg1;\n bundledThemes = arg2;\n engine = () => createWasmOnigEngine(arg3);\n }\n else {\n const options = arg1;\n bundledLanguages = options.langs;\n bundledThemes = options.themes;\n engine = options.engine;\n }\n async function createHighlighter(options) {\n function resolveLang(lang) {\n if (typeof lang === 'string') {\n if (isSpecialLang(lang))\n return [];\n const bundle = bundledLanguages[lang];\n if (!bundle)\n throw new ShikiError(`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(`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 = (options.themes ?? []).map(i => resolveTheme(i));\n const langs = (options.langs ?? [])\n .map(i => resolveLang(i));\n const core = await createHighlighterCore({\n engine: engine(),\n ...options,\n themes: _themes,\n langs,\n });\n return {\n ...core,\n loadLanguage(...langs) {\n return core.loadLanguage(...langs.map(resolveLang));\n },\n loadTheme(...themes) {\n return core.loadTheme(...themes.map(resolveTheme));\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: options.themes || [],\n langs: options.langs || [],\n });\n return _shiki;\n }\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) {\n const getSingletonHighlighter = makeSingletonHighlighter(createHighlighter);\n return {\n getSingletonHighlighter(options) {\n return getSingletonHighlighter(options);\n },\n async codeToHtml(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToHtml(code, options);\n },\n async codeToHast(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToHast(code, options);\n },\n async codeToTokens(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToTokens(code, options);\n },\n async codeToTokensBase(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme],\n });\n return shiki.codeToTokensBase(code, options);\n },\n async codeToTokensWithThemes(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: Object.values(options.themes).filter(Boolean),\n });\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}\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) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass RegExpConversionError extends SyntaxError {\n constructor(message, options) {\n super(message, { cause: options.cause });\n __publicField(this, \"patternOriginal\");\n __publicField(this, \"patternConverted\");\n __publicField(this, \"cursorPosition\");\n this.patternOriginal = options.pattern;\n this.patternConverted = options.converted;\n this.cursorPosition = options.cursor;\n }\n}\n\nconst TABLE_POSIX = {\n alnum: \"0-9A-Za-z\",\n alpha: \"A-Za-z\",\n ascii: \"\\0-\\x7F\",\n blank: \" \\\\t\",\n cntrl: \"\\0-\u001f\\x7F\",\n digit: \"\\\\d\",\n graph: \"!-~\",\n lower: \"a-z\",\n print: \" -~\",\n punct: \"!-/:-@[-`{-~\",\n space: \"\\\\s\",\n upper: \"A-Z\",\n xdigit: \"0-9A-Fa-f\",\n word: \"\\\\w\"\n};\nconst KNOWN_FLAGS = /* @__PURE__ */ new Set(\"gimsuyx\");\nfunction syntaxLowering(input, options = {}) {\n const {\n preserveFlags = false,\n removePossessiveQuantifier = false,\n removeAtomicGroup = false,\n convertHexDigitsShorthand = false\n } = options;\n let output = \"\";\n const flags = /* @__PURE__ */ new Set();\n const stack = [];\n const freeSpacingLocal = [];\n let freeSpacingGlobal = false;\n let i = 0;\n try {\n while (i < input.length) {\n const char = input[i];\n while (freeSpacingLocal.length && freeSpacingLocal[0] > stack.length) {\n freeSpacingLocal.shift();\n }\n const head = stack[0];\n const wsEscape = freeSpacingGlobal || freeSpacingLocal.length;\n if (char === \"\\\\\") {\n if (convertHexDigitsShorthand) {\n if (input[i + 1] === \"h\") {\n const body = `0-9A-Fa-f`;\n if (head === \"[\") {\n output += body;\n } else {\n output += `[${body}]`;\n }\n i += 2;\n continue;\n }\n if (input[i + 1] === \"H\") {\n if (head === \"[\") {\n throw new RegExpConversionError(\n \"Expending \\\\H in character class is not supported\",\n { pattern: input, converted: output, cursor: i }\n );\n } else {\n output += `[^0-9A-Fa-f]`;\n }\n i += 2;\n continue;\n }\n }\n output += char + input[i + 1];\n i += 2;\n continue;\n }\n if (char === \"#\" && wsEscape && input[i - 1].match(/\\s/) && head !== \"[\") {\n for (let j = i + 1; j <= input.length; j++) {\n if (input[j] === \"\\n\" || j === input.length) {\n i = j;\n break;\n }\n }\n continue;\n }\n if (char === \"(\" && head !== \"[\") {\n if (input[i + 1] === \"?\") {\n if (input[i + 2] === \"#\") {\n for (let j = i + 3; j < input.length; j++) {\n if (input[j] === \")\" && input[j - 1] !== \"\\\\\") {\n i = j + 1;\n break;\n }\n }\n continue;\n }\n if (removeAtomicGroup && input[i + 2] === \">\") {\n output += \"(?:\";\n i += 3;\n continue;\n }\n if (KNOWN_FLAGS.has(input[i + 2])) {\n let end = i + 3;\n for (; end < input.length; end++) {\n if (!KNOWN_FLAGS.has(input[end]))\n break;\n }\n const flagStr = input.slice(i + 2, end);\n const hasX = flagStr.includes(\"x\") && flagStr[0] !== \"-\";\n let remainFlags = [...flagStr].filter((x) => x !== \"x\").join(\"\");\n if (!preserveFlags) {\n if (remainFlags[0] === \"-\") {\n remainFlags = remainFlags.slice(1);\n for (const flag of flagStr) {\n flags.delete(flag);\n }\n } else {\n for (const flag of remainFlags) {\n flags.add(flag);\n }\n }\n remainFlags = \"\";\n }\n if (input[end] === \")\") {\n i = end + 1;\n if (hasX) {\n freeSpacingGlobal = true;\n }\n if (remainFlags.length) {\n output += `(?${remainFlags})`;\n }\n continue;\n } else if (input[end] === \":\") {\n i = end + 1;\n stack.unshift(char);\n if (hasX) {\n freeSpacingLocal.unshift(stack.length);\n }\n output += `(?${remainFlags}:`;\n continue;\n }\n }\n stack.unshift(char);\n output += char + input[i + 1] + input[i + 2];\n i += 3;\n } else {\n stack.unshift(char);\n output += char;\n i += 1;\n }\n continue;\n }\n if (char === \")\" && head !== \"[\") {\n if (head === \"(\")\n stack.shift();\n output += char;\n i += 1;\n continue;\n }\n if (char === \"[\") {\n if (input[i + 1] === \":\") {\n let name = \"\";\n let negated = false;\n if (input[i + 2] === \"^\") {\n negated = true;\n i += 1;\n }\n for (let j = i + 2; j < input.length; j++) {\n if (input[j] === \":\") {\n i = j + 2;\n break;\n }\n if (!input[j].match(/[a-z]/i)) {\n name = \"\";\n break;\n }\n name += input[j];\n }\n if (name) {\n let resolved = TABLE_POSIX[name];\n if (!resolved) {\n throw new RegExpConversionError(\n `Unknown posix class \"${name}\"`,\n { pattern: input, converted: output, cursor: i }\n );\n }\n if (negated)\n resolved = `^${resolved}`;\n if (head === \"[\")\n output += resolved;\n else\n output += `[${resolved}]`;\n continue;\n }\n }\n if (head !== \"[\") {\n stack.unshift(char);\n }\n output += char;\n i += 1;\n continue;\n }\n if (char === \"]\") {\n if (head === \"[\")\n stack.shift();\n output += char;\n i += 1;\n continue;\n }\n if (removePossessiveQuantifier && char === \"+\" && head !== \"[\") {\n if (\"?+}*\".includes(input[i - 1])) {\n i += 1;\n continue;\n }\n }\n if (!(wsEscape && head !== \"[\" && char.match(/\\s/))) {\n output += char;\n }\n i += 1;\n }\n } catch (e) {\n if (e instanceof RegExpConversionError)\n throw e;\n throw new RegExpConversionError(\n `Error lowering regex at position ${i}`,\n { pattern: input, converted: output, cursor: i, cause: e }\n );\n }\n return {\n pattern: output,\n flags: [...flags].join(\"\")\n };\n}\n\nfunction construct(pattern, options = {}) {\n const {\n original = pattern,\n flags = [\"g\"]\n } = options;\n if (pattern.startsWith(\"(?x)\") || pattern.includes(\"(?x:\")) {\n throw new RegExpConversionError(\n \"RegExp Free-spacing mode `(?x)` is not supported, you might want to run syntaxLowering() first\",\n { pattern: original, converted: pattern }\n );\n }\n if (pattern.match(/\\[:\\w+:\\]/)) {\n throw new RegExpConversionError(\n \"POSIX character classes are not supported, you might want to run syntaxLowering() first\",\n { pattern: original, converted: pattern }\n );\n }\n const flagSet = new Set(Array.isArray(flags) ? flags : flags.split(\"\"));\n if (options.ignoreContiguousAnchors) {\n pattern = pattern.replace(/\\\\G/g, \"\");\n }\n pattern = pattern.replace(/\\\\A/g, \"^\").replace(/\\\\x\\{([^}]*)\\}/g, (m, hex) => `\\\\u${hex.padStart(4, \"0\")}`).replace(/\\(\\?(-)?(\\w+):/g, (_, neg, flagStr) => {\n if (neg) {\n for (const flag of flagStr)\n flagSet.delete(flag);\n } else {\n for (const flag of flagStr)\n flagSet.add(flag);\n }\n return \"(?:\";\n }).replace(/\\(\\?(-)?(\\w+)\\)/g, (_, neg, flags2) => {\n if (neg) {\n for (const flag of flags2)\n flagSet.delete(flag);\n } else {\n for (const flag of flags2)\n flagSet.add(flag);\n }\n return \"\";\n });\n if (flagSet.has(\"x\")) {\n throw new RegExpConversionError(\n \"JavaScript does not support extended mode (x flag), you might want to run syntaxLowering() first\",\n { pattern: original, converted: pattern }\n );\n }\n try {\n return new RegExp(pattern, [...flagSet].join(\"\"));\n } catch (e) {\n throw new RegExpConversionError(\n `Failed to construct RegExp`,\n {\n pattern: original,\n converted: pattern,\n cause: e\n }\n );\n }\n}\n\nfunction onigurumaToRegexp(pattern, options = {}) {\n const {\n pattern: converted,\n flags\n } = syntaxLowering(pattern, {\n removePossessiveQuantifier: true,\n removeAtomicGroup: true,\n convertHexDigitsShorthand: true,\n ...options\n });\n return construct(converted, {\n original: pattern,\n ...options,\n flags: [.../* @__PURE__ */ new Set([...flags, ...options.flags || []])].join(\"\")\n });\n}\n\nconst MAX = 4294967295;\nclass JavaScriptScanner {\n patterns;\n cache;\n forgiving;\n regexps;\n constructor(patterns, cache, forgiving) {\n this.patterns = patterns;\n this.cache = cache;\n this.forgiving = forgiving;\n this.regexps = patterns.map((p) => {\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 = onigurumaToRegexp(p\n .replace(/\\|\\\\G(\\||\\))/g, '$1')\n .replace(/(\\(|\\|)\\\\G\\|/g, '$1')\n // YAML specific handling; TODO: move to tm-grammars\n .replaceAll('[^\\\\s[-?:,\\\\[\\\\]{}#&*!|>\\'\"%@`]]', '[^\\\\s\\\\-?:,\\\\[\\\\]{}#&*!|>\\'\"%@`]'), {\n flags: 'dgm',\n ignoreContiguousAnchors: true,\n });\n cache?.set(p, regex);\n return regex;\n }\n catch (e) {\n cache?.set(p, e);\n if (forgiving)\n return null;\n // console.error({ ...e })\n throw e;\n }\n });\n }\n findNextMatchSync(string, startPosition) {\n const str = typeof string === 'string'\n ? string\n : string.content;\n const pending = [];\n function toResult(index, match) {\n return {\n index,\n captureIndices: match.indices.map((indice) => {\n if (indice == null) {\n return {\n end: MAX,\n start: MAX,\n length: 0,\n };\n }\n return {\n start: indice[0],\n length: indice[1] - indice[0],\n end: indice[1],\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 the match is at the start position, return it immediately\n if (match.index === startPosition) {\n return toResult(i, match);\n }\n // Otherwise, store it for later\n pending.push([i, match]);\n }\n catch (e) {\n if (this.forgiving)\n continue;\n throw e;\n }\n }\n // Find the closest match to the start position\n if (pending.length) {\n const minIndex = Math.min(...pending.map(m => m[1].index));\n for (const [i, match] of pending) {\n if (match.index === minIndex) {\n return toResult(i, match);\n }\n }\n }\n return null;\n }\n}\n/**\n * Use the modern JavaScript RegExp engine to implement the OnigScanner.\n *\n * As Oniguruma regex is more powerful than JavaScript regex, some patterns may not be supported.\n * Errors will be thrown when parsing TextMate grammars with unsupported patterns.\n * Set `forgiving` to `true` to ignore these errors and skip the unsupported patterns.\n *\n * @experimental\n */\nfunction createJavaScriptRegexEngine(options = {}) {\n const { forgiving = false, cache = new Map(), } = options;\n return {\n createScanner(patterns) {\n return new JavaScriptScanner(patterns, cache, forgiving);\n },\n createString(s) {\n return {\n content: s,\n };\n },\n };\n}\n\nexport { FontStyle, ShikiError, addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighterCore, createHighlighterCoreSync, createJavaScriptRegexEngine, createPositionConverter, createShikiInternal, createShikiInternalSync, createSingletonShorthands, createWasmOnigEngine, createdBundledHighlighter, getHighlighterCore, getShikiInternal, getSingletonHighlighterCore, getTokenStyleObject, toHtml as hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, loadWasm, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeGetter, normalizeTheme, resolveColorReplacements, setDefaultWasmLoader, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations };\n","import { bundledLanguages } from './langs.mjs';\nexport { bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo } from './langs.mjs';\nimport { g as getWasmInlined } from './chunks/wasm-dynamic.mjs';\nimport { bundledThemes } from './themes.mjs';\nexport { bundledThemesInfo } from './themes.mjs';\nimport { createdBundledHighlighter, createWasmOnigEngine, createSingletonShorthands } from '@shikijs/core';\nexport * from '@shikijs/core';\nexport { createCssVariablesTheme } from './theme-css-variables.mjs';\n\nconst createHighlighter = /* @__PURE__ */ createdBundledHighlighter({\n langs: bundledLanguages,\n themes: bundledThemes,\n engine: () => createWasmOnigEngine(getWasmInlined)\n});\nconst {\n codeToHtml,\n codeToHast,\n codeToTokens,\n codeToTokensBase,\n codeToTokensWithThemes,\n getSingletonHighlighter,\n getLastGrammarState\n} = /* @__PURE__ */ createSingletonShorthands(\n createHighlighter\n);\nconst getHighlighter = (options) => {\n return createHighlighter(options);\n};\n\nexport { bundledLanguages, bundledThemes, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighter, getHighlighter, getLastGrammarState, getSingletonHighlighter, getWasmInlined };\n","const bundledLanguagesInfo = [\n {\n \"id\": \"abap\",\n \"name\": \"ABAP\",\n \"import\": () => import('./langs/abap.mjs')\n },\n {\n \"id\": \"actionscript-3\",\n \"name\": \"ActionScript\",\n \"import\": () => import('./langs/actionscript-3.mjs')\n },\n {\n \"id\": \"ada\",\n \"name\": \"Ada\",\n \"import\": () => import('./langs/ada.mjs')\n },\n {\n \"id\": \"angular-html\",\n \"name\": \"Angular HTML\",\n \"import\": () => import('./langs/angular-html.mjs')\n },\n {\n \"id\": \"angular-ts\",\n \"name\": \"Angular TypeScript\",\n \"import\": () => import('./langs/angular-ts.mjs')\n },\n {\n \"id\": \"apache\",\n \"name\": \"Apache Conf\",\n \"import\": () => import('./langs/apache.mjs')\n },\n {\n \"id\": \"apex\",\n \"name\": \"Apex\",\n \"import\": () => import('./langs/apex.mjs')\n },\n {\n \"id\": \"apl\",\n \"name\": \"APL\",\n \"import\": () => import('./langs/apl.mjs')\n },\n {\n \"id\": \"applescript\",\n \"name\": \"AppleScript\",\n \"import\": () => import('./langs/applescript.mjs')\n },\n {\n \"id\": \"ara\",\n \"name\": \"Ara\",\n \"import\": () => import('./langs/ara.mjs')\n },\n {\n \"id\": \"asciidoc\",\n \"name\": \"AsciiDoc\",\n \"aliases\": [\n \"adoc\"\n ],\n \"import\": () => import('./langs/asciidoc.mjs')\n },\n {\n \"id\": \"asm\",\n \"name\": \"Assembly\",\n \"import\": () => import('./langs/asm.mjs')\n },\n {\n \"id\": \"astro\",\n \"name\": \"Astro\",\n \"import\": () => import('./langs/astro.mjs')\n },\n {\n \"id\": \"awk\",\n \"name\": \"AWK\",\n \"import\": () => import('./langs/awk.mjs')\n },\n {\n \"id\": \"ballerina\",\n \"name\": \"Ballerina\",\n \"import\": () => import('./langs/ballerina.mjs')\n },\n {\n \"id\": \"bat\",\n \"name\": \"Batch File\",\n \"aliases\": [\n \"batch\"\n ],\n \"import\": () => import('./langs/bat.mjs')\n },\n {\n \"id\": \"beancount\",\n \"name\": \"Beancount\",\n \"import\": () => import('./langs/beancount.mjs')\n },\n {\n \"id\": \"berry\",\n \"name\": \"Berry\",\n \"aliases\": [\n \"be\"\n ],\n \"import\": () => import('./langs/berry.mjs')\n },\n {\n \"id\": \"bibtex\",\n \"name\": \"BibTeX\",\n \"import\": () => import('./langs/bibtex.mjs')\n },\n {\n \"id\": \"bicep\",\n \"name\": \"Bicep\",\n \"import\": () => import('./langs/bicep.mjs')\n },\n {\n \"id\": \"blade\",\n \"name\": \"Blade\",\n \"import\": () => import('./langs/blade.mjs')\n },\n {\n \"id\": \"c\",\n \"name\": \"C\",\n \"import\": () => import('./langs/c.mjs')\n },\n {\n \"id\": \"cadence\",\n \"name\": \"Cadence\",\n \"aliases\": [\n \"cdc\"\n ],\n \"import\": () => import('./langs/cadence.mjs')\n },\n {\n \"id\": \"clarity\",\n \"name\": \"Clarity\",\n \"import\": () => import('./langs/clarity.mjs')\n },\n {\n \"id\": \"clojure\",\n \"name\": \"Clojure\",\n \"aliases\": [\n \"clj\"\n ],\n \"import\": () => import('./langs/clojure.mjs')\n },\n {\n \"id\": \"cmake\",\n \"name\": \"CMake\",\n \"import\": () => import('./langs/cmake.mjs')\n },\n {\n \"id\": \"cobol\",\n \"name\": \"COBOL\",\n \"import\": () => import('./langs/cobol.mjs')\n },\n {\n \"id\": \"codeowners\",\n \"name\": \"CODEOWNERS\",\n \"import\": () => import('./langs/codeowners.mjs')\n },\n {\n \"id\": \"codeql\",\n \"name\": \"CodeQL\",\n \"aliases\": [\n \"ql\"\n ],\n \"import\": () => import('./langs/codeql.mjs')\n },\n {\n \"id\": \"coffee\",\n \"name\": \"CoffeeScript\",\n \"aliases\": [\n \"coffeescript\"\n ],\n \"import\": () => import('./langs/coffee.mjs')\n },\n {\n \"id\": \"common-lisp\",\n \"name\": \"Common Lisp\",\n \"aliases\": [\n \"lisp\"\n ],\n \"import\": () => import('./langs/common-lisp.mjs')\n },\n {\n \"id\": \"coq\",\n \"name\": \"Coq\",\n \"import\": () => import('./langs/coq.mjs')\n },\n {\n \"id\": \"cpp\",\n \"name\": \"C++\",\n \"aliases\": [\n \"c++\"\n ],\n \"import\": () => import('./langs/cpp.mjs')\n },\n {\n \"id\": \"crystal\",\n \"name\": \"Crystal\",\n \"import\": () => import('./langs/crystal.mjs')\n },\n {\n \"id\": \"csharp\",\n \"name\": \"C#\",\n \"aliases\": [\n \"c#\",\n \"cs\"\n ],\n \"import\": () => import('./langs/csharp.mjs')\n },\n {\n \"id\": \"css\",\n \"name\": \"CSS\",\n \"import\": () => import('./langs/css.mjs')\n },\n {\n \"id\": \"csv\",\n \"name\": \"CSV\",\n \"import\": () => import('./langs/csv.mjs')\n },\n {\n \"id\": \"cue\",\n \"name\": \"CUE\",\n \"import\": () => import('./langs/cue.mjs')\n },\n {\n \"id\": \"cypher\",\n \"name\": \"Cypher\",\n \"aliases\": [\n \"cql\"\n ],\n \"import\": () => import('./langs/cypher.mjs')\n },\n {\n \"id\": \"d\",\n \"name\": \"D\",\n \"import\": () => import('./langs/d.mjs')\n },\n {\n \"id\": \"dart\",\n \"name\": \"Dart\",\n \"import\": () => import('./langs/dart.mjs')\n },\n {\n \"id\": \"dax\",\n \"name\": \"DAX\",\n \"import\": () => import('./langs/dax.mjs')\n },\n {\n \"id\": \"desktop\",\n \"name\": \"Desktop\",\n \"import\": () => import('./langs/desktop.mjs')\n },\n {\n \"id\": \"diff\",\n \"name\": \"Diff\",\n \"import\": () => import('./langs/diff.mjs')\n },\n {\n \"id\": \"docker\",\n \"name\": \"Dockerfile\",\n \"aliases\": [\n \"dockerfile\"\n ],\n \"import\": () => import('./langs/docker.mjs')\n },\n {\n \"id\": \"dotenv\",\n \"name\": \"dotEnv\",\n \"import\": () => import('./langs/dotenv.mjs')\n },\n {\n \"id\": \"dream-maker\",\n \"name\": \"Dream Maker\",\n \"import\": () => import('./langs/dream-maker.mjs')\n },\n {\n \"id\": \"edge\",\n \"name\": \"Edge\",\n \"import\": () => import('./langs/edge.mjs')\n },\n {\n \"id\": \"elixir\",\n \"name\": \"Elixir\",\n \"import\": () => import('./langs/elixir.mjs')\n },\n {\n \"id\": \"elm\",\n \"name\": \"Elm\",\n \"import\": () => import('./langs/elm.mjs')\n },\n {\n \"id\": \"emacs-lisp\",\n \"name\": \"Emacs Lisp\",\n \"aliases\": [\n \"elisp\"\n ],\n \"import\": () => import('./langs/emacs-lisp.mjs')\n },\n {\n \"id\": \"erb\",\n \"name\": \"ERB\",\n \"import\": () => import('./langs/erb.mjs')\n },\n {\n \"id\": \"erlang\",\n \"name\": \"Erlang\",\n \"aliases\": [\n \"erl\"\n ],\n \"import\": () => import('./langs/erlang.mjs')\n },\n {\n \"id\": \"fennel\",\n \"name\": \"Fennel\",\n \"import\": () => import('./langs/fennel.mjs')\n },\n {\n \"id\": \"fish\",\n \"name\": \"Fish\",\n \"import\": () => import('./langs/fish.mjs')\n },\n {\n \"id\": \"fluent\",\n \"name\": \"Fluent\",\n \"aliases\": [\n \"ftl\"\n ],\n \"import\": () => import('./langs/fluent.mjs')\n },\n {\n \"id\": \"fortran-fixed-form\",\n \"name\": \"Fortran (Fixed Form)\",\n \"aliases\": [\n \"f\",\n \"for\",\n \"f77\"\n ],\n \"import\": () => import('./langs/fortran-fixed-form.mjs')\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('./langs/fortran-free-form.mjs')\n },\n {\n \"id\": \"fsharp\",\n \"name\": \"F#\",\n \"aliases\": [\n \"f#\",\n \"fs\"\n ],\n \"import\": () => import('./langs/fsharp.mjs')\n },\n {\n \"id\": \"gdresource\",\n \"name\": \"GDResource\",\n \"import\": () => import('./langs/gdresource.mjs')\n },\n {\n \"id\": \"gdscript\",\n \"name\": \"GDScript\",\n \"import\": () => import('./langs/gdscript.mjs')\n },\n {\n \"id\": \"gdshader\",\n \"name\": \"GDShader\",\n \"import\": () => import('./langs/gdshader.mjs')\n },\n {\n \"id\": \"genie\",\n \"name\": \"Genie\",\n \"import\": () => import('./langs/genie.mjs')\n },\n {\n \"id\": \"gherkin\",\n \"name\": \"Gherkin\",\n \"import\": () => import('./langs/gherkin.mjs')\n },\n {\n \"id\": \"git-commit\",\n \"name\": \"Git Commit Message\",\n \"import\": () => import('./langs/git-commit.mjs')\n },\n {\n \"id\": \"git-rebase\",\n \"name\": \"Git Rebase Message\",\n \"import\": () => import('./langs/git-rebase.mjs')\n },\n {\n \"id\": \"gleam\",\n \"name\": \"Gleam\",\n \"import\": () => import('./langs/gleam.mjs')\n },\n {\n \"id\": \"glimmer-js\",\n \"name\": \"Glimmer JS\",\n \"aliases\": [\n \"gjs\"\n ],\n \"import\": () => import('./langs/glimmer-js.mjs')\n },\n {\n \"id\": \"glimmer-ts\",\n \"name\": \"Glimmer TS\",\n \"aliases\": [\n \"gts\"\n ],\n \"import\": () => import('./langs/glimmer-ts.mjs')\n },\n {\n \"id\": \"glsl\",\n \"name\": \"GLSL\",\n \"import\": () => import('./langs/glsl.mjs')\n },\n {\n \"id\": \"gnuplot\",\n \"name\": \"Gnuplot\",\n \"import\": () => import('./langs/gnuplot.mjs')\n },\n {\n \"id\": \"go\",\n \"name\": \"Go\",\n \"import\": () => import('./langs/go.mjs')\n },\n {\n \"id\": \"graphql\",\n \"name\": \"GraphQL\",\n \"aliases\": [\n \"gql\"\n ],\n \"import\": () => import('./langs/graphql.mjs')\n },\n {\n \"id\": \"groovy\",\n \"name\": \"Groovy\",\n \"import\": () => import('./langs/groovy.mjs')\n },\n {\n \"id\": \"hack\",\n \"name\": \"Hack\",\n \"import\": () => import('./langs/hack.mjs')\n },\n {\n \"id\": \"haml\",\n \"name\": \"Ruby Haml\",\n \"import\": () => import('./langs/haml.mjs')\n },\n {\n \"id\": \"handlebars\",\n \"name\": \"Handlebars\",\n \"aliases\": [\n \"hbs\"\n ],\n \"import\": () => import('./langs/handlebars.mjs')\n },\n {\n \"id\": \"haskell\",\n \"name\": \"Haskell\",\n \"aliases\": [\n \"hs\"\n ],\n \"import\": () => import('./langs/haskell.mjs')\n },\n {\n \"id\": \"haxe\",\n \"name\": \"Haxe\",\n \"import\": () => import('./langs/haxe.mjs')\n },\n {\n \"id\": \"hcl\",\n \"name\": \"HashiCorp HCL\",\n \"import\": () => import('./langs/hcl.mjs')\n },\n {\n \"id\": \"hjson\",\n \"name\": \"Hjson\",\n \"import\": () => import('./langs/hjson.mjs')\n },\n {\n \"id\": \"hlsl\",\n \"name\": \"HLSL\",\n \"import\": () => import('./langs/hlsl.mjs')\n },\n {\n \"id\": \"html\",\n \"name\": \"HTML\",\n \"import\": () => import('./langs/html.mjs')\n },\n {\n \"id\": \"html-derivative\",\n \"name\": \"HTML (Derivative)\",\n \"import\": () => import('./langs/html-derivative.mjs')\n },\n {\n \"id\": \"http\",\n \"name\": \"HTTP\",\n \"import\": () => import('./langs/http.mjs')\n },\n {\n \"id\": \"hxml\",\n \"name\": \"HXML\",\n \"import\": () => import('./langs/hxml.mjs')\n },\n {\n \"id\": \"hy\",\n \"name\": \"Hy\",\n \"import\": () => import('./langs/hy.mjs')\n },\n {\n \"id\": \"imba\",\n \"name\": \"Imba\",\n \"import\": () => import('./langs/imba.mjs')\n },\n {\n \"id\": \"ini\",\n \"name\": \"INI\",\n \"aliases\": [\n \"properties\"\n ],\n \"import\": () => import('./langs/ini.mjs')\n },\n {\n \"id\": \"java\",\n \"name\": \"Java\",\n \"import\": () => import('./langs/java.mjs')\n },\n {\n \"id\": \"javascript\",\n \"name\": \"JavaScript\",\n \"aliases\": [\n \"js\"\n ],\n \"import\": () => import('./langs/javascript.mjs')\n },\n {\n \"id\": \"jinja\",\n \"name\": \"Jinja\",\n \"import\": () => import('./langs/jinja.mjs')\n },\n {\n \"id\": \"jison\",\n \"name\": \"Jison\",\n \"import\": () => import('./langs/jison.mjs')\n },\n {\n \"id\": \"json\",\n \"name\": \"JSON\",\n \"import\": () => import('./langs/json.mjs')\n },\n {\n \"id\": \"json5\",\n \"name\": \"JSON5\",\n \"import\": () => import('./langs/json5.mjs')\n },\n {\n \"id\": \"jsonc\",\n \"name\": \"JSON with Comments\",\n \"import\": () => import('./langs/jsonc.mjs')\n },\n {\n \"id\": \"jsonl\",\n \"name\": \"JSON Lines\",\n \"import\": () => import('./langs/jsonl.mjs')\n },\n {\n \"id\": \"jsonnet\",\n \"name\": \"Jsonnet\",\n \"import\": () => import('./langs/jsonnet.mjs')\n },\n {\n \"id\": \"jssm\",\n \"name\": \"JSSM\",\n \"aliases\": [\n \"fsl\"\n ],\n \"import\": () => import('./langs/jssm.mjs')\n },\n {\n \"id\": \"jsx\",\n \"name\": \"JSX\",\n \"import\": () => import('./langs/jsx.mjs')\n },\n {\n \"id\": \"julia\",\n \"name\": \"Julia\",\n \"aliases\": [\n \"jl\"\n ],\n \"import\": () => import('./langs/julia.mjs')\n },\n {\n \"id\": \"kotlin\",\n \"name\": \"Kotlin\",\n \"aliases\": [\n \"kt\",\n \"kts\"\n ],\n \"import\": () => import('./langs/kotlin.mjs')\n },\n {\n \"id\": \"kusto\",\n \"name\": \"Kusto\",\n \"aliases\": [\n \"kql\"\n ],\n \"import\": () => import('./langs/kusto.mjs')\n },\n {\n \"id\": \"latex\",\n \"name\": \"LaTeX\",\n \"import\": () => import('./langs/latex.mjs')\n },\n {\n \"id\": \"lean\",\n \"name\": \"Lean 4\",\n \"aliases\": [\n \"lean4\"\n ],\n \"import\": () => import('./langs/lean.mjs')\n },\n {\n \"id\": \"less\",\n \"name\": \"Less\",\n \"import\": () => import('./langs/less.mjs')\n },\n {\n \"id\": \"liquid\",\n \"name\": \"Liquid\",\n \"import\": () => import('./langs/liquid.mjs')\n },\n {\n \"id\": \"log\",\n \"name\": \"Log file\",\n \"import\": () => import('./langs/log.mjs')\n },\n {\n \"id\": \"logo\",\n \"name\": \"Logo\",\n \"import\": () => import('./langs/logo.mjs')\n },\n {\n \"id\": \"lua\",\n \"name\": \"Lua\",\n \"import\": () => import('./langs/lua.mjs')\n },\n {\n \"id\": \"luau\",\n \"name\": \"Luau\",\n \"import\": () => import('./langs/luau.mjs')\n },\n {\n \"id\": \"make\",\n \"name\": \"Makefile\",\n \"aliases\": [\n \"makefile\"\n ],\n \"import\": () => import('./langs/make.mjs')\n },\n {\n \"id\": \"markdown\",\n \"name\": \"Markdown\",\n \"aliases\": [\n \"md\"\n ],\n \"import\": () => import('./langs/markdown.mjs')\n },\n {\n \"id\": \"marko\",\n \"name\": \"Marko\",\n \"import\": () => import('./langs/marko.mjs')\n },\n {\n \"id\": \"matlab\",\n \"name\": \"MATLAB\",\n \"import\": () => import('./langs/matlab.mjs')\n },\n {\n \"id\": \"mdc\",\n \"name\": \"MDC\",\n \"import\": () => import('./langs/mdc.mjs')\n },\n {\n \"id\": \"mdx\",\n \"name\": \"MDX\",\n \"import\": () => import('./langs/mdx.mjs')\n },\n {\n \"id\": \"mermaid\",\n \"name\": \"Mermaid\",\n \"import\": () => import('./langs/mermaid.mjs')\n },\n {\n \"id\": \"mojo\",\n \"name\": \"Mojo\",\n \"import\": () => import('./langs/mojo.mjs')\n },\n {\n \"id\": \"move\",\n \"name\": \"Move\",\n \"import\": () => import('./langs/move.mjs')\n },\n {\n \"id\": \"narrat\",\n \"name\": \"Narrat Language\",\n \"aliases\": [\n \"nar\"\n ],\n \"import\": () => import('./langs/narrat.mjs')\n },\n {\n \"id\": \"nextflow\",\n \"name\": \"Nextflow\",\n \"aliases\": [\n \"nf\"\n ],\n \"import\": () => import('./langs/nextflow.mjs')\n },\n {\n \"id\": \"nginx\",\n \"name\": \"Nginx\",\n \"import\": () => import('./langs/nginx.mjs')\n },\n {\n \"id\": \"nim\",\n \"name\": \"Nim\",\n \"import\": () => import('./langs/nim.mjs')\n },\n {\n \"id\": \"nix\",\n \"name\": \"Nix\",\n \"import\": () => import('./langs/nix.mjs')\n },\n {\n \"id\": \"nushell\",\n \"name\": \"nushell\",\n \"aliases\": [\n \"nu\"\n ],\n \"import\": () => import('./langs/nushell.mjs')\n },\n {\n \"id\": \"objective-c\",\n \"name\": \"Objective-C\",\n \"aliases\": [\n \"objc\"\n ],\n \"import\": () => import('./langs/objective-c.mjs')\n },\n {\n \"id\": \"objective-cpp\",\n \"name\": \"Objective-C++\",\n \"import\": () => import('./langs/objective-cpp.mjs')\n },\n {\n \"id\": \"ocaml\",\n \"name\": \"OCaml\",\n \"import\": () => import('./langs/ocaml.mjs')\n },\n {\n \"id\": \"pascal\",\n \"name\": \"Pascal\",\n \"import\": () => import('./langs/pascal.mjs')\n },\n {\n \"id\": \"perl\",\n \"name\": \"Perl\",\n \"import\": () => import('./langs/perl.mjs')\n },\n {\n \"id\": \"php\",\n \"name\": \"PHP\",\n \"import\": () => import('./langs/php.mjs')\n },\n {\n \"id\": \"plsql\",\n \"name\": \"PL/SQL\",\n \"import\": () => import('./langs/plsql.mjs')\n },\n {\n \"id\": \"po\",\n \"name\": \"Gettext PO\",\n \"aliases\": [\n \"pot\",\n \"potx\"\n ],\n \"import\": () => import('./langs/po.mjs')\n },\n {\n \"id\": \"postcss\",\n \"name\": \"PostCSS\",\n \"import\": () => import('./langs/postcss.mjs')\n },\n {\n \"id\": \"powerquery\",\n \"name\": \"PowerQuery\",\n \"import\": () => import('./langs/powerquery.mjs')\n },\n {\n \"id\": \"powershell\",\n \"name\": \"PowerShell\",\n \"aliases\": [\n \"ps\",\n \"ps1\"\n ],\n \"import\": () => import('./langs/powershell.mjs')\n },\n {\n \"id\": \"prisma\",\n \"name\": \"Prisma\",\n \"import\": () => import('./langs/prisma.mjs')\n },\n {\n \"id\": \"prolog\",\n \"name\": \"Prolog\",\n \"import\": () => import('./langs/prolog.mjs')\n },\n {\n \"id\": \"proto\",\n \"name\": \"Protocol Buffer 3\",\n \"aliases\": [\n \"protobuf\"\n ],\n \"import\": () => import('./langs/proto.mjs')\n },\n {\n \"id\": \"pug\",\n \"name\": \"Pug\",\n \"aliases\": [\n \"jade\"\n ],\n \"import\": () => import('./langs/pug.mjs')\n },\n {\n \"id\": \"puppet\",\n \"name\": \"Puppet\",\n \"import\": () => import('./langs/puppet.mjs')\n },\n {\n \"id\": \"purescript\",\n \"name\": \"PureScript\",\n \"import\": () => import('./langs/purescript.mjs')\n },\n {\n \"id\": \"python\",\n \"name\": \"Python\",\n \"aliases\": [\n \"py\"\n ],\n \"import\": () => import('./langs/python.mjs')\n },\n {\n \"id\": \"qml\",\n \"name\": \"QML\",\n \"import\": () => import('./langs/qml.mjs')\n },\n {\n \"id\": \"qmldir\",\n \"name\": \"QML Directory\",\n \"import\": () => import('./langs/qmldir.mjs')\n },\n {\n \"id\": \"qss\",\n \"name\": \"Qt Style Sheets\",\n \"import\": () => import('./langs/qss.mjs')\n },\n {\n \"id\": \"r\",\n \"name\": \"R\",\n \"import\": () => import('./langs/r.mjs')\n },\n {\n \"id\": \"racket\",\n \"name\": \"Racket\",\n \"import\": () => import('./langs/racket.mjs')\n },\n {\n \"id\": \"raku\",\n \"name\": \"Raku\",\n \"aliases\": [\n \"perl6\"\n ],\n \"import\": () => import('./langs/raku.mjs')\n },\n {\n \"id\": \"razor\",\n \"name\": \"ASP.NET Razor\",\n \"import\": () => import('./langs/razor.mjs')\n },\n {\n \"id\": \"reg\",\n \"name\": \"Windows Registry Script\",\n \"import\": () => import('./langs/reg.mjs')\n },\n {\n \"id\": \"regexp\",\n \"name\": \"RegExp\",\n \"aliases\": [\n \"regex\"\n ],\n \"import\": () => import('./langs/regexp.mjs')\n },\n {\n \"id\": \"rel\",\n \"name\": \"Rel\",\n \"import\": () => import('./langs/rel.mjs')\n },\n {\n \"id\": \"riscv\",\n \"name\": \"RISC-V\",\n \"import\": () => import('./langs/riscv.mjs')\n },\n {\n \"id\": \"rst\",\n \"name\": \"reStructuredText\",\n \"import\": () => import('./langs/rst.mjs')\n },\n {\n \"id\": \"ruby\",\n \"name\": \"Ruby\",\n \"aliases\": [\n \"rb\"\n ],\n \"import\": () => import('./langs/ruby.mjs')\n },\n {\n \"id\": \"rust\",\n \"name\": \"Rust\",\n \"aliases\": [\n \"rs\"\n ],\n \"import\": () => import('./langs/rust.mjs')\n },\n {\n \"id\": \"sas\",\n \"name\": \"SAS\",\n \"import\": () => import('./langs/sas.mjs')\n },\n {\n \"id\": \"sass\",\n \"name\": \"Sass\",\n \"import\": () => import('./langs/sass.mjs')\n },\n {\n \"id\": \"scala\",\n \"name\": \"Scala\",\n \"import\": () => import('./langs/scala.mjs')\n },\n {\n \"id\": \"scheme\",\n \"name\": \"Scheme\",\n \"import\": () => import('./langs/scheme.mjs')\n },\n {\n \"id\": \"scss\",\n \"name\": \"SCSS\",\n \"import\": () => import('./langs/scss.mjs')\n },\n {\n \"id\": \"shaderlab\",\n \"name\": \"ShaderLab\",\n \"aliases\": [\n \"shader\"\n ],\n \"import\": () => import('./langs/shaderlab.mjs')\n },\n {\n \"id\": \"shellscript\",\n \"name\": \"Shell\",\n \"aliases\": [\n \"bash\",\n \"sh\",\n \"shell\",\n \"zsh\"\n ],\n \"import\": () => import('./langs/shellscript.mjs')\n },\n {\n \"id\": \"shellsession\",\n \"name\": \"Shell Session\",\n \"aliases\": [\n \"console\"\n ],\n \"import\": () => import('./langs/shellsession.mjs')\n },\n {\n \"id\": \"smalltalk\",\n \"name\": \"Smalltalk\",\n \"import\": () => import('./langs/smalltalk.mjs')\n },\n {\n \"id\": \"solidity\",\n \"name\": \"Solidity\",\n \"import\": () => import('./langs/solidity.mjs')\n },\n {\n \"id\": \"soy\",\n \"name\": \"Closure Templates\",\n \"aliases\": [\n \"closure-templates\"\n ],\n \"import\": () => import('./langs/soy.mjs')\n },\n {\n \"id\": \"sparql\",\n \"name\": \"SPARQL\",\n \"import\": () => import('./langs/sparql.mjs')\n },\n {\n \"id\": \"splunk\",\n \"name\": \"Splunk Query Language\",\n \"aliases\": [\n \"spl\"\n ],\n \"import\": () => import('./langs/splunk.mjs')\n },\n {\n \"id\": \"sql\",\n \"name\": \"SQL\",\n \"import\": () => import('./langs/sql.mjs')\n },\n {\n \"id\": \"ssh-config\",\n \"name\": \"SSH Config\",\n \"import\": () => import('./langs/ssh-config.mjs')\n },\n {\n \"id\": \"stata\",\n \"name\": \"Stata\",\n \"import\": () => import('./langs/stata.mjs')\n },\n {\n \"id\": \"stylus\",\n \"name\": \"Stylus\",\n \"aliases\": [\n \"styl\"\n ],\n \"import\": () => import('./langs/stylus.mjs')\n },\n {\n \"id\": \"svelte\",\n \"name\": \"Svelte\",\n \"import\": () => import('./langs/svelte.mjs')\n },\n {\n \"id\": \"swift\",\n \"name\": \"Swift\",\n \"import\": () => import('./langs/swift.mjs')\n },\n {\n \"id\": \"system-verilog\",\n \"name\": \"SystemVerilog\",\n \"import\": () => import('./langs/system-verilog.mjs')\n },\n {\n \"id\": \"systemd\",\n \"name\": \"Systemd Units\",\n \"import\": () => import('./langs/systemd.mjs')\n },\n {\n \"id\": \"tasl\",\n \"name\": \"Tasl\",\n \"import\": () => import('./langs/tasl.mjs')\n },\n {\n \"id\": \"tcl\",\n \"name\": \"Tcl\",\n \"import\": () => import('./langs/tcl.mjs')\n },\n {\n \"id\": \"templ\",\n \"name\": \"Templ\",\n \"import\": () => import('./langs/templ.mjs')\n },\n {\n \"id\": \"terraform\",\n \"name\": \"Terraform\",\n \"aliases\": [\n \"tf\",\n \"tfvars\"\n ],\n \"import\": () => import('./langs/terraform.mjs')\n },\n {\n \"id\": \"tex\",\n \"name\": \"TeX\",\n \"import\": () => import('./langs/tex.mjs')\n },\n {\n \"id\": \"toml\",\n \"name\": \"TOML\",\n \"import\": () => import('./langs/toml.mjs')\n },\n {\n \"id\": \"ts-tags\",\n \"name\": \"TypeScript with Tags\",\n \"aliases\": [\n \"lit\"\n ],\n \"import\": () => import('./langs/ts-tags.mjs')\n },\n {\n \"id\": \"tsv\",\n \"name\": \"TSV\",\n \"import\": () => import('./langs/tsv.mjs')\n },\n {\n \"id\": \"tsx\",\n \"name\": \"TSX\",\n \"import\": () => import('./langs/tsx.mjs')\n },\n {\n \"id\": \"turtle\",\n \"name\": \"Turtle\",\n \"import\": () => import('./langs/turtle.mjs')\n },\n {\n \"id\": \"twig\",\n \"name\": \"Twig\",\n \"import\": () => import('./langs/twig.mjs')\n },\n {\n \"id\": \"typescript\",\n \"name\": \"TypeScript\",\n \"aliases\": [\n \"ts\"\n ],\n \"import\": () => import('./langs/typescript.mjs')\n },\n {\n \"id\": \"typespec\",\n \"name\": \"TypeSpec\",\n \"aliases\": [\n \"tsp\"\n ],\n \"import\": () => import('./langs/typespec.mjs')\n },\n {\n \"id\": \"typst\",\n \"name\": \"Typst\",\n \"aliases\": [\n \"typ\"\n ],\n \"import\": () => import('./langs/typst.mjs')\n },\n {\n \"id\": \"v\",\n \"name\": \"V\",\n \"import\": () => import('./langs/v.mjs')\n },\n {\n \"id\": \"vala\",\n \"name\": \"Vala\",\n \"import\": () => import('./langs/vala.mjs')\n },\n {\n \"id\": \"vb\",\n \"name\": \"Visual Basic\",\n \"aliases\": [\n \"cmd\"\n ],\n \"import\": () => import('./langs/vb.mjs')\n },\n {\n \"id\": \"verilog\",\n \"name\": \"Verilog\",\n \"import\": () => import('./langs/verilog.mjs')\n },\n {\n \"id\": \"vhdl\",\n \"name\": \"VHDL\",\n \"import\": () => import('./langs/vhdl.mjs')\n },\n {\n \"id\": \"viml\",\n \"name\": \"Vim Script\",\n \"aliases\": [\n \"vim\",\n \"vimscript\"\n ],\n \"import\": () => import('./langs/viml.mjs')\n },\n {\n \"id\": \"vue\",\n \"name\": \"Vue\",\n \"import\": () => import('./langs/vue.mjs')\n },\n {\n \"id\": \"vue-html\",\n \"name\": \"Vue HTML\",\n \"import\": () => import('./langs/vue-html.mjs')\n },\n {\n \"id\": \"vyper\",\n \"name\": \"Vyper\",\n \"aliases\": [\n \"vy\"\n ],\n \"import\": () => import('./langs/vyper.mjs')\n },\n {\n \"id\": \"wasm\",\n \"name\": \"WebAssembly\",\n \"import\": () => import('./langs/wasm.mjs')\n },\n {\n \"id\": \"wenyan\",\n \"name\": \"Wenyan\",\n \"aliases\": [\n \"\\u6587\\u8A00\"\n ],\n \"import\": () => import('./langs/wenyan.mjs')\n },\n {\n \"id\": \"wgsl\",\n \"name\": \"WGSL\",\n \"import\": () => import('./langs/wgsl.mjs')\n },\n {\n \"id\": \"wikitext\",\n \"name\": \"Wikitext\",\n \"aliases\": [\n \"mediawiki\",\n \"wiki\"\n ],\n \"import\": () => import('./langs/wikitext.mjs')\n },\n {\n \"id\": \"wolfram\",\n \"name\": \"Wolfram\",\n \"aliases\": [\n \"wl\"\n ],\n \"import\": () => import('./langs/wolfram.mjs')\n },\n {\n \"id\": \"xml\",\n \"name\": \"XML\",\n \"import\": () => import('./langs/xml.mjs')\n },\n {\n \"id\": \"xsl\",\n \"name\": \"XSL\",\n \"import\": () => import('./langs/xsl.mjs')\n },\n {\n \"id\": \"yaml\",\n \"name\": \"YAML\",\n \"aliases\": [\n \"yml\"\n ],\n \"import\": () => import('./langs/yaml.mjs')\n },\n {\n \"id\": \"zenscript\",\n \"name\": \"ZenScript\",\n \"import\": () => import('./langs/zenscript.mjs')\n },\n {\n \"id\": \"zig\",\n \"name\": \"Zig\",\n \"import\": () => import('./langs/zig.mjs')\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 getWasmInlined = async (info) => {\n return import('shiki/wasm').then((wasm) => wasm.default(info));\n};\n\nexport { getWasmInlined as g };\n","const bundledThemesInfo = [\n {\n \"id\": \"andromeeda\",\n \"displayName\": \"Andromeeda\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/andromeeda.mjs')\n },\n {\n \"id\": \"aurora-x\",\n \"displayName\": \"Aurora X\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/aurora-x.mjs')\n },\n {\n \"id\": \"ayu-dark\",\n \"displayName\": \"Ayu Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/ayu-dark.mjs')\n },\n {\n \"id\": \"catppuccin-frappe\",\n \"displayName\": \"Catppuccin Frapp\\xE9\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-frappe.mjs')\n },\n {\n \"id\": \"catppuccin-latte\",\n \"displayName\": \"Catppuccin Latte\",\n \"type\": \"light\",\n \"import\": () => import('./themes/catppuccin-latte.mjs')\n },\n {\n \"id\": \"catppuccin-macchiato\",\n \"displayName\": \"Catppuccin Macchiato\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-macchiato.mjs')\n },\n {\n \"id\": \"catppuccin-mocha\",\n \"displayName\": \"Catppuccin Mocha\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-mocha.mjs')\n },\n {\n \"id\": \"dark-plus\",\n \"displayName\": \"Dark Plus\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dark-plus.mjs')\n },\n {\n \"id\": \"dracula\",\n \"displayName\": \"Dracula Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula.mjs')\n },\n {\n \"id\": \"dracula-soft\",\n \"displayName\": \"Dracula Theme Soft\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula-soft.mjs')\n },\n {\n \"id\": \"everforest-dark\",\n \"displayName\": \"Everforest Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/everforest-dark.mjs')\n },\n {\n \"id\": \"everforest-light\",\n \"displayName\": \"Everforest Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/everforest-light.mjs')\n },\n {\n \"id\": \"github-dark\",\n \"displayName\": \"GitHub Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark.mjs')\n },\n {\n \"id\": \"github-dark-default\",\n \"displayName\": \"GitHub Dark Default\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-default.mjs')\n },\n {\n \"id\": \"github-dark-dimmed\",\n \"displayName\": \"GitHub Dark Dimmed\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-dimmed.mjs')\n },\n {\n \"id\": \"github-dark-high-contrast\",\n \"displayName\": \"GitHub Dark High Contrast\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-high-contrast.mjs')\n },\n {\n \"id\": \"github-light\",\n \"displayName\": \"GitHub Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light.mjs')\n },\n {\n \"id\": \"github-light-default\",\n \"displayName\": \"GitHub Light Default\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-default.mjs')\n },\n {\n \"id\": \"github-light-high-contrast\",\n \"displayName\": \"GitHub Light High Contrast\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-high-contrast.mjs')\n },\n {\n \"id\": \"houston\",\n \"displayName\": \"Houston\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/houston.mjs')\n },\n {\n \"id\": \"laserwave\",\n \"displayName\": \"LaserWave\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/laserwave.mjs')\n },\n {\n \"id\": \"light-plus\",\n \"displayName\": \"Light Plus\",\n \"type\": \"light\",\n \"import\": () => import('./themes/light-plus.mjs')\n },\n {\n \"id\": \"material-theme\",\n \"displayName\": \"Material Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme.mjs')\n },\n {\n \"id\": \"material-theme-darker\",\n \"displayName\": \"Material Theme Darker\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-darker.mjs')\n },\n {\n \"id\": \"material-theme-lighter\",\n \"displayName\": \"Material Theme Lighter\",\n \"type\": \"light\",\n \"import\": () => import('./themes/material-theme-lighter.mjs')\n },\n {\n \"id\": \"material-theme-ocean\",\n \"displayName\": \"Material Theme Ocean\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-ocean.mjs')\n },\n {\n \"id\": \"material-theme-palenight\",\n \"displayName\": \"Material Theme Palenight\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-palenight.mjs')\n },\n {\n \"id\": \"min-dark\",\n \"displayName\": \"Min Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/min-dark.mjs')\n },\n {\n \"id\": \"min-light\",\n \"displayName\": \"Min Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/min-light.mjs')\n },\n {\n \"id\": \"monokai\",\n \"displayName\": \"Monokai\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/monokai.mjs')\n },\n {\n \"id\": \"night-owl\",\n \"displayName\": \"Night Owl\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/night-owl.mjs')\n },\n {\n \"id\": \"nord\",\n \"displayName\": \"Nord\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/nord.mjs')\n },\n {\n \"id\": \"one-dark-pro\",\n \"displayName\": \"One Dark Pro\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/one-dark-pro.mjs')\n },\n {\n \"id\": \"one-light\",\n \"displayName\": \"One Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/one-light.mjs')\n },\n {\n \"id\": \"plastic\",\n \"displayName\": \"Plastic\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/plastic.mjs')\n },\n {\n \"id\": \"poimandres\",\n \"displayName\": \"Poimandres\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/poimandres.mjs')\n },\n {\n \"id\": \"red\",\n \"displayName\": \"Red\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/red.mjs')\n },\n {\n \"id\": \"rose-pine\",\n \"displayName\": \"Ros\\xE9 Pine\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine.mjs')\n },\n {\n \"id\": \"rose-pine-dawn\",\n \"displayName\": \"Ros\\xE9 Pine Dawn\",\n \"type\": \"light\",\n \"import\": () => import('./themes/rose-pine-dawn.mjs')\n },\n {\n \"id\": \"rose-pine-moon\",\n \"displayName\": \"Ros\\xE9 Pine Moon\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine-moon.mjs')\n },\n {\n \"id\": \"slack-dark\",\n \"displayName\": \"Slack Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/slack-dark.mjs')\n },\n {\n \"id\": \"slack-ochin\",\n \"displayName\": \"Slack Ochin\",\n \"type\": \"light\",\n \"import\": () => import('./themes/slack-ochin.mjs')\n },\n {\n \"id\": \"snazzy-light\",\n \"displayName\": \"Snazzy Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/snazzy-light.mjs')\n },\n {\n \"id\": \"solarized-dark\",\n \"displayName\": \"Solarized Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/solarized-dark.mjs')\n },\n {\n \"id\": \"solarized-light\",\n \"displayName\": \"Solarized Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/solarized-light.mjs')\n },\n {\n \"id\": \"synthwave-84\",\n \"displayName\": \"Synthwave '84\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/synthwave-84.mjs')\n },\n {\n \"id\": \"tokyo-night\",\n \"displayName\": \"Tokyo Night\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/tokyo-night.mjs')\n },\n {\n \"id\": \"vesper\",\n \"displayName\": \"Vesper\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vesper.mjs')\n },\n {\n \"id\": \"vitesse-black\",\n \"displayName\": \"Vitesse Black\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-black.mjs')\n },\n {\n \"id\": \"vitesse-dark\",\n \"displayName\": \"Vitesse Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-dark.mjs')\n },\n {\n \"id\": \"vitesse-light\",\n \"displayName\": \"Vitesse Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/vitesse-light.mjs')\n }\n];\nconst bundledThemes = Object.fromEntries(bundledThemesInfo.map((i) => [i.id, i.import]));\n\nexport { bundledThemes, bundledThemesInfo };\n","var FontStyle;\n(function (FontStyle) {\n FontStyle[FontStyle[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle[FontStyle[\"None\"] = 0] = \"None\";\n FontStyle[FontStyle[\"Italic\"] = 1] = \"Italic\";\n FontStyle[FontStyle[\"Bold\"] = 2] = \"Bold\";\n FontStyle[FontStyle[\"Underline\"] = 4] = \"Underline\";\n})(FontStyle || (FontStyle = {}));\n\nexport { FontStyle };\n","/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html, property, CSSResultArray, TemplateResult, PropertyValueMap } from 'lit-element';\nimport { customElement, state } from 'lit/decorators.js';\nimport { styles } from './nile-highlighter.css';\nimport NileElement from '../internal/nile-element';\n\nimport { codeToHtml } from 'shiki'\nimport { ShikiTheme, ShikiLanguage } from './theme-list';\n\n\n/**\n * Nile highlighter component.\n *\n * @tag nile-highlighter\n *\n */\n@customElement('nile-highlighter')\nexport class NileHighlighter extends NileElement {\n\n\t@property({ type: String}) code = ``;\n\t\n\t@property({ type: String, reflect:true }) language : ShikiLanguage = 'javascript';\n\n\t@property({ type: String, reflect:true }) theme: ShikiTheme = 'min-light';\n\n\t@state() highlightedCode = '';\n\t\n\t/**\n\t * The styles for nile-highlighter\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t/* #endregion */\n\n\n\tprotected async updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>) {\n\t\tif (changedProperties.has('code') || changedProperties.has('language') || changedProperties.has('theme')) {\n\t\t\tthis.highlightedCode = await codeToHtml(this.code, {\n\t\t\t\tlang: this.language,\n\t\t\t\ttheme: this.theme\n\t\t\t})\n\t\t\tthis.requestUpdate();\n\t\t}\n\t}\n\t/* #region Methods */\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t\t\t<div class=\"code-container\" .innerHTML=${this.highlightedCode}></div>\n\t\t\t`;\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileHighlighter;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'nile-highlighter': NileHighlighter;\n\t}\n}"],"names":["doClone","something","Array","isArray","arr","r","i","len","length","cloneArray","_typeof","obj","key","cloneObj","mergeObjects","target","sources","forEach","source","basename","path","idx","lastIndexOf","substring","substr","strcmp","a","b","strArrCmp","len1","len2","res","isValidHexColor","hex","test","escapeRegExpCharacters","value","replace","_matchesScope","scopeName","scopePattern","startsWith","createMatchers","selector","matchesName","results","tokenizer","input","regex","match","exec","next","newTokenizer","token","priority","charAt","console","log","matcher","parseConjunction","push","parseOperand","expressionToNegate","matcherInput","expressionInParents","matchers","some","matcher2","parseInnerExpression","isIdentifier","identifiers","every","disposeOnigString","str","dispose","collectReferencesOfReference","reference","baseGrammarScopeName","repo","result","selfGrammar","lookup","Error","baseGrammar","TopLevelRuleReference","collectExternalReferencesInTopLevelRule","collectExternalReferencesInTopLevelRepositoryRule","ruleName","repository","injections","_iterator4","s","_step4","n","done","injection","add","err","e","f","context","collectExternalReferencesInRules","patterns","Object","values","rules","_iterator5","_step5","rule","visitedRule","has","patternRepository","_objectSpread","include","parseInclude","kind","newContext","TopLevelRepositoryRuleReference","BaseReference","SelfReference","indexOfSharp","indexOf","TopLevelReference","RelativeReference","TopLevelRepositoryReference","_tokenizeString","grammar","lineText","isFirstLine","linePos","stack","lineTokens","checkWhileConditions","timeLimit","lineLength","content","STOP","anchorPosition","whileCheckResult","beginRuleCapturedEOL","whileRules","node","pop","nodeRule","getRule","BeginWhileRule","whileRule","_jt","prepareRuleWhileSearch","endRule","ruleScanner","findOptions","findNextMatchSync","ruleId","whileRuleId","captureIndices","produce","start","handleCaptures","whileCaptures","end","_checkWhileConditions","startTime","Date","now","TokenizeStringResult","scanNext","matchResult","prepareRuleSearch","matchedRuleId","matchRule","getInjections","injectionResult","bestMatchRuleId","bestMatchRating","Number","MAX_VALUE","bestMatchCaptureIndices","bestMatchResultPriority","scopes","contentNameScopesList","getScopeNames","matchRating","priorityMatch","matchInjections","matchResultScore","injectionResultScore","matchRuleOrInjections","hasAdvanced","endRuleId","poppedRule","withContentNameScopesList","nameScopesList","endCaptures","popped","parent","getAnchorPos","getEnterPos","_rule","beforePush","getName","pushAttributed","BeginEndRule","pushedRule","beginCaptures","contentName","getContentName","endHasBackReferences","withEndRule","getEndWithResolvedBackReferences","hasSameRuleAs","whileHasBackReferences","getWhileWithResolvedBackReferences","captures","safePop","endRegexSource","allowA","allowG","compileAG","compileWhileAG","lineTextContent","Math","min","localStack","maxEnd","captureRule","captureIndex","endPos","produceFromScopes","retokenizeCapturedWithRuleId","stackClone","onigSubStr","createOnigString","captureRuleScopeName","captureRuleScopesList","LocalStackElement","collectInjections","ruleFactoryHelper","nameMatcher","RuleFactory","getCompiledRuleId","_iterator9","_createForOfIteratorHelper","_step9","debugSelector","identifers","lastIndex","identifier","scopesAreMatching","thisScopeName","initGrammar","base","$self","$vscodeTextmateLocation","name","$base","splitLines","code","preserveEnding","parts","split","index","lines","_n26","line","isPlainLang","lang","includes","isSpecialLang","isNoneTheme","theme","isSpecialTheme","addClassToHast","className","properties","class","targets","_iterator18","c","_step18","async","normalizeGetter","p","_regeneratorRuntime","wrap","_callee14$","_context15","prev","abrupt","Promise","resolve","then","stop","_callee14","_Gt","apply","arguments","resolveColorReplacements","options","replacements","colorReplacements","themeName","_i18","_Object$entries","entries","_Object$entries$_i","_slicedToArray","assign","applyColorReplacements","color","toLowerCase","getTokenStyleObject","styles","bgColor","fontStyle","FontStyle","Italic","Bold","Underline","stringifyTokenStyle","map","_ref4","_ref5","concat","join","transformerDecorations","WeakMap","getContext","shiki","meta","normalizePosition","ShikiError","converter","indexToPos","offset","undefined","JSON","stringify","character","posToIndex","_ref6","_ref7","_iterator19","_step19","createPositionConverter","decorations","d","items","foo","j","bar","isFooHasBarStart","isFooHasBarEnd","isBarHasFooStart","isBarHasFooEnd","verifyIntersections","set","get","tokens","_this$options$decorat","this","splitted","breakpoints","sorted","from","Set","sort","flatMap","breakpointsInToken","filter","offsets","lastOffset","_iterator20","_step20","slice","splitToken","splitTokens","codeEl","ctx","children","type","tagName","applyLineSection","decoration","lineEl","text","startIndex","endIndex","POSITIVE_INFINITY","stringify$2","alwaysWrap","wrapper","applyDecoration","splice","applyLine","el","_e$properties","transform","lineApplies","_iterator21","_loop2","_i21","unshift","_step21","_loop","getTransformers","_toConsumableArray","transformers","builtInTransformers","findSequence","position","nextEscape","nextClose","sequence","startPosition","parseColor","colorMode","rgb","x","parseInt","isNaN","colorIndex","parseSequence","commands","codeInt","namedColors","_Zt","_Zt3","createColorPalette","defaultNamedColorsMap","namedColorsMap","namedColor","rgbColor","max","toString","padStart","colorTable","tableColor","levels","g","level","getColorTable","tokenizeAnsiWithTheme","fileContents","colorPalette","fromEntries","_t$colors","colors","toUpperCase","parser","foreground","background","decorations2","parse","findResult","_iterator22","_step22","styleToken","clear","_iterator23","_step23","createAnsiSequenceParser","bg","fg","hexMatch","alpha","round","cssVarMatch","dimColor","None","l","codeToTokensBase","internal","_n$lang","getLoadedThemes","_n$theme","_t$setTheme","setTheme","colorMap","_grammar","getLanguage","grammarState","_tokenizeWithTheme","tokenizeWithTheme","tokenizeMaxLineLength","_r$tokenizeMaxLineLen","_r$tokenizeTimeLimit","tokenizeTimeLimit","stateStack","state","GrammarState","_stack","getGrammarStack","grammarContextCode","INITIAL","actual","final","_a$_t","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","includeExplanation","tokenizeLine","tokenizeLine2","tokensLength","nextStartIndex","metadata","EncodedTokenMetadata","getForeground","getFontStyle","themeSettingsSelectors","settings","_step24","_iterator24","setting","selectors","scope","trim","explanation","tokenWithScopes","tokenWithScopesText","explainThemeScopesFull","ruleStack","themeSelectors","themeMatches","explainThemeScope","matchesOne","matches","parentScopes","selectorParentIndex","parentIndex","_iterator25","_step25","_step25$value","_iterator26","_step26","selectorPieces","codeToTokensWithThemes","themes","outThemes","count","_loop3","_i30","t","outLines","indexes","current","minLength","syncThemesTokenization","mergedTokens","lineIdx","_token","tokenIdx","mergedToken","variants","themeIdx","_t$e$o","_","__","___","codeToTokens","rootStyle","_n$defaultColor","defaultColor","_n$cssVariablePrefix","cssVariablePrefix","themeTokens","find","themeRegs","getTheme","themesOrder","merged","variantsOrder","styleKeys","keys","mergedStyles","reduce","acc","cur","_step27","_iterator27","keyName","varKey","htmlStyle","mergeToken","themeColorReplacements","_theme","codeToHast","_options","transformerContext","_code","_iterator28","_step28","transformer","preprocess","call","_me","_n$mergeWhitespaces","mergeWhitespaces","newLine","carryOnContent","firstOffset","couldMerge","mergeWhitespaceTokens","_e40","leading","trailing","expanded","splitWhitespaceTokens","contextSource","_iterator29","_step29","root","structure","_e$structure","preNode","style","tabindex","_ref8","_ref9","codeNode","lineNodes","pre","lineNode","col","_iterator30","_step30","tokenNode","_iterator32","_step32","span","_iterator31","_step31","_iterator33","_step33","_iterator34","_step34","_iterator35","_step35","tokensToHast","merge","definitions","space","property","normal","Schema","normalize","increment","Le","pow","powers","mark","create","definition","prop","own$3","info","DefinedInfo","attributes","mustUseProperty","attribute","caseSensitiveTransform","caseInsensitiveTransform","kebab","$0","camelcase","core","subset","groups","RegExp","charactersToExpression","basic","escapeOnly","pair","all","format","charCodeAt","formatSmart","named","numeric","omit","String","fromCharCode","toHexadecimal","omitOptionalSemicolons","useNamedReferences","useShortestReferences","own$1","characters","characterEntitiesLegacy","dangerous","toNamed","decimal","toDecimal","stringifyEntities","ccount","TypeError","stringify$1","padRight","padLeft","whitespace","thing","empty","re","siblings","includeWhitespace","emptyChildren$1","omission","handlers","own","headOrColgroupOrCaption","siblingAfter","rubyElement","cells","serializeAttribute","schema","Type","Info","valid","rest","dash","dashes","cap","allowParseErrors","y","allowDangerousCharacters","quote","overloadedBoolean","Boolean","characterReferences","constants","commaSeparated","tightCommaSeparatedLists","collapseEmptyAttributes","preferUnquoted","unquoted","quoteSmart","alternative","single","double","textEntitySubset","one","handle","emptyChildren","codeToHtml","tree","options_","emptyOptions","omitOptionalTags","tightAttributes","upperDoctype","tightDoctype","bogusComments","tightSelfClosing","allowDangerousHtml","voids","htmlVoidElements","emptyCharacterReferences","closeSelfClosing","closeEmptyElements","svg","html$2","toHtml","_iterator36","_step36","postprocess","_emscripten_get_now","performance","main","init","updateGlobalBufferAndViews","emscripten_realloc_buffer","UTF8ToString","ptr","maxBytesToRead","heapOrArray","endIdx","endPtr","buffer","UTF8Decoder","decode","subarray","u0","u1","u2","ch","UTF8ArrayToString","binding","HEAPU8","size","wasmMemory","grow","byteLength","_unused","buf","Uint8Array","HEAPU32","Uint32Array","TextDecoder","asmLibraryArg","emscripten_get_now","emscripten_memcpy_big","dest","src","num","copyWithin","emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","alignUp","fd_write","_context17","env","wasi_snapshot_preview1","exports","memory","_context16","_callee15","createWasm","_callee16","_In","loadWasm","initPromise","_callee3$","_context4","instance","instantiator","dataOrOptions","isInstantiatorModule","data","isDataOptionsObject","Response","isResponse","ArrayBuffer","isView","Buffer","isBuffer","SharedArrayBuffer","isArrayBuffer","WebAssembly","Module","_makeArrayBufferLoader","default","instantiateStreaming","importObject","_ref12","_asyncToGenerator","arrayBuffer","instantiate","_context3","_callee2","_x5","_makeResponseNonStreamingLoader","_callee3","onigBinding","_load","createWasmOnigEngine","createScanner","OnigScanner","createString","OnigString","_context18","_callee17","_Wn","normalizeTheme","rawTheme","RESOLVED_KEY","tokenColors","_t96$settings","_t96$settings2","_e$colors","_e$colors2","globalSetting","VSCODE_FALLBACK_EDITOR_FG","light","dark","VSCODE_FALLBACK_EDITOR_BG","replacementCount","replacementMap","Map","getReplacementColor","_e$colorReplacements","_t$settings","_t$settings2","replaceFg","replaceBg","clone","replacement","_i37","_Object$keys2","_e$colors$_t","defineProperty","enumerable","writable","resolveLangs","langs","_callee19$","_context20","t0","flat","t3","_callee19","resolveThemes","_callee21$","_context22","_context21","t1","_Qn","createShikiInternal","_args14","engine","_defaultWasmLoader","instancesCount","warnings","warn","isDisposed","resolver","Resolver","_registry","Registry","langAlias","_lastTheme","ensureNotDisposed","loadLanguageSync","loadLanguages","loadThemeSync","_len7","_args13","_iterator40","_step40","loadTheme","_context25","_callee24","_c8","_defineProperty","getColorMap","_lang","getGrammar","getLoadedLanguages","loadLanguage","Symbol","createShikiInternalSync","_context26","_callee25","createHighlighterCore","getLastGrammarState","_n$lang2","_n$theme2","_t$setTheme2","getInternalContext","_context27","_callee26","_ri","createdBundledHighlighter","arg1","arg2","arg3","bundledLanguages","bundledThemes","o","_ref23","resolveLang","resolveTheme","bundle","_themes","_len4","_len5","_x9","createSingletonShorthands","createHighlighter","getSingletonHighlighter","_shiki","_context7","_callee6","makeSingletonHighlighter","_codeToHtml","_callee7","_callee8","_codeToTokens","_callee9","_callee10","_callee11","_callee12","setters","_tslib","bundledLanguagesInfo","id","import","_import","_context","aliases","getWasmInlined","wasm","bundledThemesInfo","displayName","NotSet","CAPTURING_REGEX_SOURCE","RegexSource","hasCaptures","regexSource","replaceCaptures","captureSource","commandIndex","command","capture","CachedFn","k","fn","cache","_createClass","Theme","S","_colorMap","_defaults","_root","_cachedMatchRoot","getDefaults","scopePath","effectiveRule","v","scopeMustMatch","_scopePathMatchesParentScopes","StyleAttributes","createFromRawTheme","createFromParsedTheme","resultLen","entry","_scope","segments","lenJ","reverse","ParsedThemeRule","parseTheme","parsedThemeRules","defaultFontStyle","defaultForeground","defaultBackground","incomingDefaults","shift","ColorMap","defaults","getId","ThemeTrieElement","ThemeTrieElementRule","insert","resolveParsedThemeRules","ScopeStack","_ScopeStack","getSegments","item","_extends","other","extends","getExtensionIfDefined","scopeNames","_iterator","_step","L","foregroundId","backgroundId","T","A","_classCallCheck","_lastColorId","_id2color","_color2id","_isFrozen","emptyParentScopes","freeze","scopeDepth","_ThemeTrieElementRule","acceptOverwrite","cloneArr","_mainRule","rulesWithParentScopes","_children","_rulesWithParentScopes","head","tail","dotIndex","hasOwnProperty","_ThemeTrieElement","_cmpBySpecificity","_doInsertHere","child","aParentIndex","bParentIndex","parentScopeLengthDiff","toBinaryStr","encodedTokenAttributes","print","languageId","_EncodedTokenMetadata","getLanguageId","tokenType","getTokenType","getBackground","containsBalancedBrackets","_languageId","_tokenType","_containsBalancedBracketsBit","_fontStyle","_foreground","_background","$","toKey","B","ExternalReferenceCollector","I","constructor","_references","_seenReferenceKeys","references","ScopeDependencyProcessor","G","initialScopeName","seenFullScopeRequests","seenPartialScopeRequests","Q","processQueue","q","deps","_iterator2","_step2","dep","_iterator3","_step3","F","U","W","V","J","HAS_BACK_REFERENCES","BACK_REFERENCING_END","Rule","tt","$location","_name","_nameIsCapturing","_contentName","_contentNameIsCapturing","location","filename","CaptureRule","et","super","_this2","_inherits","_tt","collectPatterns","out","compile","MatchRule","nt","_match","RegExpSource","_cachedCompiledPatterns","_this3","_tt2","debugMatchRegExp","_getCachedCompiledPatterns","RegExpSourceList","IncludeOnlyRule","_tt3","it","hasMissingPatterns","_this4","_iterator6","_step6","pattern","rt","begin","applyEndPatternLast","_begin","_end","hasBackReferences","_this5","_tt4","debugBeginRegExp","debugEndRegExp","resolveBackReferences","_iterator7","_step7","setSource","_tt5","ot","_while","_cachedCompiledWhilePatterns","_this6","debugWhileRegExp","_iterator8","_step8","compileWhile","_getCachedCompiledWhilePatterns","createCaptureRule","helper","registerRule","desc","_RuleFactory","_compileCaptures","_compilePatterns","maximumCaptureId","captureId","numericCaptureId","localIncludedRule","externalGrammarName","externalGrammarInclude","externalGrammar","getExternalGrammar","externalIncludedRule","skipRule","regExpSource","lastPushedPos","output","hasAnchor","pos","nextCh","_anchorCache","_buildAnchorCache","_RegExpSource","newSource","capturedValues","g1","A0_G0_result","A0_G1_result","A1_G0_result","A1_G1_result","A0_G0","A0_G1","A1_G0","A1_G1","resolveAnchors","at","_items","_hasAnchors","_cached","_disposeCaches","onigLib","regExps","CompiledRule","_resolveAnchors","ct","scanner","createOnigScanner","string","BasicScopeAttributes","ut","_BasicScopeAttributesProvider","initialLanguageId","embeddedLanguages","_getBasicScopeAttributes","_scopeToLanguage","standardTokenType","_toStandardTokenType","_defaultAttributes","_embeddedLanguagesMatcher","ScopeMatcher","getDefaultAttributes","getBasicScopeAttributes","_NULL_SCOPE_METADATA","m","STANDARD_TOKEN_TYPE_REGEXP","BasicScopeAttributesProvider","ht","scopesRegExp","escapedScopes","_ref2","_ref3","process","VSCODE_TEXTMATE_DEBUG","dt","stoppedEarly","bt","Grammar","St","_rootScopeName","initialLanguage","tokenTypes","balancedBracketSelectors","grammarRepository","_onigLib","_basicScopeAttributesProvider","_rootId","_lastRuleId","_ruleId2desc","_includedGrammars","_grammarRepository","_injections","_tokenTypeMatchers","_i15","_Object$keys","_iterator10","_step10","_iterator11","_step11","getMetadataForScope","_collectInjections","scopeName2","rawInjections","expression","injectionScopeNames","injectionScopeName","injectionGrammar","injectionSelector","i1","i2","factory","rawIncludedGrammar","prevState","_tokenize","getResult","getBinaryResult","emitBinaryTokens","StateStackImpl","NULL","reset","rawDefaultMetadata","defaultStyle","themeProvider","defaultMetadata","rootScopeName","scopeList","AttributedScopeStack","createRootAndLookUpScopeName","createRoot","onigLineText","LineTokens","tokenAttributes","equals","_AttributedScopeStack","_pushAttributed","_iterator12","_step12","self","fromExtension","namesScopeList","_iterator13","_step13","frame","rawRootMetadata","themeMatch","resolvedTokenAttributes","mergeAttributes","existingTokenAttributes","basicScopeAttributes","styleAttributes","rawMetadata","newPath","scopeThemeMatchResult","_StateStackImpl","enterPos","anchorPos","_stackElementBrand","depth","_enterPos","_anchorPos","_equals","_reset","_writeString","outIndex","_this$nameScopesList","_this$contentNameScop","contentNameScopeStack","toStateStackFrame","_this$nameScopesList$","_this$nameScopesList2","_this$parent$nameScop","_this$parent","_this$contentNameScop2","_this$contentNameScop3","_structuralEquals","pushFrame","_e$nameScopesList","_n$enterPos","_n$anchorPos","BalancedBracketSelectors","At","balancedBracketScopes","unbalancedBracketScopes","allowAny","matchesAlways","_iterator14","_step14","excluder","_iterator15","_step15","includer","Ot","tokenTypeOverrides","_emitBinaryTokens","_tokenTypeOverrides","_lineText","_tokens","_binaryTokens","_lastTokenEndIndex","scopesList","_t$getScopeNames2","_t$tokenAttributes","_this$balancedBracket","matchesNever","_t$getScopeNames","scopes2","_iterator16","_step16","SyncRegistry","Mt","_grammars","_rawGrammars","_injectionGrammars","_iterator17","_step17","addGrammar","targetScope","grammarForScopeName","rawGrammar","createGrammar","Pt","_syncRegistry","_ensureGrammarCache","loadGrammarWithEmbeddedLanguages","loadGrammarWithConfiguration","configuration","_loadGrammar","unbalancedBracketSelectors","loadGrammar","dependencyProcessor","request","_loadSingleGrammar","_grammarForScopeName","_doLoadSingleGrammar","Ft","message","_this11","Xt","visited","pushScope","getScopes","toJSON","initial","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","de","prototype","je","booleanish","number","spaceSeparated","commaOrSpaceSeparated","defined","boolean","types","__proto__","checks","Oe","mask","check","_assertThisInitialized","_this12","_je","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","xmlns","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","html$3","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","charSet","checked","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","label","language","list","loading","loop","low","manifest","maxLength","media","method","multiple","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","ping","placeholder","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scoped","seamless","selected","shadowRootDelegatesFocus","shadowRootMode","shape","sizes","slot","spellCheck","srcDoc","srcLang","srcSet","step","tabIndex","title","translate","typeMustMatch","useMap","width","align","aLink","archive","axis","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","codeBase","codeType","compact","declare","event","face","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","scheme","scrolling","standby","summary","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","security","unselectable","svg$1","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","mode","numOctaves","observer","opacity","operator","order","orient","orientation","origin","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","to","unicode","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","z","zoomAndPan","own$2","characterEntitiesHtml4","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","fnof","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","bull","hellip","prime","Prime","oline","frasl","weierp","image","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","rang","loz","spades","clubs","hearts","diams","quot","amp","lt","gt","OElig","oelig","Scaron","scaron","Yuml","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","permil","lsaquo","rsaquo","euro","htmlCommentRegex","bogusCommentEntitySubset","commentEntitySubset","siblingBefore","closing","body","caption","colgroup","dd","html","li","optgroup","option","rp","tbody","td","tfoot","th","thead","tr","opening","previous","seen","parameters","invalid","unknown","_len3","zwitch","node_","comment","_1","_2","doctype","_3","element","selfClosing","last","serializeAttributes","raw","UtfString","Hn","utf16Length","utf8Length","_utf8ByteLength","computeIndicesMapping","utf16OffsetToUtf8","utf8OffsetToUtf16","utf8Value","i8","i16","charCode","codePoint","wasSurrogatePair","nextCharCode","utf16Value","omalloc","codepoint","qn","LAST_ID","_onigBinding","utfString","_sharedPtrInUse","_sharedPtr","convertUtf8OffsetToUtf16","utf8Offset","convertUtf16OffsetToUtf8","utf16Offset","ofree","static","zn","strPtrsArr","strLenArr","strPtrsPtr","strLenPtr","scannerPtr","getLastOnigError","throwLastOnigError","_ptr","freeOnigScanner","arg","_findNextMatchSync","debugCall","resultPtr","findNextOnigScannerMatch","beg","Zn","_resolver","_langs","_alias","_resolvedGrammars","_langMap","_loadedLanguagesCache","_this13","_Pt","_resolvedThemes","_loadedThemesCache","textmateTheme","_textmateThemeCache","resolved","embeddedLazilyBy","embeddedLangsLazy","addLanguage","grammarConfig","alias","_iterator37","_step37","delete","_langGraph","_iterator38","_step38","resolveEmbeddedLanguages","langsGraphArray","missingLangs","_ref13","_ref14","dependents","_ref15","_e$embeddedLangs","_ref16","embeddedLangs","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_i38","_e46","_e46$_i","_i39","_e47","_e47$_i","_iterator39","_step39","embeddedLang","Registry$1","ti","getLangRegistration","langIdOrAlias","_scopeToLang","injectTo","scopeParts","subScopeName","NileHighlighter","fi","highlightedCode","_this17","_o22","_updated","_callee13","changedProperties","_context14","requestUpdate","updated","_x22","render","_templateObject","_taggedTemplateLiteral","__decorate","NileElement","reflect","_export","customElement"],"mappings":"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,EAAAA,CAAAA,CAAQ,OAmD9CkQ,EAAQ,CAAA,CAAE,CAACj9B,CAAAA,cAAAA,CAoMX1Y,EAA0B,CAAA,CAC9B,QACA,KACA,CAAA,QAAA,CACA,QACA,QACA,CAAA,OAAA,CACA,SACA,MACA,CAAA,MAAA,CACA,QACA,CAAA,KAAA,CACA,SACA,OACA,CAAA,QAAA,CACA,OACA,IACA,CAAA,QAAA,CACA,QACA,QACA,CAAA,MAAA,CACA,IACA,CAAA,QAAA,CACA,SACA,OACA,CAAA,QAAA,CACA,SACA,QACA,CAAA,MAAA,CACA,OACA,KACA,CAAA,OAAA,CACA,QACA,CAAA,OAAA,CACA,SACA,MACA,CAAA,QAAA,CACA,QACA,CAAA,OAAA,CACA,QACA,OACA,CAAA,QAAA,CACA,KACA,CAAA,OAAA,CACA,SACA,MACA,CAAA,QAAA,CACA,SACA,OACA,CAAA,MAAA,CACA,OACA,QACA,CAAA,KAAA,CACA,QACA,CAAA,QAAA,CACA,QACA,QACA,CAAA,KAAA,CACA,OACA,QACA,CAAA,QAAA,CACA,SACA,IACA,CAAA,QAAA,CACA,OACA,CAAA,OAAA,CACA,SACA,QACA,CAAA,MAAA,CACA,QACA,IACA,CAAA,MAAA,CACA,QACA,QACA,CAAA,MAAA,CACA,KACA,CAAA,QAAA,CACA,SACA,OACA,CAAA,QAAA,CACA,OACA,MACA,CAAA,QAAA,CACA,SACA,MACA,CAAA,MAAA,CACA,QACA,CAAA,OAAA,CACA,OACA,OACA,CAAA,KAAA,CACA,OACA,KACA,CAAA,MAAA,CACA,OACA,MACA,CAAA,OAAA,CACA,OACA,CAAA,OAAA,CACA,SACA,OACA,CAAA,QAAA,CACA,MACA,MACA,CAAA,QAAA,CACA,MACA,MAQI41C,CAAAA,CAAAA,EAAAA,CAAyB,CAC7BC,IAAAA,CAAM,IACNC,KAAO,CAAA,GAAA,CACPC,KAAM,GACNC,CAAAA,KAAAA,CAAO,IACPC,MAAQ,CAAA,GAAA,CACRC,GAAK,CAAA,GAAA,CACLC,OAAQ,GACRC,CAAAA,IAAAA,CAAM,IACNC,GAAK,CAAA,GAAA,CACLC,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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
1
|
+
{"version":3,"file":"nile-highlighter.cjs.js","sources":["../../../../node_modules/@shikijs/vscode-textmate/dist/main.mjs","../../../../node_modules/@shikijs/core/dist/index.mjs","../../../../node_modules/shiki/dist/langs.mjs","../../../../node_modules/shiki/dist/chunks/wasm-dynamic.mjs","../../../../node_modules/shiki/dist/themes.mjs","../../../../node_modules/@shikijs/core/dist/types.mjs","../../../../node_modules/shiki/dist/bundle-full.mjs","../../../src/nile-highlighter/nile-highlighter.ts"],"sourcesContent":["// 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 (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 this.cache = /* @__PURE__ */ new Map();\n }\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 this._cachedMatchRoot = new CachedFn(\n (scopeName) => this._root.match(scopeName)\n );\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 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};\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 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 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 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 constructor() {\n this._references = [];\n this._seenReferenceKeys = /* @__PURE__ */ new Set();\n this.visitedRule = /* @__PURE__ */ new Set();\n }\n get references() {\n return this._references;\n }\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 = /* @__PURE__ */ new Set();\n this.seenPartialScopeRequests = /* @__PURE__ */ new Set();\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\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 constructor() {\n this.kind = 0 /* Base */;\n }\n};\nvar SelfReference = class {\n constructor() {\n this.kind = 1 /* Self */;\n }\n};\nvar RelativeReference = class {\n constructor(ruleName) {\n this.ruleName = ruleName;\n this.kind = 2 /* RelativeReference */;\n }\n};\nvar TopLevelReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n this.kind = 3 /* TopLevelReference */;\n }\n};\nvar TopLevelRepositoryReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n this.kind = 4 /* TopLevelRepositoryReference */;\n }\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 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 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 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 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 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 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 constructor(regExpSource, ruleId) {\n if (regExpSource) {\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 this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\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 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 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) {\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 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 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 constructor(initialLanguageId, embeddedLanguages) {\n this._getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\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 /**\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};\n_BasicScopeAttributesProvider._NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n_BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\nvar BasicScopeAttributesProvider = _BasicScopeAttributesProvider;\nvar ScopeMatcher = class {\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 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 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._stackElementBrand = void 0;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\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};\n// TODO remove me\n_StateStackImpl.NULL = new _StateStackImpl(\n null,\n 0,\n 0,\n 0,\n false,\n null,\n null,\n null\n);\nvar StateStackImpl = _StateStackImpl;\nvar BalancedBracketSelectors = class {\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.allowAny = false;\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 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._grammars = /* @__PURE__ */ new Map();\n this._rawGrammars = /* @__PURE__ */ new Map();\n this._injectionGrammars = /* @__PURE__ */ new Map();\n this._theme = theme;\n }\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/main.ts\nvar Registry = class {\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 INITIAL,\n Registry,\n Theme,\n disposeOnigString\n};\n","import { FontStyle } from './types.mjs';\nimport { INITIAL, EncodedTokenMetadata, Registry as Registry$1, Theme } from '@shikijs/vscode-textmate';\nexport { EncodedTokenMetadata as StackElementMetadata } from '@shikijs/vscode-textmate';\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\n/**\n * Split a string into lines, each line preserves the line ending.\n */\nfunction splitLines(code, preserveEnding = false) {\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\n ? parts[i] + (parts[i + 1] || '')\n : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\n/**\n * Check if the language is plaintext that is ignored by Shiki.\n *\n * Hard-coded plain text languages: `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isPlainLang(lang) {\n return !lang || ['plaintext', 'txt', 'text', 'plain'].includes(lang);\n}\n/**\n * Check if the language is specially handled or bypassed by Shiki.\n *\n * Hard-coded languages: `ansi` and plaintexts like `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isSpecialLang(lang) {\n return lang === 'ansi' || isPlainLang(lang);\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isNoneTheme(theme) {\n return theme === 'none';\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\n/**\n * Utility to append class to a hast node\n *\n * If the `property.class` is a string, it will be splitted by space and converted to an array.\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/**\n * Split a token into multiple tokens by given offsets.\n *\n * The offsets are relative to the token, and should be sorted.\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}\n/**\n * Split 2D tokens array by given breakpoints.\n */\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array\n .from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints))\n .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\n .filter(i => token.offset < i && i < token.offset + token.content.length)\n .map(i => i - token.offset)\n .sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\n/**\n * Normalize a getter to a promise.\n */\nasync function normalizeGetter(p) {\n return Promise.resolve(typeof p === 'function' ? p() : p).then(r => r.default || r);\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}\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 if (token.fontStyle & FontStyle.Underline)\n styles['text-decoration'] = 'underline';\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(';');\n}\n/**\n * Creates a converter between index and position in a code block.\n *\n * Overflow/underflow are unchecked.\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}\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ShikiError';\n }\n}\n\n/**\n * A built-in transformer to add decorations to the highlighted code.\n */\nfunction transformerDecorations() {\n const map = new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n const converter = createPositionConverter(shiki.source);\n function normalizePosition(p) {\n if (typeof p === 'number') {\n if (p < 0 || p > shiki.source.length)\n throw new ShikiError(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n return {\n ...converter.indexToPos(p),\n offset: p,\n };\n }\n else {\n const line = converter.lines[p.line];\n if (line === undefined)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n if (p.character < 0 || p.character > line.length)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n return {\n ...p,\n offset: converter.posToIndex(p.line, p.character),\n };\n }\n }\n const decorations = (shiki.options.decorations || [])\n .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(`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$2(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(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n // Full line decoration\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, 'line');\n }\n // Single token decoration\n else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === 'element') {\n applyDecoration(children[0], decoration, 'token');\n }\n // Create a wrapper for the decoration\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 // Apply decorations in reverse order so the nested ones get applied first.\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.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 }\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(`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 (isFooHasBarEnd && isFooHasBarEnd)\n continue; // nested\n if (isBarHasFooStart && isBarHasFooEnd)\n continue; // nested\n throw new ShikiError(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n}\nfunction stringify$2(el) {\n if (el.type === 'text')\n return el.value;\n if (el.type === 'element')\n return el.children.map(stringify$2).join('');\n return '';\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations(),\n];\nfunction getTransformers(options) {\n return [\n ...options.transformers || [],\n ...builtInTransformers,\n ];\n}\n\n/**\n * GrammarState is a special reference object that holds the state of a grammar.\n *\n * It's used to highlight code snippets that are part of the target language.\n */\nclass GrammarState {\n _stack;\n lang;\n theme;\n /**\n * Static method to create a initial grammar state.\n */\n static initial(lang, theme) {\n return new GrammarState(INITIAL, lang, theme);\n }\n constructor(_stack, lang, theme) {\n this._stack = _stack;\n this.lang = lang;\n this.theme = theme;\n }\n get scopes() {\n return getScopes(this._stack);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n scopes: this.scopes,\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = new Set();\n function pushScope(stack) {\n if (visited.has(stack))\n return;\n visited.add(stack);\n const name = stack?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack.parent)\n pushScope(stack.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state) {\n if (!(state instanceof GrammarState))\n throw new ShikiError('Invalid grammar state');\n // @ts-expect-error _stack is private\n return state._stack;\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 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B[\", position);\n if (nextEscape !== -1) {\n const nextClose = value.indexOf(\"m\", nextEscape);\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence, index) {\n let offset = 1;\n const colorMode = sequence[index + offset++];\n let color;\n if (colorMode === \"2\") {\n const rgb = [\n sequence[index + offset++],\n sequence[index + offset++],\n sequence[index + offset]\n ].map((x) => Number.parseInt(x));\n if (rgb.length === 3 && !rgb.some((x) => Number.isNaN(x))) {\n color = {\n type: \"rgb\",\n rgb\n };\n }\n } else if (colorMode === \"5\") {\n const colorIndex = Number.parseInt(sequence[index + offset]);\n if (!Number.isNaN(colorIndex)) {\n color = { type: \"table\", index: Number(colorIndex) };\n }\n }\n return [offset, color];\n}\nfunction parseSequence(sequence) {\n const commands = [];\n for (let i = 0; i < sequence.length; i++) {\n const code = sequence[i];\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 }\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 [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n i += offset;\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 [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\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\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const colorPalette = createColorPalette(Object.fromEntries(namedColors.map(name => [\n name,\n theme.colors?.[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`],\n ])));\n const parser = createAnsiSequenceParser();\n return lines.map(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 }\n else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : undefined;\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 return {\n content: token.value,\n offset: line[1], // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle,\n };\n }));\n}\n/**\n * Adds 50% alpha to a hex color string or the \"-dim\" postfix to a CSS variable\n */\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);\n if (hexMatch) {\n if (hexMatch[3]) {\n // convert from #rrggbbaa to #rrggbb(aa/2)\n const alpha = Math\n .round(Number.parseInt(hexMatch[3], 16) / 2)\n .toString(16)\n .padStart(2, '0');\n return `#${hexMatch[1]}${hexMatch[2]}${alpha}`;\n }\n else if (hexMatch[2]) {\n // convert from #rrggbb to #rrggbb80\n return `#${hexMatch[1]}${hexMatch[2]}80`;\n }\n else {\n // convert from #rgb to #rrggbb80\n return `#${Array\n .from(hexMatch[1])\n .map(x => `${x}${x}`)\n .join('')}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\n/* ---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *-------------------------------------------------------- */\n/**\n * Code to tokens, with a simple theme.\n */\nfunction codeToTokensBase(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\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(lang);\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (options.grammarState.theme !== themeName) {\n throw new ShikiError(`Grammar state theme \"${options.grammarState.theme}\" does not match highlight theme \"${themeName}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError('Plain language does not have grammar state');\n if (lang === 'ansi')\n throw new ShikiError('ANSI language does not have grammar state');\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(_tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack, _grammar.name, theme.name);\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n return _tokenizeWithTheme(code, grammar, theme, colorMap, options).tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const { tokenizeMaxLineLength = 0, tokenizeTimeLimit = 500, } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState\n ? getGrammarStack(options.grammarState)\n : options.grammarContextCode != null\n ? _tokenizeWithTheme(options.grammarContextCode, grammar, theme, colorMap, {\n ...options,\n grammarState: undefined,\n grammarContextCode: undefined,\n }).stateStack\n : 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 // Do not attempt to tokenize if the line length is longer than the `tokenizationMaxLineLength`\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);\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(colorMap[EncodedTokenMetadata.getForeground(metadata)], colorReplacements);\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(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: options.includeExplanation === 'scopeName'\n ? explainThemeScopesNameOnly(tokenWithScopes.scopes)\n : explainThemeScopesFull(themeSettingsSelectors, tokenWithScopes.scopes),\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\n || (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; // continue to the next theme settings\n }\n }\n }\n return result;\n}\n\n/**\n * Get tokens with multiple themes\n */\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object\n .entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }));\n const tokens = syncThemesTokenization(...themes.map(t => codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme,\n })));\n const mergedTokens = tokens[0]\n .map((line, lineIdx) => line\n .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 { content: _, explanation: __, offset: ___, ...styles } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n }));\n return mergedTokens;\n}\n/**\n * Break tokens from multiple themes into same tokenization.\n *\n * For example, given two themes that tokenize `console.log(\"hello\")` as:\n *\n * - `console . log (\" hello \")` (6 tokens)\n * - `console .log ( \"hello\" )` (5 tokens)\n *\n * This function will return:\n *\n * - `console . log ( \" hello \" )` (8 tokens)\n * - `console . log ( \" hello \" )` (8 tokens)\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, i) => t.push(outLines[i]));\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 }\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\n/**\n * High-level code-to-tokens API.\n *\n * It will use `codeToTokensWithThemes` or `codeToTokensBase` based on the options.\n */\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n if ('themes' in options) {\n const { defaultColor = 'light', cssVariablePrefix = '--shiki-', } = options;\n const themes = Object\n .entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }))\n .sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError('`themes` option must not be empty');\n const themeTokens = codeToTokensWithThemes(internal, code, options);\n if (defaultColor && !themes.find(t => t.color === defaultColor))\n throw new ShikiError(`\\`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\n .map(line => line.map(token => mergeToken(token, themesOrder, cssVariablePrefix, defaultColor)));\n const themeColorReplacements = themes.map(t => resolveColorReplacements(t.theme, options));\n fg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}:`) + (applyColorReplacements(themeRegs[idx].fg, themeColorReplacements[idx]) || 'inherit')).join(';');\n bg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}-bg:`) + (applyColorReplacements(themeRegs[idx].bg, themeColorReplacements[idx]) || 'inherit')).join(';');\n themeName = `shiki-themes ${themeRegs.map(t => t.name).join(' ')}`;\n rootStyle = defaultColor ? undefined : [fg, bg].join(';');\n }\n else if ('theme' in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(internal, code, options);\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n }\n else {\n throw new ShikiError('Invalid options, either `theme` or `themes` must be provided');\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n };\n}\nfunction mergeToken(merged, variantsOrder, cssVariablePrefix, defaultColor) {\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 // Get all style keys, for themes that missing some style, we put `inherit` to override as needed\n const styleKeys = new Set(styles.flatMap(t => Object.keys(t)));\n const mergedStyles = styles.reduce((acc, cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || 'inherit';\n if (idx === 0 && defaultColor) {\n acc[key] = value;\n }\n else {\n const keyName = key === 'color' ? '' : key === 'background-color' ? '-bg' : `-${key}`;\n const varKey = cssVariablePrefix + variantsOrder[idx] + (key === 'color' ? '' : keyName);\n if (acc[key])\n acc[key] += `;${varKey}:${value}`;\n else\n acc[key] = `${varKey}:${value}`;\n }\n }\n return acc;\n }, {});\n token.htmlStyle = defaultColor\n ? stringifyTokenStyle(mergedStyles)\n : Object.values(mergedStyles).join(';');\n return token;\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 { tokens, fg, bg, themeName, rootStyle, } = codeToTokens(internal, input, options);\n const { mergeWhitespaces = true, } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === 'never')\n tokens = splitWhitespaceTokens(tokens);\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(tokens, {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle,\n }, contextSource);\n}\nfunction tokensToHast(tokens, options, transformerContext) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: 'root',\n children: [],\n };\n const { structure = 'classic', } = options;\n let preNode = {\n type: 'element',\n tagName: 'pre',\n properties: {\n class: `shiki ${options.themeName || ''}`,\n style: options.rootStyle || `background-color:${options.bg};color:${options.fg}`,\n tabindex: '0',\n ...Object.fromEntries(Array.from(Object.entries(options.meta || {}))\n .filter(([key]) => !key.startsWith('_'))),\n },\n children: [],\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 children: [{ type: 'text', value: token.content }],\n };\n const style = token.htmlStyle || stringifyTokenStyle(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) || 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 }\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 }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = '';\n let firstOffset = 0;\n line.forEach((token, idx) => {\n const isUnderline = token.fontStyle && token.fontStyle & FontStyle.Underline;\n const couldMerge = !isUnderline;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (!firstOffset)\n firstOffset = token.offset;\n carryOnContent += token.content;\n }\n else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content,\n });\n }\n else {\n newLine.push({\n content: carryOnContent,\n offset: firstOffset,\n }, token);\n }\n firstOffset = 0;\n carryOnContent = '';\n }\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 // eslint-disable-next-line regexp/no-super-linear-backtracking\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}\n\n/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nconst 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/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nclass Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property;\n this.normal = normal;\n if (space) {\n this.space = space;\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {};\n/** @type {Normal} */\nSchema.prototype.normal = {};\n/** @type {string|null} */\nSchema.prototype.space = null;\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nfunction merge(definitions, space) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n let index = -1;\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property);\n Object.assign(normal, definitions[index].normal);\n }\n\n return new Schema(property, normal, space)\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction normalize(value) {\n return value.toLowerCase()\n}\n\nclass Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property;\n /** @type {string} */\n this.attribute = attribute;\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null;\nInfo.prototype.boolean = false;\nInfo.prototype.booleanish = false;\nInfo.prototype.overloadedBoolean = false;\nInfo.prototype.number = false;\nInfo.prototype.commaSeparated = false;\nInfo.prototype.spaceSeparated = false;\nInfo.prototype.commaOrSpaceSeparated = false;\nInfo.prototype.mustUseProperty = false;\nInfo.prototype.defined = false;\n\nlet powers = 0;\n\nconst boolean = increment();\nconst booleanish = increment();\nconst overloadedBoolean = increment();\nconst number = increment();\nconst spaceSeparated = increment();\nconst commaSeparated = increment();\nconst commaOrSpaceSeparated = increment();\n\nfunction increment() {\n return 2 ** ++powers\n}\n\nvar types = /*#__PURE__*/Object.freeze({\n __proto__: null,\n boolean: boolean,\n booleanish: booleanish,\n commaOrSpaceSeparated: commaOrSpaceSeparated,\n commaSeparated: commaSeparated,\n number: number,\n overloadedBoolean: overloadedBoolean,\n spaceSeparated: spaceSeparated\n});\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types);\n\nclass DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\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 * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value;\n }\n}\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\n\nconst own$3 = {}.hasOwnProperty;\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nfunction create(definition) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n /** @type {string} */\n let prop;\n\n for (prop in definition.properties) {\n if (own$3.call(definition.properties, prop)) {\n const value = definition.properties[prop];\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n );\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true;\n }\n\n property[prop] = info;\n\n normal[normalize(prop)] = prop;\n normal[normalize(info.attribute)] = prop;\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n\nconst xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\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});\n\nconst xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n});\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n\nconst xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n});\n\nconst aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\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});\n\nconst html$3 = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\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: boolean,\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 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\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});\n\nconst svg$1 = create({\n space: 'svg',\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 transform: caseSensitiveTransform,\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});\n\n/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\n\nconst valid = /^data[-\\w.:]+$/i;\nconst dash = /-[a-z]/g;\nconst cap = /[A-Z]/g;\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nfunction find(schema, value) {\n const normal = normalize(value);\n let prop = 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 prop = '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(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n\n/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nconst html$2 = merge([xml, xlink, xmlns, aria, html$3], 'html');\nconst svg = merge([xml, xlink, xmlns, aria, svg$1], 'svg');\n\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$2 = {}.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 */\nfunction 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$2.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key]);\n // @ts-expect-error Indexable.\n fn = own$2.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/**\n * @typedef CoreOptions\n * @property {Array<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\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nfunction core(value, options) {\n value = value.replace(\n options.subset ? charactersToExpression(options.subset) : /[\"&'<>`]/g,\n basic\n );\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(\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,\n basic\n )\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 * @param {Array<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(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'));\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\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 */\nfunction toHexadecimal(code, next, omit) {\n const value = '&#x' + code.toString(16).toUpperCase();\n return omit && next && !/[\\dA-Fa-f]/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\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 */\nfunction toDecimal(code, next, omit) {\n const value = '&#' + String(code);\n return omit && next && !/\\d/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nconst 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/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nconst 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/**\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 */\nconst dangerous = [\n 'cent',\n 'copy',\n 'divide',\n 'gt',\n 'lt',\n 'not',\n 'para',\n 'times'\n];\n\nconst own$1 = {}.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$1.call(characterEntitiesHtml4, key)) {\n characters[characterEntitiesHtml4[key]] = key;\n }\n}\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 */\nfunction toNamed(code, next, omit, attribute) {\n const character = String.fromCharCode(code);\n\n if (own$1.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 /[^\\da-z]/i.test(String.fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\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\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 */\nfunction 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/**\n * @typedef {import('./core.js').CoreOptions & import('./util/format-smart.js').FormatSmartOptions} Options\n * @typedef {import('./core.js').CoreOptions} LightOptions\n */\n\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 */\nfunction stringifyEntities(value, options) {\n return core(value, Object.assign({format: formatSmart}, options))\n}\n\n/**\n * @import {Comment, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\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 */\nfunction 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/**\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 */\nfunction doctype(_1, _2, _3, state) {\n return (\n '<!' +\n (state.settings.upperDoctype ? 'DOCTYPE' : 'doctype') +\n (state.settings.tightDoctype ? '' : ' ') +\n 'html>'\n )\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 */\nfunction 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/**\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/**\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 */\nfunction stringify$1(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/**\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 */\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 */\nfunction stringify(values) {\n return values.join(' ').trim()\n}\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 */\nfunction 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/**\n * @import {Parents, RootContent} from 'hast'\n */\n\n\nconst siblingAfter = siblings(1);\nconst siblingBefore = siblings(-1);\n\n/** @type {Array<RootContent>} */\nconst emptyChildren$1 = [];\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$1;\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/**\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 */\nfunction 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/**\n * @import {Element, Parents} from 'hast'\n */\n\n\nconst closing = omission({\n body: body$1,\n caption: headOrColgroupOrCaption,\n colgroup: headOrColgroupOrCaption,\n dd,\n dt,\n head: headOrColgroupOrCaption,\n html: html$1,\n li,\n optgroup,\n option,\n p,\n rp: rubyElement,\n rt: rubyElement,\n tbody: tbody$1,\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$1(_, 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$1(_, 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$1(_, 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/**\n * @import {Element, Parents} from 'hast'\n */\n\n\nconst 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 const children = node.children;\n /** @type {Array<string>} */\n const seen = [];\n let index = -1;\n\n while (++index < children.length) {\n const child = children[index];\n if (\n child.type === 'element' &&\n (child.tagName === 'title' || child.tagName === 'base')\n ) {\n if (seen.includes(child.tagName)) return false\n seen.push(child.tagName);\n }\n }\n\n return children.length > 0\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/**\n * @import {Element, Parents, Properties} from 'hast'\n * @import {State} from '../index.js'\n */\n\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 */\nfunction 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 ||\n (info.overloadedBoolean && typeof value !== 'string')\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 ? stringify$1 : stringify)(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/**\n * @import {Parents, Text} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {State} from '../index.js'\n */\n\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 */\nfunction 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/**\n * @import {Parents} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {State} from '../index.js'\n */\n\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 */\nfunction raw(node, index, parent, state) {\n return state.settings.allowDangerousHtml\n ? node.value\n : text(node, index, parent, state)\n}\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 */\nfunction root(node, _1, _2, state) {\n return state.all(node)\n}\n\n/**\n * @import {Nodes, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\n\n/**\n * @type {(node: Nodes, index: number | undefined, parent: Parents | undefined, state: State) => string}\n */\nconst 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/**\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/** @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 */\nfunction 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$2,\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 */\nfunction 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\n/**\n * Get highlighted code in HTML.\n */\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 = toHtml(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\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 }\n catch { }\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') : undefined;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead = 1024) {\n const endIdx = idx + maxBytesToRead;\n let endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx))\n ++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 }\n else {\n u0 = ((u0 & 7) << 18)\n | (u1 << 12)\n | (u2 << 6)\n | (heapOrArray[idx++] & 63);\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n }\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 = await init(info);\n wasmMemory = exports.memory;\n updateGlobalBufferAndViews(wasmMemory.buffer);\n Object.assign(binding, exports);\n binding.UTF8ToString = UTF8ToString;\n }\n await createWasm();\n return binding;\n}\n\n/* ---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *-------------------------------------------------------- */\nlet onigBinding = null;\n// let defaultDebugCall = false\nfunction throwLastOnigError(onigBinding) {\n throw new ShikiError(onigBinding.UTF8ToString(onigBinding.getLastOnigError()));\n}\nclass UtfString {\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 >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i + 1 < len) {\n const nextCharCode = str.charCodeAt(i + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codepoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (codepoint <= 0x7F)\n result += 1;\n else if (codepoint <= 0x7FF)\n result += 2;\n else if (codepoint <= 0xFFFF)\n result += 3;\n else\n result += 4;\n if (wasSurrogatePair)\n i++;\n }\n return result;\n }\n utf16Length;\n utf8Length;\n utf16Value;\n utf8Value;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n constructor(str) {\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 >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i16 + 1 < utf16Length) {\n const nextCharCode = str.charCodeAt(i16 + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codePoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (computeIndicesMapping) {\n utf16OffsetToUtf8[i16] = i8;\n if (wasSurrogatePair)\n utf16OffsetToUtf8[i16 + 1] = i8;\n if (codePoint <= 0x7F) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n }\n else if (codePoint <= 0x7FF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n }\n else if (codePoint <= 0xFFFF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n }\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 <= 0x7F) {\n utf8Value[i8++] = codePoint;\n }\n else if (codePoint <= 0x7FF) {\n utf8Value[i8++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else if (codePoint <= 0xFFFF) {\n utf8Value[i8++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else {\n utf8Value[i8++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 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 createString(onigBinding) {\n const result = onigBinding.omalloc(this.utf8Length);\n onigBinding.HEAPU8.set(this.utf8Value, result);\n return result;\n }\n}\nclass OnigString {\n static LAST_ID = 0;\n static _sharedPtr = 0; // a pointer to a string of 10000 bytes\n static _sharedPtrInUse = false;\n id = (++OnigString.LAST_ID);\n _onigBinding;\n content;\n utf16Length;\n utf8Length;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n ptr;\n constructor(str) {\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 < 10000 && !OnigString._sharedPtrInUse) {\n if (!OnigString._sharedPtr)\n OnigString._sharedPtr = onigBinding.omalloc(10000);\n OnigString._sharedPtrInUse = true;\n onigBinding.HEAPU8.set(utfString.utf8Value, OnigString._sharedPtr);\n this.ptr = OnigString._sharedPtr;\n }\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}\nclass OnigScanner {\n _onigBinding;\n _ptr;\n constructor(patterns) {\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 debugCall = defaultDebugCall\n let options = 0 /* FindOption.None */;\n if (typeof arg === 'number') {\n // if (arg & FindOption.DebugCall)\n // debugCall = true\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 onigBinding = this._onigBinding;\n // let resultPtr: Pointer\n // if (debugCall)\n // resultPtr = onigBinding.findNextOnigScannerMatchDbg(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options)\n // else\n const resultPtr = onigBinding.findNextOnigScannerMatch(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n if (resultPtr === 0) {\n // no match\n return null;\n }\n const HEAPU32 = onigBinding.HEAPU32;\n let offset = resultPtr / 4; // byte offset -> uint32 offset\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)))\n // eslint-disable-next-line node/prefer-global/buffer\n || (typeof Buffer !== 'undefined' && Buffer.isBuffer?.(data))\n || (typeof SharedArrayBuffer !== 'undefined' && data instanceof SharedArrayBuffer)\n || (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 }\n else if (isInstantiatorModule(instance)) {\n instance = await instance.default(info);\n }\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 }\n else if (isArrayBuffer(instance)) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n // import(\"shiki/onig.wasm\") returns `{ default: WebAssembly.Module }` on cloudflare workers\n // https://developers.cloudflare.com/workers/wrangler/bundling/\n else if (instance instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\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// export function createOnigString(str: string) {\n// return new OnigString(str)\n// }\n// export function createOnigScanner(patterns: string[]) {\n// return new OnigScanner(patterns)\n// }\n// export function setDefaultDebugCall(_defaultDebugCall: boolean): void {\n// defaultDebugCall = _defaultDebugCall\n// }\n\nasync function createWasmOnigEngine(options) {\n if (options)\n await loadWasm(options);\n return {\n createScanner(patterns) {\n return new OnigScanner(patterns);\n },\n createString(s) {\n return new OnigString(s);\n },\n };\n}\n\n/**\n * https://github.com/microsoft/vscode/blob/f7f05dee53fb33fe023db2e06e30a89d3094488f/src/vs/platform/theme/common/colorRegistry.ts#L258-L268\n */\nconst VSCODE_FALLBACK_EDITOR_FG = { light: '#333333', dark: '#bbbbbb' };\nconst VSCODE_FALLBACK_EDITOR_BG = { light: '#fffffe', dark: '#1e1e1e' };\nconst RESOLVED_KEY = '__shiki_resolved';\n/**\n * Normalize a textmate theme to shiki theme\n */\nfunction normalizeTheme(rawTheme) {\n // @ts-expect-error private field\n if (rawTheme?.[RESOLVED_KEY])\n return rawTheme;\n const theme = {\n ...rawTheme,\n };\n // Fallback settings\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 // Guess fg/bg colors\n let { bg, fg } = theme;\n if (!bg || !fg) {\n /**\n * First try:\n * Theme might contain a global `tokenColor` without `name` or `scope`\n * Used as default value for foreground/background\n */\n const globalSetting = theme.settings\n ? theme.settings.find((s) => !s.name && !s.scope)\n : undefined;\n if (globalSetting?.settings?.foreground)\n fg = globalSetting.settings.foreground;\n if (globalSetting?.settings?.background)\n bg = globalSetting.settings.background;\n /**\n * Second try:\n * If there's no global `tokenColor` without `name` or `scope`\n * Use `editor.foreground` and `editor.background`\n */\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 /**\n * Last try:\n * If there's no fg/bg color specified in theme, use default\n */\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 // Push a no-scope setting with fallback colors\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 // Push non-hex colors to color replacements, as `vscode-textmate` doesn't support them\n let replacementCount = 0;\n const replacementMap = 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}`]) // already exists\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 // Only patch for known keys\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\n/**\n * Resolve\n */\nasync function resolveLangs(langs) {\n return Array.from(new Set((await Promise.all(langs\n .filter(l => !isSpecialLang(l))\n .map(async (lang) => await normalizeGetter(lang).then(r => Array.isArray(r) ? r : [r])))).flat()));\n}\nasync function resolveThemes(themes) {\n const resolved = await Promise.all(themes.map(async (theme) => isSpecialTheme(theme)\n ? null\n : normalizeTheme(await normalizeGetter(theme))));\n return resolved.filter(i => !!i);\n}\n\nclass Registry extends Registry$1 {\n _resolver;\n _themes;\n _langs;\n _alias;\n _resolvedThemes = new Map();\n _resolvedGrammars = new Map();\n _langMap = new Map();\n _langGraph = new Map();\n _textmateThemeCache = new WeakMap();\n _loadedThemesCache = null;\n _loadedLanguagesCache = null;\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 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 // Reset cache\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 // @ts-expect-error Access private `_syncRegistry`, but should work in runtime\n this._syncRegistry.setTheme(textmateTheme);\n }\n getGrammar(name) {\n if (this._alias[name]) {\n const resolved = new Set([name]);\n while (this._alias[name]) {\n name = this._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 this._resolvedGrammars.get(name);\n }\n loadLanguage(lang) {\n if (this.getGrammar(lang.name))\n return;\n const embeddedLazilyBy = new Set([...this._langMap.values()]\n .filter(i => i.embeddedLangsLazy?.includes(lang.name)));\n this._resolver.addLanguage(lang);\n const grammarConfig = {\n balancedBracketSelectors: lang.balancedBracketSelectors || ['*'],\n unbalancedBracketSelectors: lang.unbalancedBracketSelectors || [],\n };\n // @ts-expect-error Private members, set this to override the previous grammar (that can be a stub)\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 // Reset cache\n this._loadedLanguagesCache = null;\n // If there is a language that embeds this language lazily, we need to reload it\n if (embeddedLazilyBy.size) {\n for (const e of embeddedLazilyBy) {\n this._resolvedGrammars.delete(e.name);\n // Reset cache\n this._loadedLanguagesCache = null;\n // @ts-expect-error clear cache\n this._syncRegistry?._injectionGrammars?.delete(e.scopeName);\n // @ts-expect-error clear cache\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\n .filter(([_, lang]) => lang && lang.embeddedLangs?.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 ...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 if (lang.embeddedLangs) {\n for (const embeddedLang of lang.embeddedLangs)\n this._langGraph.set(embeddedLang, this._langMap.get(embeddedLang));\n }\n }\n}\n\nclass Resolver {\n _langs = new Map();\n _scopeToLang = new Map();\n _injections = 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;\n/**\n * Get the minimal shiki context for rendering.\n *\n * Synchronous version of `createShikiInternal`, which requires to provide the engine and all themes and languages upfront.\n */\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 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(...langs) {\n ensureNotDisposed();\n _registry.loadLanguages(langs.flat(1));\n }\n async function loadLanguage(...langs) {\n return loadLanguageSync(await resolveLangs(langs));\n }\n async function loadThemeSync(...themes) {\n ensureNotDisposed();\n for (const theme of themes.flat(1)) {\n _registry.loadTheme(theme);\n }\n }\n async function loadTheme(...themes) {\n ensureNotDisposed();\n return loadThemeSync(await resolveThemes(themes));\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 loadLanguage,\n loadLanguageSync,\n loadTheme,\n loadThemeSync,\n dispose,\n [Symbol.dispose]: dispose,\n };\n}\n\nlet _defaultWasmLoader;\n/**\n * Set the default wasm loader for `loadWasm`.\n * @internal\n */\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\n/**\n * Get the minimal shiki context for rendering.\n */\nasync function createShikiInternal(options = {}) {\n const [themes, langs, engine,] = await Promise.all([\n resolveThemes(options.themes || []),\n resolveLangs(options.langs || []),\n (options.engine || createWasmOnigEngine(options.loadWasm || _defaultWasmLoader)),\n ]);\n return createShikiInternalSync({\n ...options,\n loadWasm: undefined,\n themes,\n langs,\n engine,\n });\n}\n/**\n * @deprecated Use `createShikiInternal` instead.\n */\nfunction getShikiInternal(options = {}) {\n // TODO: next: console.warn('`getShikiInternal` is deprecated. Use `createShikiInternal` instead.')\n return createShikiInternal(options);\n}\n\n/**\n * Create a Shiki core highlighter instance, with no languages or themes bundled.\n * Wasm and each language and theme must be loaded manually.\n *\n * @see http://shiki.style/guide/bundles#fine-grained-bundle\n */\nasync function createHighlighterCore(options = {}) {\n const internal = await createShikiInternal(options);\n return {\n getLastGrammarState: (code, options) => getLastGrammarState(internal, code, options),\n codeToTokensBase: (code, options) => codeToTokensBase(internal, code, options),\n codeToTokensWithThemes: (code, options) => codeToTokensWithThemes(internal, code, options),\n codeToTokens: (code, options) => codeToTokens(internal, code, options),\n codeToHast: (code, options) => codeToHast(internal, code, options),\n codeToHtml: (code, options) => codeToHtml(internal, code, options),\n ...internal,\n getInternalContext: () => internal,\n };\n}\n/**\n * Create a Shiki core highlighter instance, with no languages or themes bundled.\n * Wasm and each language and theme must be loaded manually.\n *\n * Synchronous version of `createHighlighterCore`, which requires to provide the engine and all themes and languages upfront.\n *\n * @see http://shiki.style/guide/bundles#fine-grained-bundle\n */\nfunction createHighlighterCoreSync(options = {}) {\n const internal = createShikiInternalSync(options);\n return {\n getLastGrammarState: (code, options) => getLastGrammarState(internal, code, options),\n codeToTokensBase: (code, options) => codeToTokensBase(internal, code, options),\n codeToTokensWithThemes: (code, options) => codeToTokensWithThemes(internal, code, options),\n codeToTokens: (code, options) => codeToTokens(internal, code, options),\n codeToHast: (code, options) => codeToHast(internal, code, options),\n codeToHtml: (code, options) => codeToHtml(internal, code, options),\n ...internal,\n getInternalContext: () => internal,\n };\n}\nfunction makeSingletonHighlighterCore(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighterCore(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || [],\n });\n return _shiki;\n }\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 getSingletonHighlighterCore;\n}\nconst getSingletonHighlighterCore = /* @__PURE__ */ makeSingletonHighlighterCore(createHighlighterCore);\n/**\n * @deprecated Use `createHighlighterCore` or `getSingletonHighlighterCore` instead.\n */\n/* v8 ignore next 5 */\nfunction getHighlighterCore(options = {}) {\n // TODO: next: console.warn('`getHighlighterCore` is deprecated. Use `createHighlighterCore` or `getSingletonHighlighterCore` instead.')\n return createHighlighterCore(options);\n}\n\n// Implementation\nfunction createdBundledHighlighter(arg1, arg2, arg3) {\n let bundledLanguages;\n let bundledThemes;\n let engine;\n if (arg2) {\n // TODO: next: console.warn('`createdBundledHighlighter` signature with `bundledLanguages` and `bundledThemes` is deprecated. Use the options object signature instead.')\n bundledLanguages = arg1;\n bundledThemes = arg2;\n engine = () => createWasmOnigEngine(arg3);\n }\n else {\n const options = arg1;\n bundledLanguages = options.langs;\n bundledThemes = options.themes;\n engine = options.engine;\n }\n async function createHighlighter(options) {\n function resolveLang(lang) {\n if (typeof lang === 'string') {\n if (isSpecialLang(lang))\n return [];\n const bundle = bundledLanguages[lang];\n if (!bundle)\n throw new ShikiError(`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(`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 = (options.themes ?? []).map(i => resolveTheme(i));\n const langs = (options.langs ?? [])\n .map(i => resolveLang(i));\n const core = await createHighlighterCore({\n engine: engine(),\n ...options,\n themes: _themes,\n langs,\n });\n return {\n ...core,\n loadLanguage(...langs) {\n return core.loadLanguage(...langs.map(resolveLang));\n },\n loadTheme(...themes) {\n return core.loadTheme(...themes.map(resolveTheme));\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: options.themes || [],\n langs: options.langs || [],\n });\n return _shiki;\n }\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) {\n const getSingletonHighlighter = makeSingletonHighlighter(createHighlighter);\n return {\n getSingletonHighlighter(options) {\n return getSingletonHighlighter(options);\n },\n async codeToHtml(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToHtml(code, options);\n },\n async codeToHast(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToHast(code, options);\n },\n async codeToTokens(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToTokens(code, options);\n },\n async codeToTokensBase(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme],\n });\n return shiki.codeToTokensBase(code, options);\n },\n async codeToTokensWithThemes(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: Object.values(options.themes).filter(Boolean),\n });\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}\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) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass RegExpConversionError extends SyntaxError {\n constructor(message, options) {\n super(message, { cause: options.cause });\n __publicField(this, \"patternOriginal\");\n __publicField(this, \"patternConverted\");\n __publicField(this, \"cursorPosition\");\n this.patternOriginal = options.pattern;\n this.patternConverted = options.converted;\n this.cursorPosition = options.cursor;\n }\n}\n\nconst UNNECESSARY_ESCAPE_CHAR_CLASS = new Set(\"!?:=+$(){}_><# \");\nconst UNNECESSARY_ESCAPE = new Set(\"-!:=_>< \");\nconst TABLE_POSIX = {\n alnum: \"0-9A-Za-z\",\n alpha: \"A-Za-z\",\n ascii: \"\\0-\\x7F\",\n blank: \" \\\\t\",\n cntrl: \"\\0-\u001f\\x7F\",\n digit: \"\\\\d\",\n graph: \"!-~\",\n lower: \"a-z\",\n print: \" -~\",\n punct: \"!-/:-@[-`{-~\",\n space: \"\\\\s\",\n upper: \"A-Z\",\n xdigit: \"0-9A-Fa-f\",\n word: \"\\\\w\"\n};\nconst TABLE_SLASH_P = {\n alnum: \"0-9A-Za-z\",\n alpha: \"A-Za-z\",\n alphabetic: \"A-Za-z\",\n blank: \"\\\\s\",\n greek: \"\\\\p{Script=Greek}\",\n print: \"\\\\p{L}\\\\p{N}\\\\p{P}\\\\p{S}\\\\p{Zs}\",\n word: \"\\\\w\"\n};\nconst KNOWN_FLAGS = /* @__PURE__ */ new Set(\"gimsuyx\");\nfunction syntaxLowering(input, options = {}) {\n const {\n preserveFlags = false,\n removePossessiveQuantifier = false,\n removeAtomicGroup = false,\n convertHexDigitsShorthand = false,\n convertUnicodeCategory = false\n } = options;\n let output = \"\";\n const flags = /* @__PURE__ */ new Set();\n const stack = [];\n const freeSpacingLocal = [];\n let freeSpacingGlobal = false;\n let i = 0;\n try {\n while (i < input.length) {\n const char = input[i];\n while (freeSpacingLocal.length && freeSpacingLocal[0] > stack.length) {\n freeSpacingLocal.shift();\n }\n const head = stack[0];\n const freeSpacing = freeSpacingGlobal || freeSpacingLocal.length;\n if (char === \"\\\\\") {\n if (convertHexDigitsShorthand) {\n if (input[i + 1] === \"h\") {\n const body = `0-9A-Fa-f`;\n if (head === \"[\") {\n output += body;\n } else {\n output += `[${body}]`;\n }\n i += 2;\n continue;\n }\n if (input[i + 1] === \"H\") {\n if (head === \"[\") {\n throw new RegExpConversionError(\n \"Expending \\\\H in character class is not supported\",\n { pattern: input, converted: output, cursor: i }\n );\n } else {\n output += `[^0-9A-Fa-f]`;\n }\n i += 2;\n continue;\n }\n }\n if (convertUnicodeCategory && input[i + 1] === \"p\" && input[i + 2] === \"{\") {\n const end = input.indexOf(\"}\", i + 3);\n if (end === -1) {\n throw new RegExpConversionError(\n \"Unmatched \\\\p{...}\",\n { pattern: input, converted: output, cursor: i }\n );\n }\n const name = input.slice(i + 3, end);\n const resolved = TABLE_SLASH_P[name.toLowerCase()];\n if (resolved) {\n if (head === \"[\") {\n output += resolved;\n } else {\n output += `[${resolved}]`;\n }\n i = end + 1;\n continue;\n }\n }\n if (head === \"[\" && UNNECESSARY_ESCAPE_CHAR_CLASS.has(input[i + 1])) {\n output += input[i + 1];\n i += 2;\n continue;\n }\n if (head !== \"[\" && UNNECESSARY_ESCAPE.has(input[i + 1])) {\n output += input[i + 1];\n i += 2;\n continue;\n }\n output += char + input[i + 1];\n i += 2;\n continue;\n }\n if (char === \"#\" && freeSpacing && input[i - 1].match(/\\s/) && head !== \"[\") {\n for (let j = i + 1; j <= input.length; j++) {\n if (input[j] === \"\\n\" || j === input.length) {\n i = j;\n break;\n }\n }\n continue;\n }\n if (char === \"(\" && head !== \"[\") {\n if (input[i + 1] === \"?\") {\n if (input[i + 2] === \"#\") {\n for (let j = i + 3; j < input.length; j++) {\n if (input[j] === \")\" && input[j - 1] !== \"\\\\\") {\n i = j + 1;\n break;\n }\n }\n continue;\n }\n if (removeAtomicGroup && input[i + 2] === \">\") {\n output += \"(?:\";\n i += 3;\n continue;\n }\n if (KNOWN_FLAGS.has(input[i + 2])) {\n let end = i + 3;\n for (; end < input.length; end++) {\n if (!KNOWN_FLAGS.has(input[end]))\n break;\n }\n const flagStr = input.slice(i + 2, end);\n const hasX = flagStr.includes(\"x\") && flagStr[0] !== \"-\";\n let remainFlags = [...flagStr].filter((x) => x !== \"x\").join(\"\");\n if (!preserveFlags) {\n if (remainFlags[0] === \"-\") {\n remainFlags = remainFlags.slice(1);\n for (const flag of flagStr) {\n flags.delete(flag);\n }\n } else {\n for (const flag of remainFlags) {\n flags.add(flag);\n }\n }\n remainFlags = \"\";\n }\n if (input[end] === \")\") {\n i = end + 1;\n if (hasX) {\n freeSpacingGlobal = true;\n }\n if (remainFlags.length) {\n output += `(?${remainFlags})`;\n }\n continue;\n } else if (input[end] === \":\") {\n i = end + 1;\n stack.unshift(char);\n if (hasX) {\n freeSpacingLocal.unshift(stack.length);\n }\n output += `(?${remainFlags}:`;\n continue;\n }\n }\n stack.unshift(char);\n output += char + input[i + 1] + input[i + 2];\n i += 3;\n } else {\n stack.unshift(char);\n output += char;\n i += 1;\n }\n continue;\n }\n if (char === \")\" && head !== \"[\") {\n if (head === \"(\")\n stack.shift();\n output += char;\n i += 1;\n continue;\n }\n if (char === \"[\") {\n if (input[i + 1] === \":\") {\n let name = \"\";\n let negated = false;\n if (input[i + 2] === \"^\") {\n negated = true;\n i += 1;\n }\n for (let j = i + 2; j < input.length; j++) {\n if (input[j] === \":\") {\n i = j + 2;\n break;\n }\n if (!input[j].match(/[a-z]/i)) {\n name = \"\";\n break;\n }\n name += input[j];\n }\n if (name) {\n let resolved = TABLE_POSIX[name];\n if (!resolved) {\n throw new RegExpConversionError(\n `Unknown posix class \"${name}\"`,\n { pattern: input, converted: output, cursor: i }\n );\n }\n if (negated)\n resolved = `^${resolved}`;\n if (head === \"[\")\n output += resolved;\n else\n output += `[${resolved}]`;\n continue;\n }\n }\n if (head !== \"[\") {\n stack.unshift(char);\n }\n output += char;\n i += 1;\n continue;\n }\n if (char === \"]\") {\n if (head === \"[\")\n stack.shift();\n output += char;\n i += 1;\n continue;\n }\n if (removePossessiveQuantifier && char === \"+\" && head !== \"[\") {\n if (\"?+}*\".includes(input[i - 1])) {\n i += 1;\n continue;\n }\n }\n if (!(freeSpacing && head !== \"[\" && char.match(/\\s/))) {\n output += char;\n }\n i += 1;\n }\n } catch (e) {\n if (e instanceof RegExpConversionError)\n throw e;\n throw new RegExpConversionError(\n `Error lowering regex at position ${i}`,\n { pattern: input, converted: output, cursor: i, cause: e }\n );\n }\n return {\n pattern: output,\n flags: [...flags].join(\"\")\n };\n}\n\nfunction construct(pattern, options = {}) {\n const {\n original = pattern,\n flags = [\"g\"]\n } = options;\n if (pattern.startsWith(\"(?x)\") || pattern.includes(\"(?x:\")) {\n throw new RegExpConversionError(\n \"RegExp Free-spacing mode `(?x)` is not supported, you might want to run syntaxLowering() first\",\n { pattern: original, converted: pattern }\n );\n }\n if (pattern.match(/\\[:\\w+:\\]/)) {\n throw new RegExpConversionError(\n \"POSIX character classes are not supported, you might want to run syntaxLowering() first\",\n { pattern: original, converted: pattern }\n );\n }\n const flagSet = new Set(Array.isArray(flags) ? flags : flags.split(\"\"));\n if (options.ignoreContiguousAnchors) {\n pattern = pattern.replace(/\\\\G/g, \"\");\n }\n if (pattern.includes(\"\\\\p{\"))\n flagSet.add(\"u\");\n pattern = pattern.replace(/\\\\A/g, \"^\").replace(/\\\\Z/gi, \"$\").replace(/\\\\x\\{([^}]*)\\}/g, (m, hex) => `\\\\u${hex.padStart(4, \"0\")}`).replace(/\\(\\?(-)?(\\w+):/g, (_, neg, flagStr) => {\n if (neg) {\n for (const flag of flagStr)\n flagSet.delete(flag);\n } else {\n for (const flag of flagStr)\n flagSet.add(flag);\n }\n return \"(?:\";\n }).replace(/\\(\\?(-)?(\\w+)\\)/g, (_, neg, flags2) => {\n if (neg) {\n for (const flag of flags2)\n flagSet.delete(flag);\n } else {\n for (const flag of flags2)\n flagSet.add(flag);\n }\n return \"\";\n });\n if (flagSet.has(\"x\")) {\n throw new RegExpConversionError(\n \"JavaScript does not support extended mode (x flag), you might want to run syntaxLowering() first\",\n { pattern: original, converted: pattern }\n );\n }\n try {\n return new RegExp(pattern, [...flagSet].join(\"\"));\n } catch (e) {\n throw new RegExpConversionError(\n `Failed to construct RegExp`,\n {\n pattern: original,\n converted: pattern,\n cause: e\n }\n );\n }\n}\n\nfunction onigurumaToRegexp(pattern, options = {}) {\n const {\n pattern: converted,\n flags\n } = syntaxLowering(pattern, {\n removePossessiveQuantifier: true,\n removeAtomicGroup: true,\n convertHexDigitsShorthand: true,\n convertUnicodeCategory: true,\n ...options\n });\n return construct(converted, {\n original: pattern,\n ...options,\n flags: [.../* @__PURE__ */ new Set([...flags, ...options.flags || []])].join(\"\")\n });\n}\n\nconst MAX = 4294967295;\n/**\n * The default RegExp constructor for JavaScript regex engine.\n */\nfunction defaultJavaScriptRegexConstructor(pattern) {\n return onigurumaToRegexp(pattern\n .replace(/\\|\\\\G(\\||\\))/g, '$1')\n .replace(/(\\(|\\|)\\\\G\\|/g, '$1')\n // YAML specific handling; TODO: move to tm-grammars\n .replaceAll('[^\\\\s[-?:,\\\\[\\\\]{}#&*!|>\\'\"%@`]]', '[^\\\\s\\\\-?:,\\\\[\\\\]{}#&*!|>\\'\"%@`]'), {\n flags: 'dgm',\n ignoreContiguousAnchors: true,\n });\n}\nclass JavaScriptScanner {\n patterns;\n cache;\n forgiving;\n regexConstructor;\n regexps;\n constructor(patterns, cache, forgiving, regexConstructor = defaultJavaScriptRegexConstructor) {\n this.patterns = patterns;\n this.cache = cache;\n this.forgiving = forgiving;\n this.regexConstructor = regexConstructor;\n this.regexps = patterns.map((p) => {\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 }\n catch (e) {\n cache?.set(p, e);\n if (forgiving)\n return null;\n // console.error({ ...e })\n throw e;\n }\n });\n }\n findNextMatchSync(string, startPosition) {\n const str = typeof string === 'string'\n ? string\n : string.content;\n const pending = [];\n function toResult(index, match) {\n return {\n index,\n captureIndices: match.indices.map((indice) => {\n if (indice == null) {\n return {\n end: MAX,\n start: MAX,\n length: 0,\n };\n }\n return {\n start: indice[0],\n length: indice[1] - indice[0],\n end: indice[1],\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 the match is at the start position, return it immediately\n if (match.index === startPosition) {\n return toResult(i, match);\n }\n // Otherwise, store it for later\n pending.push([i, match]);\n }\n catch (e) {\n if (this.forgiving)\n continue;\n throw e;\n }\n }\n // Find the closest match to the start position\n if (pending.length) {\n const minIndex = Math.min(...pending.map(m => m[1].index));\n for (const [i, match] of pending) {\n if (match.index === minIndex) {\n return toResult(i, match);\n }\n }\n }\n return null;\n }\n}\n/**\n * Use the modern JavaScript RegExp engine to implement the OnigScanner.\n *\n * As Oniguruma regex is more powerful than JavaScript regex, some patterns may not be supported.\n * Errors will be thrown when parsing TextMate grammars with unsupported patterns.\n * Set `forgiving` to `true` to ignore these errors and skip the unsupported patterns.\n *\n * @experimental\n */\nfunction createJavaScriptRegexEngine(options = {}) {\n const { forgiving = false, cache = new Map(), } = options;\n return {\n createScanner(patterns) {\n return new JavaScriptScanner(patterns, cache, forgiving, options.regexConstructor);\n },\n createString(s) {\n return {\n content: s,\n };\n },\n };\n}\n\nexport { FontStyle, ShikiError, addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighterCore, createHighlighterCoreSync, createJavaScriptRegexEngine, createPositionConverter, createShikiInternal, createShikiInternalSync, createSingletonShorthands, createWasmOnigEngine, createdBundledHighlighter, defaultJavaScriptRegexConstructor, getHighlighterCore, getShikiInternal, getSingletonHighlighterCore, getTokenStyleObject, toHtml as hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, loadWasm, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeGetter, normalizeTheme, resolveColorReplacements, setDefaultWasmLoader, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations };\n","const bundledLanguagesInfo = [\n {\n \"id\": \"abap\",\n \"name\": \"ABAP\",\n \"import\": () => import('./langs/abap.mjs')\n },\n {\n \"id\": \"actionscript-3\",\n \"name\": \"ActionScript\",\n \"import\": () => import('./langs/actionscript-3.mjs')\n },\n {\n \"id\": \"ada\",\n \"name\": \"Ada\",\n \"import\": () => import('./langs/ada.mjs')\n },\n {\n \"id\": \"angular-html\",\n \"name\": \"Angular HTML\",\n \"import\": () => import('./langs/angular-html.mjs')\n },\n {\n \"id\": \"angular-ts\",\n \"name\": \"Angular TypeScript\",\n \"import\": () => import('./langs/angular-ts.mjs')\n },\n {\n \"id\": \"apache\",\n \"name\": \"Apache Conf\",\n \"import\": () => import('./langs/apache.mjs')\n },\n {\n \"id\": \"apex\",\n \"name\": \"Apex\",\n \"import\": () => import('./langs/apex.mjs')\n },\n {\n \"id\": \"apl\",\n \"name\": \"APL\",\n \"import\": () => import('./langs/apl.mjs')\n },\n {\n \"id\": \"applescript\",\n \"name\": \"AppleScript\",\n \"import\": () => import('./langs/applescript.mjs')\n },\n {\n \"id\": \"ara\",\n \"name\": \"Ara\",\n \"import\": () => import('./langs/ara.mjs')\n },\n {\n \"id\": \"asciidoc\",\n \"name\": \"AsciiDoc\",\n \"aliases\": [\n \"adoc\"\n ],\n \"import\": () => import('./langs/asciidoc.mjs')\n },\n {\n \"id\": \"asm\",\n \"name\": \"Assembly\",\n \"import\": () => import('./langs/asm.mjs')\n },\n {\n \"id\": \"astro\",\n \"name\": \"Astro\",\n \"import\": () => import('./langs/astro.mjs')\n },\n {\n \"id\": \"awk\",\n \"name\": \"AWK\",\n \"import\": () => import('./langs/awk.mjs')\n },\n {\n \"id\": \"ballerina\",\n \"name\": \"Ballerina\",\n \"import\": () => import('./langs/ballerina.mjs')\n },\n {\n \"id\": \"bat\",\n \"name\": \"Batch File\",\n \"aliases\": [\n \"batch\"\n ],\n \"import\": () => import('./langs/bat.mjs')\n },\n {\n \"id\": \"beancount\",\n \"name\": \"Beancount\",\n \"import\": () => import('./langs/beancount.mjs')\n },\n {\n \"id\": \"berry\",\n \"name\": \"Berry\",\n \"aliases\": [\n \"be\"\n ],\n \"import\": () => import('./langs/berry.mjs')\n },\n {\n \"id\": \"bibtex\",\n \"name\": \"BibTeX\",\n \"import\": () => import('./langs/bibtex.mjs')\n },\n {\n \"id\": \"bicep\",\n \"name\": \"Bicep\",\n \"import\": () => import('./langs/bicep.mjs')\n },\n {\n \"id\": \"blade\",\n \"name\": \"Blade\",\n \"import\": () => import('./langs/blade.mjs')\n },\n {\n \"id\": \"c\",\n \"name\": \"C\",\n \"import\": () => import('./langs/c.mjs')\n },\n {\n \"id\": \"cadence\",\n \"name\": \"Cadence\",\n \"aliases\": [\n \"cdc\"\n ],\n \"import\": () => import('./langs/cadence.mjs')\n },\n {\n \"id\": \"clarity\",\n \"name\": \"Clarity\",\n \"import\": () => import('./langs/clarity.mjs')\n },\n {\n \"id\": \"clojure\",\n \"name\": \"Clojure\",\n \"aliases\": [\n \"clj\"\n ],\n \"import\": () => import('./langs/clojure.mjs')\n },\n {\n \"id\": \"cmake\",\n \"name\": \"CMake\",\n \"import\": () => import('./langs/cmake.mjs')\n },\n {\n \"id\": \"cobol\",\n \"name\": \"COBOL\",\n \"import\": () => import('./langs/cobol.mjs')\n },\n {\n \"id\": \"codeowners\",\n \"name\": \"CODEOWNERS\",\n \"import\": () => import('./langs/codeowners.mjs')\n },\n {\n \"id\": \"codeql\",\n \"name\": \"CodeQL\",\n \"aliases\": [\n \"ql\"\n ],\n \"import\": () => import('./langs/codeql.mjs')\n },\n {\n \"id\": \"coffee\",\n \"name\": \"CoffeeScript\",\n \"aliases\": [\n \"coffeescript\"\n ],\n \"import\": () => import('./langs/coffee.mjs')\n },\n {\n \"id\": \"common-lisp\",\n \"name\": \"Common Lisp\",\n \"aliases\": [\n \"lisp\"\n ],\n \"import\": () => import('./langs/common-lisp.mjs')\n },\n {\n \"id\": \"coq\",\n \"name\": \"Coq\",\n \"import\": () => import('./langs/coq.mjs')\n },\n {\n \"id\": \"cpp\",\n \"name\": \"C++\",\n \"aliases\": [\n \"c++\"\n ],\n \"import\": () => import('./langs/cpp.mjs')\n },\n {\n \"id\": \"crystal\",\n \"name\": \"Crystal\",\n \"import\": () => import('./langs/crystal.mjs')\n },\n {\n \"id\": \"csharp\",\n \"name\": \"C#\",\n \"aliases\": [\n \"c#\",\n \"cs\"\n ],\n \"import\": () => import('./langs/csharp.mjs')\n },\n {\n \"id\": \"css\",\n \"name\": \"CSS\",\n \"import\": () => import('./langs/css.mjs')\n },\n {\n \"id\": \"csv\",\n \"name\": \"CSV\",\n \"import\": () => import('./langs/csv.mjs')\n },\n {\n \"id\": \"cue\",\n \"name\": \"CUE\",\n \"import\": () => import('./langs/cue.mjs')\n },\n {\n \"id\": \"cypher\",\n \"name\": \"Cypher\",\n \"aliases\": [\n \"cql\"\n ],\n \"import\": () => import('./langs/cypher.mjs')\n },\n {\n \"id\": \"d\",\n \"name\": \"D\",\n \"import\": () => import('./langs/d.mjs')\n },\n {\n \"id\": \"dart\",\n \"name\": \"Dart\",\n \"import\": () => import('./langs/dart.mjs')\n },\n {\n \"id\": \"dax\",\n \"name\": \"DAX\",\n \"import\": () => import('./langs/dax.mjs')\n },\n {\n \"id\": \"desktop\",\n \"name\": \"Desktop\",\n \"import\": () => import('./langs/desktop.mjs')\n },\n {\n \"id\": \"diff\",\n \"name\": \"Diff\",\n \"import\": () => import('./langs/diff.mjs')\n },\n {\n \"id\": \"docker\",\n \"name\": \"Dockerfile\",\n \"aliases\": [\n \"dockerfile\"\n ],\n \"import\": () => import('./langs/docker.mjs')\n },\n {\n \"id\": \"dotenv\",\n \"name\": \"dotEnv\",\n \"import\": () => import('./langs/dotenv.mjs')\n },\n {\n \"id\": \"dream-maker\",\n \"name\": \"Dream Maker\",\n \"import\": () => import('./langs/dream-maker.mjs')\n },\n {\n \"id\": \"edge\",\n \"name\": \"Edge\",\n \"import\": () => import('./langs/edge.mjs')\n },\n {\n \"id\": \"elixir\",\n \"name\": \"Elixir\",\n \"import\": () => import('./langs/elixir.mjs')\n },\n {\n \"id\": \"elm\",\n \"name\": \"Elm\",\n \"import\": () => import('./langs/elm.mjs')\n },\n {\n \"id\": \"emacs-lisp\",\n \"name\": \"Emacs Lisp\",\n \"aliases\": [\n \"elisp\"\n ],\n \"import\": () => import('./langs/emacs-lisp.mjs')\n },\n {\n \"id\": \"erb\",\n \"name\": \"ERB\",\n \"import\": () => import('./langs/erb.mjs')\n },\n {\n \"id\": \"erlang\",\n \"name\": \"Erlang\",\n \"aliases\": [\n \"erl\"\n ],\n \"import\": () => import('./langs/erlang.mjs')\n },\n {\n \"id\": \"fennel\",\n \"name\": \"Fennel\",\n \"import\": () => import('./langs/fennel.mjs')\n },\n {\n \"id\": \"fish\",\n \"name\": \"Fish\",\n \"import\": () => import('./langs/fish.mjs')\n },\n {\n \"id\": \"fluent\",\n \"name\": \"Fluent\",\n \"aliases\": [\n \"ftl\"\n ],\n \"import\": () => import('./langs/fluent.mjs')\n },\n {\n \"id\": \"fortran-fixed-form\",\n \"name\": \"Fortran (Fixed Form)\",\n \"aliases\": [\n \"f\",\n \"for\",\n \"f77\"\n ],\n \"import\": () => import('./langs/fortran-fixed-form.mjs')\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('./langs/fortran-free-form.mjs')\n },\n {\n \"id\": \"fsharp\",\n \"name\": \"F#\",\n \"aliases\": [\n \"f#\",\n \"fs\"\n ],\n \"import\": () => import('./langs/fsharp.mjs')\n },\n {\n \"id\": \"gdresource\",\n \"name\": \"GDResource\",\n \"import\": () => import('./langs/gdresource.mjs')\n },\n {\n \"id\": \"gdscript\",\n \"name\": \"GDScript\",\n \"import\": () => import('./langs/gdscript.mjs')\n },\n {\n \"id\": \"gdshader\",\n \"name\": \"GDShader\",\n \"import\": () => import('./langs/gdshader.mjs')\n },\n {\n \"id\": \"genie\",\n \"name\": \"Genie\",\n \"import\": () => import('./langs/genie.mjs')\n },\n {\n \"id\": \"gherkin\",\n \"name\": \"Gherkin\",\n \"import\": () => import('./langs/gherkin.mjs')\n },\n {\n \"id\": \"git-commit\",\n \"name\": \"Git Commit Message\",\n \"import\": () => import('./langs/git-commit.mjs')\n },\n {\n \"id\": \"git-rebase\",\n \"name\": \"Git Rebase Message\",\n \"import\": () => import('./langs/git-rebase.mjs')\n },\n {\n \"id\": \"gleam\",\n \"name\": \"Gleam\",\n \"import\": () => import('./langs/gleam.mjs')\n },\n {\n \"id\": \"glimmer-js\",\n \"name\": \"Glimmer JS\",\n \"aliases\": [\n \"gjs\"\n ],\n \"import\": () => import('./langs/glimmer-js.mjs')\n },\n {\n \"id\": \"glimmer-ts\",\n \"name\": \"Glimmer TS\",\n \"aliases\": [\n \"gts\"\n ],\n \"import\": () => import('./langs/glimmer-ts.mjs')\n },\n {\n \"id\": \"glsl\",\n \"name\": \"GLSL\",\n \"import\": () => import('./langs/glsl.mjs')\n },\n {\n \"id\": \"gnuplot\",\n \"name\": \"Gnuplot\",\n \"import\": () => import('./langs/gnuplot.mjs')\n },\n {\n \"id\": \"go\",\n \"name\": \"Go\",\n \"import\": () => import('./langs/go.mjs')\n },\n {\n \"id\": \"graphql\",\n \"name\": \"GraphQL\",\n \"aliases\": [\n \"gql\"\n ],\n \"import\": () => import('./langs/graphql.mjs')\n },\n {\n \"id\": \"groovy\",\n \"name\": \"Groovy\",\n \"import\": () => import('./langs/groovy.mjs')\n },\n {\n \"id\": \"hack\",\n \"name\": \"Hack\",\n \"import\": () => import('./langs/hack.mjs')\n },\n {\n \"id\": \"haml\",\n \"name\": \"Ruby Haml\",\n \"import\": () => import('./langs/haml.mjs')\n },\n {\n \"id\": \"handlebars\",\n \"name\": \"Handlebars\",\n \"aliases\": [\n \"hbs\"\n ],\n \"import\": () => import('./langs/handlebars.mjs')\n },\n {\n \"id\": \"haskell\",\n \"name\": \"Haskell\",\n \"aliases\": [\n \"hs\"\n ],\n \"import\": () => import('./langs/haskell.mjs')\n },\n {\n \"id\": \"haxe\",\n \"name\": \"Haxe\",\n \"import\": () => import('./langs/haxe.mjs')\n },\n {\n \"id\": \"hcl\",\n \"name\": \"HashiCorp HCL\",\n \"import\": () => import('./langs/hcl.mjs')\n },\n {\n \"id\": \"hjson\",\n \"name\": \"Hjson\",\n \"import\": () => import('./langs/hjson.mjs')\n },\n {\n \"id\": \"hlsl\",\n \"name\": \"HLSL\",\n \"import\": () => import('./langs/hlsl.mjs')\n },\n {\n \"id\": \"html\",\n \"name\": \"HTML\",\n \"import\": () => import('./langs/html.mjs')\n },\n {\n \"id\": \"html-derivative\",\n \"name\": \"HTML (Derivative)\",\n \"import\": () => import('./langs/html-derivative.mjs')\n },\n {\n \"id\": \"http\",\n \"name\": \"HTTP\",\n \"import\": () => import('./langs/http.mjs')\n },\n {\n \"id\": \"hxml\",\n \"name\": \"HXML\",\n \"import\": () => import('./langs/hxml.mjs')\n },\n {\n \"id\": \"hy\",\n \"name\": \"Hy\",\n \"import\": () => import('./langs/hy.mjs')\n },\n {\n \"id\": \"imba\",\n \"name\": \"Imba\",\n \"import\": () => import('./langs/imba.mjs')\n },\n {\n \"id\": \"ini\",\n \"name\": \"INI\",\n \"aliases\": [\n \"properties\"\n ],\n \"import\": () => import('./langs/ini.mjs')\n },\n {\n \"id\": \"java\",\n \"name\": \"Java\",\n \"import\": () => import('./langs/java.mjs')\n },\n {\n \"id\": \"javascript\",\n \"name\": \"JavaScript\",\n \"aliases\": [\n \"js\"\n ],\n \"import\": () => import('./langs/javascript.mjs')\n },\n {\n \"id\": \"jinja\",\n \"name\": \"Jinja\",\n \"import\": () => import('./langs/jinja.mjs')\n },\n {\n \"id\": \"jison\",\n \"name\": \"Jison\",\n \"import\": () => import('./langs/jison.mjs')\n },\n {\n \"id\": \"json\",\n \"name\": \"JSON\",\n \"import\": () => import('./langs/json.mjs')\n },\n {\n \"id\": \"json5\",\n \"name\": \"JSON5\",\n \"import\": () => import('./langs/json5.mjs')\n },\n {\n \"id\": \"jsonc\",\n \"name\": \"JSON with Comments\",\n \"import\": () => import('./langs/jsonc.mjs')\n },\n {\n \"id\": \"jsonl\",\n \"name\": \"JSON Lines\",\n \"import\": () => import('./langs/jsonl.mjs')\n },\n {\n \"id\": \"jsonnet\",\n \"name\": \"Jsonnet\",\n \"import\": () => import('./langs/jsonnet.mjs')\n },\n {\n \"id\": \"jssm\",\n \"name\": \"JSSM\",\n \"aliases\": [\n \"fsl\"\n ],\n \"import\": () => import('./langs/jssm.mjs')\n },\n {\n \"id\": \"jsx\",\n \"name\": \"JSX\",\n \"import\": () => import('./langs/jsx.mjs')\n },\n {\n \"id\": \"julia\",\n \"name\": \"Julia\",\n \"aliases\": [\n \"jl\"\n ],\n \"import\": () => import('./langs/julia.mjs')\n },\n {\n \"id\": \"kotlin\",\n \"name\": \"Kotlin\",\n \"aliases\": [\n \"kt\",\n \"kts\"\n ],\n \"import\": () => import('./langs/kotlin.mjs')\n },\n {\n \"id\": \"kusto\",\n \"name\": \"Kusto\",\n \"aliases\": [\n \"kql\"\n ],\n \"import\": () => import('./langs/kusto.mjs')\n },\n {\n \"id\": \"latex\",\n \"name\": \"LaTeX\",\n \"import\": () => import('./langs/latex.mjs')\n },\n {\n \"id\": \"lean\",\n \"name\": \"Lean 4\",\n \"aliases\": [\n \"lean4\"\n ],\n \"import\": () => import('./langs/lean.mjs')\n },\n {\n \"id\": \"less\",\n \"name\": \"Less\",\n \"import\": () => import('./langs/less.mjs')\n },\n {\n \"id\": \"liquid\",\n \"name\": \"Liquid\",\n \"import\": () => import('./langs/liquid.mjs')\n },\n {\n \"id\": \"log\",\n \"name\": \"Log file\",\n \"import\": () => import('./langs/log.mjs')\n },\n {\n \"id\": \"logo\",\n \"name\": \"Logo\",\n \"import\": () => import('./langs/logo.mjs')\n },\n {\n \"id\": \"lua\",\n \"name\": \"Lua\",\n \"import\": () => import('./langs/lua.mjs')\n },\n {\n \"id\": \"luau\",\n \"name\": \"Luau\",\n \"import\": () => import('./langs/luau.mjs')\n },\n {\n \"id\": \"make\",\n \"name\": \"Makefile\",\n \"aliases\": [\n \"makefile\"\n ],\n \"import\": () => import('./langs/make.mjs')\n },\n {\n \"id\": \"markdown\",\n \"name\": \"Markdown\",\n \"aliases\": [\n \"md\"\n ],\n \"import\": () => import('./langs/markdown.mjs')\n },\n {\n \"id\": \"marko\",\n \"name\": \"Marko\",\n \"import\": () => import('./langs/marko.mjs')\n },\n {\n \"id\": \"matlab\",\n \"name\": \"MATLAB\",\n \"import\": () => import('./langs/matlab.mjs')\n },\n {\n \"id\": \"mdc\",\n \"name\": \"MDC\",\n \"import\": () => import('./langs/mdc.mjs')\n },\n {\n \"id\": \"mdx\",\n \"name\": \"MDX\",\n \"import\": () => import('./langs/mdx.mjs')\n },\n {\n \"id\": \"mermaid\",\n \"name\": \"Mermaid\",\n \"import\": () => import('./langs/mermaid.mjs')\n },\n {\n \"id\": \"mojo\",\n \"name\": \"Mojo\",\n \"import\": () => import('./langs/mojo.mjs')\n },\n {\n \"id\": \"move\",\n \"name\": \"Move\",\n \"import\": () => import('./langs/move.mjs')\n },\n {\n \"id\": \"narrat\",\n \"name\": \"Narrat Language\",\n \"aliases\": [\n \"nar\"\n ],\n \"import\": () => import('./langs/narrat.mjs')\n },\n {\n \"id\": \"nextflow\",\n \"name\": \"Nextflow\",\n \"aliases\": [\n \"nf\"\n ],\n \"import\": () => import('./langs/nextflow.mjs')\n },\n {\n \"id\": \"nginx\",\n \"name\": \"Nginx\",\n \"import\": () => import('./langs/nginx.mjs')\n },\n {\n \"id\": \"nim\",\n \"name\": \"Nim\",\n \"import\": () => import('./langs/nim.mjs')\n },\n {\n \"id\": \"nix\",\n \"name\": \"Nix\",\n \"import\": () => import('./langs/nix.mjs')\n },\n {\n \"id\": \"nushell\",\n \"name\": \"nushell\",\n \"aliases\": [\n \"nu\"\n ],\n \"import\": () => import('./langs/nushell.mjs')\n },\n {\n \"id\": \"objective-c\",\n \"name\": \"Objective-C\",\n \"aliases\": [\n \"objc\"\n ],\n \"import\": () => import('./langs/objective-c.mjs')\n },\n {\n \"id\": \"objective-cpp\",\n \"name\": \"Objective-C++\",\n \"import\": () => import('./langs/objective-cpp.mjs')\n },\n {\n \"id\": \"ocaml\",\n \"name\": \"OCaml\",\n \"import\": () => import('./langs/ocaml.mjs')\n },\n {\n \"id\": \"pascal\",\n \"name\": \"Pascal\",\n \"import\": () => import('./langs/pascal.mjs')\n },\n {\n \"id\": \"perl\",\n \"name\": \"Perl\",\n \"import\": () => import('./langs/perl.mjs')\n },\n {\n \"id\": \"php\",\n \"name\": \"PHP\",\n \"import\": () => import('./langs/php.mjs')\n },\n {\n \"id\": \"plsql\",\n \"name\": \"PL/SQL\",\n \"import\": () => import('./langs/plsql.mjs')\n },\n {\n \"id\": \"po\",\n \"name\": \"Gettext PO\",\n \"aliases\": [\n \"pot\",\n \"potx\"\n ],\n \"import\": () => import('./langs/po.mjs')\n },\n {\n \"id\": \"postcss\",\n \"name\": \"PostCSS\",\n \"import\": () => import('./langs/postcss.mjs')\n },\n {\n \"id\": \"powerquery\",\n \"name\": \"PowerQuery\",\n \"import\": () => import('./langs/powerquery.mjs')\n },\n {\n \"id\": \"powershell\",\n \"name\": \"PowerShell\",\n \"aliases\": [\n \"ps\",\n \"ps1\"\n ],\n \"import\": () => import('./langs/powershell.mjs')\n },\n {\n \"id\": \"prisma\",\n \"name\": \"Prisma\",\n \"import\": () => import('./langs/prisma.mjs')\n },\n {\n \"id\": \"prolog\",\n \"name\": \"Prolog\",\n \"import\": () => import('./langs/prolog.mjs')\n },\n {\n \"id\": \"proto\",\n \"name\": \"Protocol Buffer 3\",\n \"aliases\": [\n \"protobuf\"\n ],\n \"import\": () => import('./langs/proto.mjs')\n },\n {\n \"id\": \"pug\",\n \"name\": \"Pug\",\n \"aliases\": [\n \"jade\"\n ],\n \"import\": () => import('./langs/pug.mjs')\n },\n {\n \"id\": \"puppet\",\n \"name\": \"Puppet\",\n \"import\": () => import('./langs/puppet.mjs')\n },\n {\n \"id\": \"purescript\",\n \"name\": \"PureScript\",\n \"import\": () => import('./langs/purescript.mjs')\n },\n {\n \"id\": \"python\",\n \"name\": \"Python\",\n \"aliases\": [\n \"py\"\n ],\n \"import\": () => import('./langs/python.mjs')\n },\n {\n \"id\": \"qml\",\n \"name\": \"QML\",\n \"import\": () => import('./langs/qml.mjs')\n },\n {\n \"id\": \"qmldir\",\n \"name\": \"QML Directory\",\n \"import\": () => import('./langs/qmldir.mjs')\n },\n {\n \"id\": \"qss\",\n \"name\": \"Qt Style Sheets\",\n \"import\": () => import('./langs/qss.mjs')\n },\n {\n \"id\": \"r\",\n \"name\": \"R\",\n \"import\": () => import('./langs/r.mjs')\n },\n {\n \"id\": \"racket\",\n \"name\": \"Racket\",\n \"import\": () => import('./langs/racket.mjs')\n },\n {\n \"id\": \"raku\",\n \"name\": \"Raku\",\n \"aliases\": [\n \"perl6\"\n ],\n \"import\": () => import('./langs/raku.mjs')\n },\n {\n \"id\": \"razor\",\n \"name\": \"ASP.NET Razor\",\n \"import\": () => import('./langs/razor.mjs')\n },\n {\n \"id\": \"reg\",\n \"name\": \"Windows Registry Script\",\n \"import\": () => import('./langs/reg.mjs')\n },\n {\n \"id\": \"regexp\",\n \"name\": \"RegExp\",\n \"aliases\": [\n \"regex\"\n ],\n \"import\": () => import('./langs/regexp.mjs')\n },\n {\n \"id\": \"rel\",\n \"name\": \"Rel\",\n \"import\": () => import('./langs/rel.mjs')\n },\n {\n \"id\": \"riscv\",\n \"name\": \"RISC-V\",\n \"import\": () => import('./langs/riscv.mjs')\n },\n {\n \"id\": \"rst\",\n \"name\": \"reStructuredText\",\n \"import\": () => import('./langs/rst.mjs')\n },\n {\n \"id\": \"ruby\",\n \"name\": \"Ruby\",\n \"aliases\": [\n \"rb\"\n ],\n \"import\": () => import('./langs/ruby.mjs')\n },\n {\n \"id\": \"rust\",\n \"name\": \"Rust\",\n \"aliases\": [\n \"rs\"\n ],\n \"import\": () => import('./langs/rust.mjs')\n },\n {\n \"id\": \"sas\",\n \"name\": \"SAS\",\n \"import\": () => import('./langs/sas.mjs')\n },\n {\n \"id\": \"sass\",\n \"name\": \"Sass\",\n \"import\": () => import('./langs/sass.mjs')\n },\n {\n \"id\": \"scala\",\n \"name\": \"Scala\",\n \"import\": () => import('./langs/scala.mjs')\n },\n {\n \"id\": \"scheme\",\n \"name\": \"Scheme\",\n \"import\": () => import('./langs/scheme.mjs')\n },\n {\n \"id\": \"scss\",\n \"name\": \"SCSS\",\n \"import\": () => import('./langs/scss.mjs')\n },\n {\n \"id\": \"shaderlab\",\n \"name\": \"ShaderLab\",\n \"aliases\": [\n \"shader\"\n ],\n \"import\": () => import('./langs/shaderlab.mjs')\n },\n {\n \"id\": \"shellscript\",\n \"name\": \"Shell\",\n \"aliases\": [\n \"bash\",\n \"sh\",\n \"shell\",\n \"zsh\"\n ],\n \"import\": () => import('./langs/shellscript.mjs')\n },\n {\n \"id\": \"shellsession\",\n \"name\": \"Shell Session\",\n \"aliases\": [\n \"console\"\n ],\n \"import\": () => import('./langs/shellsession.mjs')\n },\n {\n \"id\": \"smalltalk\",\n \"name\": \"Smalltalk\",\n \"import\": () => import('./langs/smalltalk.mjs')\n },\n {\n \"id\": \"solidity\",\n \"name\": \"Solidity\",\n \"import\": () => import('./langs/solidity.mjs')\n },\n {\n \"id\": \"soy\",\n \"name\": \"Closure Templates\",\n \"aliases\": [\n \"closure-templates\"\n ],\n \"import\": () => import('./langs/soy.mjs')\n },\n {\n \"id\": \"sparql\",\n \"name\": \"SPARQL\",\n \"import\": () => import('./langs/sparql.mjs')\n },\n {\n \"id\": \"splunk\",\n \"name\": \"Splunk Query Language\",\n \"aliases\": [\n \"spl\"\n ],\n \"import\": () => import('./langs/splunk.mjs')\n },\n {\n \"id\": \"sql\",\n \"name\": \"SQL\",\n \"import\": () => import('./langs/sql.mjs')\n },\n {\n \"id\": \"ssh-config\",\n \"name\": \"SSH Config\",\n \"import\": () => import('./langs/ssh-config.mjs')\n },\n {\n \"id\": \"stata\",\n \"name\": \"Stata\",\n \"import\": () => import('./langs/stata.mjs')\n },\n {\n \"id\": \"stylus\",\n \"name\": \"Stylus\",\n \"aliases\": [\n \"styl\"\n ],\n \"import\": () => import('./langs/stylus.mjs')\n },\n {\n \"id\": \"svelte\",\n \"name\": \"Svelte\",\n \"import\": () => import('./langs/svelte.mjs')\n },\n {\n \"id\": \"swift\",\n \"name\": \"Swift\",\n \"import\": () => import('./langs/swift.mjs')\n },\n {\n \"id\": \"system-verilog\",\n \"name\": \"SystemVerilog\",\n \"import\": () => import('./langs/system-verilog.mjs')\n },\n {\n \"id\": \"systemd\",\n \"name\": \"Systemd Units\",\n \"import\": () => import('./langs/systemd.mjs')\n },\n {\n \"id\": \"tasl\",\n \"name\": \"Tasl\",\n \"import\": () => import('./langs/tasl.mjs')\n },\n {\n \"id\": \"tcl\",\n \"name\": \"Tcl\",\n \"import\": () => import('./langs/tcl.mjs')\n },\n {\n \"id\": \"templ\",\n \"name\": \"Templ\",\n \"import\": () => import('./langs/templ.mjs')\n },\n {\n \"id\": \"terraform\",\n \"name\": \"Terraform\",\n \"aliases\": [\n \"tf\",\n \"tfvars\"\n ],\n \"import\": () => import('./langs/terraform.mjs')\n },\n {\n \"id\": \"tex\",\n \"name\": \"TeX\",\n \"import\": () => import('./langs/tex.mjs')\n },\n {\n \"id\": \"toml\",\n \"name\": \"TOML\",\n \"import\": () => import('./langs/toml.mjs')\n },\n {\n \"id\": \"ts-tags\",\n \"name\": \"TypeScript with Tags\",\n \"aliases\": [\n \"lit\"\n ],\n \"import\": () => import('./langs/ts-tags.mjs')\n },\n {\n \"id\": \"tsv\",\n \"name\": \"TSV\",\n \"import\": () => import('./langs/tsv.mjs')\n },\n {\n \"id\": \"tsx\",\n \"name\": \"TSX\",\n \"import\": () => import('./langs/tsx.mjs')\n },\n {\n \"id\": \"turtle\",\n \"name\": \"Turtle\",\n \"import\": () => import('./langs/turtle.mjs')\n },\n {\n \"id\": \"twig\",\n \"name\": \"Twig\",\n \"import\": () => import('./langs/twig.mjs')\n },\n {\n \"id\": \"typescript\",\n \"name\": \"TypeScript\",\n \"aliases\": [\n \"ts\"\n ],\n \"import\": () => import('./langs/typescript.mjs')\n },\n {\n \"id\": \"typespec\",\n \"name\": \"TypeSpec\",\n \"aliases\": [\n \"tsp\"\n ],\n \"import\": () => import('./langs/typespec.mjs')\n },\n {\n \"id\": \"typst\",\n \"name\": \"Typst\",\n \"aliases\": [\n \"typ\"\n ],\n \"import\": () => import('./langs/typst.mjs')\n },\n {\n \"id\": \"v\",\n \"name\": \"V\",\n \"import\": () => import('./langs/v.mjs')\n },\n {\n \"id\": \"vala\",\n \"name\": \"Vala\",\n \"import\": () => import('./langs/vala.mjs')\n },\n {\n \"id\": \"vb\",\n \"name\": \"Visual Basic\",\n \"aliases\": [\n \"cmd\"\n ],\n \"import\": () => import('./langs/vb.mjs')\n },\n {\n \"id\": \"verilog\",\n \"name\": \"Verilog\",\n \"import\": () => import('./langs/verilog.mjs')\n },\n {\n \"id\": \"vhdl\",\n \"name\": \"VHDL\",\n \"import\": () => import('./langs/vhdl.mjs')\n },\n {\n \"id\": \"viml\",\n \"name\": \"Vim Script\",\n \"aliases\": [\n \"vim\",\n \"vimscript\"\n ],\n \"import\": () => import('./langs/viml.mjs')\n },\n {\n \"id\": \"vue\",\n \"name\": \"Vue\",\n \"import\": () => import('./langs/vue.mjs')\n },\n {\n \"id\": \"vue-html\",\n \"name\": \"Vue HTML\",\n \"import\": () => import('./langs/vue-html.mjs')\n },\n {\n \"id\": \"vyper\",\n \"name\": \"Vyper\",\n \"aliases\": [\n \"vy\"\n ],\n \"import\": () => import('./langs/vyper.mjs')\n },\n {\n \"id\": \"wasm\",\n \"name\": \"WebAssembly\",\n \"import\": () => import('./langs/wasm.mjs')\n },\n {\n \"id\": \"wenyan\",\n \"name\": \"Wenyan\",\n \"aliases\": [\n \"\\u6587\\u8A00\"\n ],\n \"import\": () => import('./langs/wenyan.mjs')\n },\n {\n \"id\": \"wgsl\",\n \"name\": \"WGSL\",\n \"import\": () => import('./langs/wgsl.mjs')\n },\n {\n \"id\": \"wikitext\",\n \"name\": \"Wikitext\",\n \"aliases\": [\n \"mediawiki\",\n \"wiki\"\n ],\n \"import\": () => import('./langs/wikitext.mjs')\n },\n {\n \"id\": \"wolfram\",\n \"name\": \"Wolfram\",\n \"aliases\": [\n \"wl\"\n ],\n \"import\": () => import('./langs/wolfram.mjs')\n },\n {\n \"id\": \"xml\",\n \"name\": \"XML\",\n \"import\": () => import('./langs/xml.mjs')\n },\n {\n \"id\": \"xsl\",\n \"name\": \"XSL\",\n \"import\": () => import('./langs/xsl.mjs')\n },\n {\n \"id\": \"yaml\",\n \"name\": \"YAML\",\n \"aliases\": [\n \"yml\"\n ],\n \"import\": () => import('./langs/yaml.mjs')\n },\n {\n \"id\": \"zenscript\",\n \"name\": \"ZenScript\",\n \"import\": () => import('./langs/zenscript.mjs')\n },\n {\n \"id\": \"zig\",\n \"name\": \"Zig\",\n \"import\": () => import('./langs/zig.mjs')\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 getWasmInlined = async (info) => {\n return import('shiki/wasm').then((wasm) => wasm.default(info));\n};\n\nexport { getWasmInlined as g };\n","const bundledThemesInfo = [\n {\n \"id\": \"andromeeda\",\n \"displayName\": \"Andromeeda\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/andromeeda.mjs')\n },\n {\n \"id\": \"aurora-x\",\n \"displayName\": \"Aurora X\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/aurora-x.mjs')\n },\n {\n \"id\": \"ayu-dark\",\n \"displayName\": \"Ayu Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/ayu-dark.mjs')\n },\n {\n \"id\": \"catppuccin-frappe\",\n \"displayName\": \"Catppuccin Frapp\\xE9\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-frappe.mjs')\n },\n {\n \"id\": \"catppuccin-latte\",\n \"displayName\": \"Catppuccin Latte\",\n \"type\": \"light\",\n \"import\": () => import('./themes/catppuccin-latte.mjs')\n },\n {\n \"id\": \"catppuccin-macchiato\",\n \"displayName\": \"Catppuccin Macchiato\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-macchiato.mjs')\n },\n {\n \"id\": \"catppuccin-mocha\",\n \"displayName\": \"Catppuccin Mocha\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-mocha.mjs')\n },\n {\n \"id\": \"dark-plus\",\n \"displayName\": \"Dark Plus\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dark-plus.mjs')\n },\n {\n \"id\": \"dracula\",\n \"displayName\": \"Dracula Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula.mjs')\n },\n {\n \"id\": \"dracula-soft\",\n \"displayName\": \"Dracula Theme Soft\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula-soft.mjs')\n },\n {\n \"id\": \"everforest-dark\",\n \"displayName\": \"Everforest Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/everforest-dark.mjs')\n },\n {\n \"id\": \"everforest-light\",\n \"displayName\": \"Everforest Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/everforest-light.mjs')\n },\n {\n \"id\": \"github-dark\",\n \"displayName\": \"GitHub Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark.mjs')\n },\n {\n \"id\": \"github-dark-default\",\n \"displayName\": \"GitHub Dark Default\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-default.mjs')\n },\n {\n \"id\": \"github-dark-dimmed\",\n \"displayName\": \"GitHub Dark Dimmed\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-dimmed.mjs')\n },\n {\n \"id\": \"github-dark-high-contrast\",\n \"displayName\": \"GitHub Dark High Contrast\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-high-contrast.mjs')\n },\n {\n \"id\": \"github-light\",\n \"displayName\": \"GitHub Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light.mjs')\n },\n {\n \"id\": \"github-light-default\",\n \"displayName\": \"GitHub Light Default\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-default.mjs')\n },\n {\n \"id\": \"github-light-high-contrast\",\n \"displayName\": \"GitHub Light High Contrast\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-high-contrast.mjs')\n },\n {\n \"id\": \"houston\",\n \"displayName\": \"Houston\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/houston.mjs')\n },\n {\n \"id\": \"laserwave\",\n \"displayName\": \"LaserWave\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/laserwave.mjs')\n },\n {\n \"id\": \"light-plus\",\n \"displayName\": \"Light Plus\",\n \"type\": \"light\",\n \"import\": () => import('./themes/light-plus.mjs')\n },\n {\n \"id\": \"material-theme\",\n \"displayName\": \"Material Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme.mjs')\n },\n {\n \"id\": \"material-theme-darker\",\n \"displayName\": \"Material Theme Darker\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-darker.mjs')\n },\n {\n \"id\": \"material-theme-lighter\",\n \"displayName\": \"Material Theme Lighter\",\n \"type\": \"light\",\n \"import\": () => import('./themes/material-theme-lighter.mjs')\n },\n {\n \"id\": \"material-theme-ocean\",\n \"displayName\": \"Material Theme Ocean\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-ocean.mjs')\n },\n {\n \"id\": \"material-theme-palenight\",\n \"displayName\": \"Material Theme Palenight\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-palenight.mjs')\n },\n {\n \"id\": \"min-dark\",\n \"displayName\": \"Min Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/min-dark.mjs')\n },\n {\n \"id\": \"min-light\",\n \"displayName\": \"Min Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/min-light.mjs')\n },\n {\n \"id\": \"monokai\",\n \"displayName\": \"Monokai\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/monokai.mjs')\n },\n {\n \"id\": \"night-owl\",\n \"displayName\": \"Night Owl\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/night-owl.mjs')\n },\n {\n \"id\": \"nord\",\n \"displayName\": \"Nord\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/nord.mjs')\n },\n {\n \"id\": \"one-dark-pro\",\n \"displayName\": \"One Dark Pro\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/one-dark-pro.mjs')\n },\n {\n \"id\": \"one-light\",\n \"displayName\": \"One Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/one-light.mjs')\n },\n {\n \"id\": \"plastic\",\n \"displayName\": \"Plastic\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/plastic.mjs')\n },\n {\n \"id\": \"poimandres\",\n \"displayName\": \"Poimandres\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/poimandres.mjs')\n },\n {\n \"id\": \"red\",\n \"displayName\": \"Red\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/red.mjs')\n },\n {\n \"id\": \"rose-pine\",\n \"displayName\": \"Ros\\xE9 Pine\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine.mjs')\n },\n {\n \"id\": \"rose-pine-dawn\",\n \"displayName\": \"Ros\\xE9 Pine Dawn\",\n \"type\": \"light\",\n \"import\": () => import('./themes/rose-pine-dawn.mjs')\n },\n {\n \"id\": \"rose-pine-moon\",\n \"displayName\": \"Ros\\xE9 Pine Moon\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine-moon.mjs')\n },\n {\n \"id\": \"slack-dark\",\n \"displayName\": \"Slack Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/slack-dark.mjs')\n },\n {\n \"id\": \"slack-ochin\",\n \"displayName\": \"Slack Ochin\",\n \"type\": \"light\",\n \"import\": () => import('./themes/slack-ochin.mjs')\n },\n {\n \"id\": \"snazzy-light\",\n \"displayName\": \"Snazzy Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/snazzy-light.mjs')\n },\n {\n \"id\": \"solarized-dark\",\n \"displayName\": \"Solarized Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/solarized-dark.mjs')\n },\n {\n \"id\": \"solarized-light\",\n \"displayName\": \"Solarized Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/solarized-light.mjs')\n },\n {\n \"id\": \"synthwave-84\",\n \"displayName\": \"Synthwave '84\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/synthwave-84.mjs')\n },\n {\n \"id\": \"tokyo-night\",\n \"displayName\": \"Tokyo Night\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/tokyo-night.mjs')\n },\n {\n \"id\": \"vesper\",\n \"displayName\": \"Vesper\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vesper.mjs')\n },\n {\n \"id\": \"vitesse-black\",\n \"displayName\": \"Vitesse Black\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-black.mjs')\n },\n {\n \"id\": \"vitesse-dark\",\n \"displayName\": \"Vitesse Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-dark.mjs')\n },\n {\n \"id\": \"vitesse-light\",\n \"displayName\": \"Vitesse Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/vitesse-light.mjs')\n }\n];\nconst bundledThemes = Object.fromEntries(bundledThemesInfo.map((i) => [i.id, i.import]));\n\nexport { bundledThemes, bundledThemesInfo };\n","var FontStyle;\n(function (FontStyle) {\n FontStyle[FontStyle[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle[FontStyle[\"None\"] = 0] = \"None\";\n FontStyle[FontStyle[\"Italic\"] = 1] = \"Italic\";\n FontStyle[FontStyle[\"Bold\"] = 2] = \"Bold\";\n FontStyle[FontStyle[\"Underline\"] = 4] = \"Underline\";\n})(FontStyle || (FontStyle = {}));\n\nexport { FontStyle };\n","import { bundledLanguages } from './langs.mjs';\nexport { bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo } from './langs.mjs';\nimport { g as getWasmInlined } from './chunks/wasm-dynamic.mjs';\nimport { bundledThemes } from './themes.mjs';\nexport { bundledThemesInfo } from './themes.mjs';\nimport { createdBundledHighlighter, createWasmOnigEngine, createSingletonShorthands } from '@shikijs/core';\nexport * from '@shikijs/core';\nexport { createCssVariablesTheme } from './theme-css-variables.mjs';\n\nconst createHighlighter = /* @__PURE__ */ createdBundledHighlighter({\n langs: bundledLanguages,\n themes: bundledThemes,\n engine: () => createWasmOnigEngine(getWasmInlined)\n});\nconst {\n codeToHtml,\n codeToHast,\n codeToTokens,\n codeToTokensBase,\n codeToTokensWithThemes,\n getSingletonHighlighter,\n getLastGrammarState\n} = /* @__PURE__ */ createSingletonShorthands(\n createHighlighter\n);\nconst getHighlighter = (options) => {\n return createHighlighter(options);\n};\n\nexport { bundledLanguages, bundledThemes, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighter, getHighlighter, getLastGrammarState, getSingletonHighlighter, getWasmInlined };\n","/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html, property, CSSResultArray, TemplateResult, PropertyValueMap } from 'lit-element';\nimport { customElement, state } from 'lit/decorators.js';\nimport { styles } from './nile-highlighter.css';\nimport NileElement from '../internal/nile-element';\n\nimport { codeToHtml } from 'shiki'\nimport { ShikiTheme, ShikiLanguage } from './theme-list';\n\n\n/**\n * Nile highlighter component.\n *\n * @tag nile-highlighter\n *\n */\n@customElement('nile-highlighter')\nexport class NileHighlighter extends NileElement {\n\n\t@property({ type: String}) code = ``;\n\t\n\t@property({ type: String, reflect:true }) language : ShikiLanguage = 'javascript';\n\n\t@property({ type: String, reflect:true }) theme: ShikiTheme = 'min-light';\n\n\t@state() highlightedCode = '';\n\t\n\t/**\n\t * The styles for nile-highlighter\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t/* #endregion */\n\n\n\tprotected async updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>) {\n\t\tif (changedProperties.has('code') || changedProperties.has('language') || changedProperties.has('theme')) {\n\t\t\tthis.highlightedCode = await codeToHtml(this.code, {\n\t\t\t\tlang: this.language,\n\t\t\t\ttheme: this.theme\n\t\t\t})\n\t\t\tthis.requestUpdate();\n\t\t}\n\t}\n\t/* #region Methods */\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t\t\t<div class=\"code-container\" .innerHTML=${this.highlightedCode}></div>\n\t\t\t`;\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileHighlighter;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'nile-highlighter': NileHighlighter;\n\t}\n}"],"names":["doClone","something","Array","isArray","arr","r","i","len","length","cloneArray","obj","key","cloneObj","mergeObjects","target","_len","arguments","sources","_key","forEach","source","basename","path","idx","lastIndexOf","substring","substr","strcmp","a","b","strArrCmp","len1","len2","res","isValidHexColor","hex","test","escapeRegExpCharacters","value","replace","_matchesScope","scopeName","scopePattern","startsWith","createMatchers","selector","matchesName","results","tokenizer","input","regex","match","exec","next","newTokenizer","token","priority","charAt","console","log","matcher","parseConjunction","push","parseOperand","expressionToNegate","matcherInput","expressionInParents","matchers","some","matcher2","parseInnerExpression","isIdentifier","identifiers","s","every","disposeOnigString","str","dispose","collectReferencesOfReference","reference","baseGrammarScopeName","repo","result","selfGrammar","lookup","Error","baseGrammar","TopLevelRuleReference","collectExternalReferencesInTopLevelRule","collectExternalReferencesInTopLevelRepositoryRule","ruleName","repository","injections","_iterator4","_createForOfIteratorHelper","_step4","n","done","injection","add","err","e","f","context","collectExternalReferencesInRules","patterns","_objectSpread","Object","values","rules","_step5","_iterator5","rule","visitedRule","has","patternRepository","include","parseInclude","kind","newContext","TopLevelRepositoryRuleReference","BaseReference","SelfReference","indexOfSharp","indexOf","TopLevelReference","RelativeReference","TopLevelRepositoryReference","_tokenizeString","grammar","lineText","isFirstLine","linePos","stack","lineTokens","checkWhileConditions","timeLimit","lineLength","content","STOP","anchorPosition","whileCheckResult","beginRuleCapturedEOL","whileRules","node","pop","nodeRule","getRule","BeginWhileRule","whileRule","_jt","prepareRuleWhileSearch","endRule","ruleScanner","findOptions","findNextMatchSync","ruleId","whileRuleId","captureIndices","produce","start","handleCaptures","whileCaptures","end","_checkWhileConditions","startTime","Date","now","TokenizeStringResult","scanNext","matchResult","prepareRuleSearch","matchedRuleId","matchRule","getInjections","injectionResult","bestMatchRuleId","bestMatchRating","Number","MAX_VALUE","bestMatchCaptureIndices","bestMatchResultPriority","scopes","contentNameScopesList","getScopeNames","matchRating","priorityMatch","matchInjections","matchResultScore","injectionResultScore","matchRuleOrInjections","hasAdvanced","endRuleId","poppedRule","withContentNameScopesList","nameScopesList","endCaptures","popped","parent","getAnchorPos","getEnterPos","_rule","beforePush","getName","pushAttributed","BeginEndRule","pushedRule","beginCaptures","contentName","getContentName","endHasBackReferences","withEndRule","getEndWithResolvedBackReferences","hasSameRuleAs","whileHasBackReferences","getWhileWithResolvedBackReferences","captures","safePop","endRegexSource","allowA","allowG","compileAG","compileWhileAG","lineTextContent","Math","min","localStack","maxEnd","captureRule","captureIndex","endPos","produceFromScopes","retokenizeCapturedWithRuleId","stackClone","onigSubStr","createOnigString","captureRuleScopeName","captureRuleScopesList","LocalStackElement","collectInjections","ruleFactoryHelper","nameMatcher","RuleFactory","getCompiledRuleId","_iterator9","_step9","debugSelector","identifers","lastIndex","identifier","scopesAreMatching","thisScopeName","initGrammar","base","$self","$vscodeTextmateLocation","name","$base","splitLines","code","preserveEnding","parts","split","index","lines","_n26","line","isPlainLang","lang","includes","isSpecialLang","isNoneTheme","theme","isSpecialTheme","addClassToHast","className","_t$properties","properties","targets","_iterator18","c","_step18","class","async","normalizeGetter","p","_regeneratorRuntime","wrap","_callee14$","_context15","prev","abrupt","Promise","resolve","then","stop","_callee14","_t70","apply","resolveColorReplacements","options","replacements","colorReplacements","themeName","_i18","_Object$entries","entries","_Object$entries$_i","_slicedToArray","assign","applyColorReplacements","color","toLowerCase","getTokenStyleObject","styles","bgColor","fontStyle","FontStyle","Italic","Bold","Underline","stringifyTokenStyle","map","_ref4","_ref5","join","transformerDecorations","WeakMap","getContext","shiki","meta","normalizePosition","ShikiError","concat","converter","indexToPos","offset","undefined","JSON","stringify","character","posToIndex","_ref6","_ref7","_iterator19","_step19","createPositionConverter","decorations","d","items","foo","j","bar","isFooHasBarStart","isFooHasBarEnd","isBarHasFooStart","isBarHasFooEnd","verifyIntersections","set","get","tokens","_this$options$decorat","this","splitted","breakpoints","sorted","from","Set","sort","flatMap","breakpointsInToken","filter","offsets","lastOffset","_iterator20","_step20","slice","splitToken","splitTokens","codeEl","ctx","children","type","tagName","applyLineSection","decoration","lineEl","text","startIndex","endIndex","POSITIVE_INFINITY","stringify$2","alwaysWrap","wrapper","applyDecoration","splice","applyLine","el","transform","lineApplies","_iterator21","_loop2","_i21","unshift","_step21","_loop","getTransformers","_toConsumableArray","transformers","builtInTransformers","findSequence","position","nextEscape","nextClose","sequence","startPosition","parseColor","colorMode","rgb","x","parseInt","isNaN","colorIndex","parseSequence","commands","codeInt","namedColors","_Zt","_Zt3","createColorPalette","defaultNamedColorsMap","namedColorsMap","namedColor","rgbColor","max","toString","padStart","colorTable","tableColor","levels","g","level","getColorTable","tokenizeAnsiWithTheme","fileContents","colorPalette","fromEntries","_t$colors","colors","toUpperCase","parser","foreground","background","decorations2","parse","findResult","_iterator22","_step22","styleToken","clear","_iterator23","_step23","createAnsiSequenceParser","bg","fg","hexMatch","alpha","round","cssVarMatch","dimColor","None","l","codeToTokensBase","internal","_n$lang","getLoadedThemes","_n$theme","_t$setTheme","setTheme","colorMap","_grammar","getLanguage","grammarState","_tokenizeWithTheme","tokenizeWithTheme","tokenizeMaxLineLength","tokenizeTimeLimit","_r$tokenizeTimeLimit","stateStack","state","GrammarState","_stack","getGrammarStack","grammarContextCode","INITIAL","actual","final","_a$_t","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","includeExplanation","tokenizeLine","tokenizeLine2","tokensLength","nextStartIndex","metadata","EncodedTokenMetadata","getForeground","getFontStyle","themeSettingsSelectors","_iterator24","settings","_step24","setting","selectors","_typeof","scope","trim","explanation","tokenWithScopes","tokenWithScopesText","explainThemeScopesFull","ruleStack","themeSelectors","themeMatches","explainThemeScope","matchesOne","matches","parentScopes","selectorParentIndex","parentIndex","_iterator25","_step25","_step25$value","_iterator26","_step26","selectorPieces","codeToTokensWithThemes","themes","_len2","_key2","outThemes","count","_loop3","_i30","t","outLines","indexes","current","minLength","syncThemesTokenization","mergedTokens","lineIdx","_token","tokenIdx","mergedToken","variants","themeIdx","_t$e$o","_","__","___","codeToTokens","rootStyle","_n$defaultColor","defaultColor","cssVariablePrefix","_n$cssVariablePrefix","themeTokens","find","themeRegs","getTheme","themesOrder","merged","variantsOrder","styleKeys","keys","mergedStyles","reduce","acc","cur","_step27","_iterator27","keyName","varKey","htmlStyle","mergeToken","themeColorReplacements","_theme","codeToHast","_options","transformerContext","_code","_iterator28","_step28","transformer","preprocess","call","_me","_n$mergeWhitespaces","mergeWhitespaces","newLine","carryOnContent","firstOffset","couldMerge","mergeWhitespaceTokens","_e40","leading","trailing","expanded","splitWhitespaceTokens","contextSource","_iterator29","_step29","root","structure","preNode","style","tabindex","_ref8","_ref9","codeNode","lineNodes","pre","lineNode","col","_iterator30","_step30","tokenNode","_iterator32","_step32","span","_iterator31","_step31","_iterator33","_step33","_iterator34","_step34","_iterator35","_step35","tokensToHast","merge","definitions","space","property","normal","Schema","normalize","increment","Le","pow","powers","mark","create","definition","prop","own$3","info","DefinedInfo","attributes","mustUseProperty","attribute","caseSensitiveTransform","caseInsensitiveTransform","kebab","$0","camelcase","core","subset","groups","RegExp","charactersToExpression","basic","escapeOnly","pair","all","format","charCodeAt","formatSmart","named","numeric","omit","String","fromCharCode","toHexadecimal","omitOptionalSemicolons","useNamedReferences","useShortestReferences","own$1","characters","characterEntitiesLegacy","dangerous","toNamed","decimal","toDecimal","stringifyEntities","ccount","TypeError","stringify$1","padRight","padLeft","whitespace","thing","empty","re","siblings","includeWhitespace","emptyChildren$1","omission","handlers","own","headOrColgroupOrCaption","siblingAfter","rubyElement","cells","serializeAttribute","schema","Type","Info","valid","rest","dash","dashes","cap","allowParseErrors","y","allowDangerousCharacters","quote","overloadedBoolean","Boolean","characterReferences","constants","commaSeparated","tightCommaSeparatedLists","collapseEmptyAttributes","preferUnquoted","unquoted","quoteSmart","alternative","single","double","textEntitySubset","one","handle","emptyChildren","codeToHtml","tree","options_","emptyOptions","omitOptionalTags","tightAttributes","upperDoctype","tightDoctype","bogusComments","tightSelfClosing","allowDangerousHtml","voids","htmlVoidElements","emptyCharacterReferences","closeSelfClosing","closeEmptyElements","svg","html$2","toHtml","_iterator36","_step36","postprocess","_emscripten_get_now","performance","main","init","updateGlobalBufferAndViews","emscripten_realloc_buffer","UTF8ToString","ptr","maxBytesToRead","heapOrArray","endIdx","endPtr","buffer","UTF8Decoder","decode","subarray","u0","u1","u2","ch","UTF8ArrayToString","binding","HEAPU8","size","wasmMemory","grow","byteLength","_unused","buf","Uint8Array","HEAPU32","Uint32Array","TextDecoder","asmLibraryArg","emscripten_get_now","emscripten_memcpy_big","dest","src","num","copyWithin","emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","alignUp","fd_write","_context17","env","wasi_snapshot_preview1","exports","memory","_context16","_callee15","createWasm","_callee16","_In","loadWasm","initPromise","_callee3$","_context4","instance","instantiator","dataOrOptions","default","isInstantiatorModule","data","isDataOptionsObject","Response","isResponse","_Buffer$isBuffer","_Buffer","ArrayBuffer","isView","Buffer","isBuffer","SharedArrayBuffer","isArrayBuffer","WebAssembly","Module","_makeArrayBufferLoader","instantiateStreaming","importObject","_ref12","_asyncToGenerator","_callee2$","_context3","arrayBuffer","instantiate","_callee2","_x5","_makeResponseNonStreamingLoader","_callee3","_x4","_ref11","onigBinding","_load","createWasmOnigEngine","_context18","createScanner","OnigScanner","createString","OnigString","_callee17","_Wn","normalizeTheme","rawTheme","RESOLVED_KEY","tokenColors","_t97$settings","_t97$settings2","_e$colors","_e$colors2","globalSetting","VSCODE_FALLBACK_EDITOR_FG","light","dark","VSCODE_FALLBACK_EDITOR_BG","replacementCount","replacementMap","Map","getReplacementColor","_e$colorReplacements","replaceFg","replaceBg","clone","replacement","_i37","_Object$keys2","_e$colors$_t","defineProperty","enumerable","writable","resolveLangs","langs","flat","_context20","t0","t3","_callee19","resolveThemes","_context21","t1","_Qn","createShikiInternal","engine","_defaultWasmLoader","_yield$Promise$all","_context26","sent","_yield$Promise$all2","instancesCount","warnings","warn","isDisposed","resolver","Resolver","_registry","Registry","langAlias","_lastTheme","ensureNotDisposed","loadLanguageSync","loadLanguages","loadThemeSync","_len7","_args13","_iterator40","_step40","loadTheme","_context25","_callee24","_c8","_defineProperty","getColorMap","_lang","getGrammar","getLoadedLanguages","loadLanguage","_len8","_key8","_args11","_context23","Symbol","createShikiInternalSync","_callee25","createHighlighterCore","getLastGrammarState","_n$lang2","_n$theme2","_t$setTheme2","getInternalContext","_ri","createdBundledHighlighter","arg1","arg2","arg3","bundledLanguages","bundledThemes","o","_ref23","resolveLang","resolveTheme","bundle","_themes","_t$themes","_t$langs","_len4","_len5","_context6","_callee5","_x9","createSingletonShorthands","createHighlighter","getSingletonHighlighter","_shiki","_args6","_context7","_callee6","makeSingletonHighlighter","_codeToHtml","_callee7","_callee8","_callee9","_codeToTokensBase","_callee10","_callee11","_callee12","setters","_tslib","bundledLanguagesInfo","id","import","_import","_context","aliases","getWasmInlined","wasm","bundledThemesInfo","displayName","NotSet","CAPTURING_REGEX_SOURCE","RegexSource","hasCaptures","regexSource","replaceCaptures","captureSource","commandIndex","command","capture","CachedFn","k","fn","cache","_createClass","Theme","S","_colorMap","_defaults","_root","_cachedMatchRoot","getDefaults","scopePath","effectiveRule","v","scopeMustMatch","_scopePathMatchesParentScopes","StyleAttributes","createFromRawTheme","createFromParsedTheme","resultLen","entry","_scope","segments","lenJ","reverse","ParsedThemeRule","parseTheme","parsedThemeRules","defaultFontStyle","defaultForeground","defaultBackground","incomingDefaults","shift","ColorMap","defaults","getId","ThemeTrieElement","ThemeTrieElementRule","insert","resolveParsedThemeRules","ScopeStack","_ScopeStack","getSegments","item","_extends","other","getExtensionIfDefined","scopeNames","_iterator","_step","L","foregroundId","backgroundId","T","A","_lastColorId","_id2color","_color2id","_isFrozen","emptyParentScopes","freeze","scopeDepth","_ThemeTrieElementRule","acceptOverwrite","cloneArr","_mainRule","rulesWithParentScopes","_children","_rulesWithParentScopes","head","tail","dotIndex","hasOwnProperty","_ThemeTrieElement","_cmpBySpecificity","_doInsertHere","child","aParentIndex","bParentIndex","parentScopeLengthDiff","toBinaryStr","encodedTokenAttributes","print","languageId","_EncodedTokenMetadata","getLanguageId","tokenType","getTokenType","getBackground","containsBalancedBrackets","_languageId","_tokenType","_containsBalancedBracketsBit","_fontStyle","_foreground","_background","$","toKey","B","ExternalReferenceCollector","I","_references","_seenReferenceKeys","ScopeDependencyProcessor","initialScopeName","seenFullScopeRequests","seenPartialScopeRequests","Q","processQueue","q","deps","_iterator2","_step2","dep","_iterator3","references","_step3","F","U","W","V","J","HAS_BACK_REFERENCES","BACK_REFERENCING_END","Rule","tt","$location","_name","_nameIsCapturing","_contentName","_contentNameIsCapturing","debugName","location","filename","constructor","CaptureRule","_tt","et","super","_this2","_inherits","collectPatterns","out","compile","MatchRule","nt","_match","RegExpSource","_cachedCompiledPatterns","_this3","_tt2","debugMatchRegExp","_getCachedCompiledPatterns","RegExpSourceList","IncludeOnlyRule","it","hasMissingPatterns","_this4","_tt3","_step6","_iterator6","pattern","_tt4","rt","begin","applyEndPatternLast","_begin","_end","hasBackReferences","_this5","debugEndRegExp","resolveBackReferences","_iterator7","_step7","setSource","ot","_while","_cachedCompiledWhilePatterns","_this6","_tt5","_iterator8","_step8","compileWhile","_getCachedCompiledWhilePatterns","createCaptureRule","helper","registerRule","desc","_RuleFactory","_compileCaptures","_compilePatterns","while","maximumCaptureId","captureId","numericCaptureId","localIncludedRule","externalGrammarName","externalGrammarInclude","externalGrammar","getExternalGrammar","externalIncludedRule","skipRule","regExpSource","_classCallCheck","lastPushedPos","output","hasAnchor","pos","nextCh","_anchorCache","_buildAnchorCache","_RegExpSource","newSource","capturedValues","g1","A0_G0_result","A0_G1_result","A1_G0_result","A1_G1_result","A0_G0","A0_G1","A1_G0","A1_G1","resolveAnchors","at","_items","_hasAnchors","_cached","_disposeCaches","onigLib","regExps","CompiledRule","_resolveAnchors","ct","scanner","createOnigScanner","string","BasicScopeAttributes","ut","_BasicScopeAttributesProvider","initialLanguageId","embeddedLanguages","_getBasicScopeAttributes","_scopeToLanguage","standardTokenType","_toStandardTokenType","_defaultAttributes","_embeddedLanguagesMatcher","ScopeMatcher","getDefaultAttributes","getBasicScopeAttributes","_NULL_SCOPE_METADATA","m","STANDARD_TOKEN_TYPE_REGEXP","BasicScopeAttributesProvider","ht","scopesRegExp","escapedScopes","_ref2","_ref3","process","VSCODE_TEXTMATE_DEBUG","dt","stoppedEarly","bt","Grammar","St","_rootScopeName","initialLanguage","tokenTypes","balancedBracketSelectors","grammarRepository","_onigLib","_basicScopeAttributesProvider","_rootId","_lastRuleId","_ruleId2desc","_includedGrammars","_grammarRepository","_injections","_tokenTypeMatchers","_i15","_Object$keys","_iterator10","_step10","_iterator11","_step11","getMetadataForScope","_collectInjections","_this8","scopeName2","rawInjections","expression","injectionScopeNames","injectionScopeName","injectionGrammar","injectionSelector","i1","i2","factory","rawIncludedGrammar","prevState","_tokenize","getResult","getBinaryResult","emitBinaryTokens","StateStackImpl","NULL","reset","rawDefaultMetadata","defaultStyle","themeProvider","defaultMetadata","rootScopeName","scopeList","AttributedScopeStack","createRootAndLookUpScopeName","createRoot","onigLineText","LineTokens","tokenAttributes","equals","_AttributedScopeStack","_pushAttributed","_iterator12","_step12","self","fromExtension","namesScopeList","_e$scopePath","_iterator13","_step13","frame","rawRootMetadata","themeMatch","resolvedTokenAttributes","mergeAttributes","existingTokenAttributes","basicScopeAttributes","styleAttributes","rawMetadata","newPath","scopeThemeMatchResult","_StateStackImpl","enterPos","anchorPos","_stackElementBrand","depth","_enterPos","_anchorPos","_equals","_reset","_writeString","outIndex","_this$nameScopesList","_this$contentNameScop","contentNameScopeStack","toStateStackFrame","_this$nameScopesList$","_this$nameScopesList2","_this$parent$nameScop","_this$parent","_this$contentNameScop2","_this$contentNameScop3","_structuralEquals","pushFrame","_e$nameScopesList","_n$enterPos","_n$anchorPos","BalancedBracketSelectors","At","balancedBracketScopes","unbalancedBracketScopes","allowAny","matchesAlways","_iterator14","_step14","excluder","_iterator15","_step15","includer","Ot","tokenTypeOverrides","_emitBinaryTokens","_tokenTypeOverrides","_lineText","_tokens","_binaryTokens","_lastTokenEndIndex","scopesList","_t$tokenAttributes","_this$balancedBracket","matchesNever","_t$getScopeNames","scopes2","_iterator16","_step16","_t$getScopeNames2","SyncRegistry","Mt","_grammars","_rawGrammars","_injectionGrammars","_iterator17","_step17","addGrammar","targetScope","grammarForScopeName","rawGrammar","createGrammar","Pt","_syncRegistry","_ensureGrammarCache","loadGrammarWithEmbeddedLanguages","loadGrammarWithConfiguration","configuration","_loadGrammar","unbalancedBracketSelectors","loadGrammar","_this10","dependencyProcessor","request","_loadSingleGrammar","_grammarForScopeName","_doLoadSingleGrammar","Ft","message","_this11","_Error","_wrapNativeSuper","Xt","visited","pushScope","getScopes","toJSON","initial","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","de","prototype","je","booleanish","number","spaceSeparated","commaOrSpaceSeparated","defined","boolean","types","__proto__","checks","Oe","mask","check","_assertThisInitialized","_this12","_je","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","xmlns","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","html$3","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","charSet","checked","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","label","language","list","loading","loop","low","manifest","maxLength","media","method","multiple","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","ping","placeholder","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scoped","seamless","selected","shadowRootDelegatesFocus","shadowRootMode","shape","sizes","slot","spellCheck","srcDoc","srcLang","srcSet","step","tabIndex","title","translate","typeMustMatch","useMap","width","align","aLink","archive","axis","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","codeBase","codeType","compact","declare","event","face","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","scheme","scrolling","standby","summary","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","security","unselectable","svg$1","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","mode","numOctaves","observer","opacity","operator","order","orient","orientation","origin","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","to","unicode","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","z","zoomAndPan","own$2","characterEntitiesHtml4","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","fnof","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","bull","hellip","prime","Prime","oline","frasl","weierp","image","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","rang","loz","spades","clubs","hearts","diams","quot","amp","lt","gt","OElig","oelig","Scaron","scaron","Yuml","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","permil","lsaquo","rsaquo","euro","htmlCommentRegex","bogusCommentEntitySubset","commentEntitySubset","siblingBefore","closing","body","caption","colgroup","dd","html","li","optgroup","option","rp","tbody","td","tfoot","th","thead","tr","opening","previous","seen","parameters","invalid","unknown","_len3","zwitch","node_","comment","_1","_2","doctype","_3","element","selfClosing","last","serializeAttributes","raw","UtfString","Hn","utf16Length","utf8Length","_utf8ByteLength","computeIndicesMapping","utf16OffsetToUtf8","utf8OffsetToUtf16","utf8Value","i8","i16","charCode","codePoint","wasSurrogatePair","nextCharCode","utf16Value","omalloc","codepoint","static","qn","LAST_ID","_onigBinding","utfString","_sharedPtrInUse","_sharedPtr","convertUtf8OffsetToUtf16","utf8Offset","convertUtf16OffsetToUtf8","utf16Offset","ofree","zn","strPtrsArr","strLenArr","strPtrsPtr","strLenPtr","scannerPtr","getLastOnigError","throwLastOnigError","_ptr","freeOnigScanner","arg","_findNextMatchSync","debugCall","resultPtr","findNextOnigScannerMatch","beg","Zn","_resolver","_langs","_alias","_langGraph","_textmateThemeCache","_loadedLanguagesCache","_this13","_Pt","_resolvedThemes","_loadedThemesCache","textmateTheme","resolved","_resolvedGrammars","_this14","embeddedLazilyBy","_langMap","embeddedLangsLazy","addLanguage","grammarConfig","alias","_iterator37","_step37","delete","_iterator38","_step38","resolveEmbeddedLanguages","langsGraphArray","missingLangs","_ref13","_ref14","dependents","_ref15","_e$embeddedLangs","_ref16","embeddedLangs","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_i38","_e46","_e46$_i","_i39","_e47","_e47$_i","_iterator39","_step39","embeddedLang","Registry$1","ti","_scopeToLang","getLangRegistration","langIdOrAlias","injectTo","scopeParts","subScopeName","NileHighlighter","fi","highlightedCode","_this17","_o22","_updated","_callee13","changedProperties","_context14","requestUpdate","updated","_x22","render","_templateObject","_taggedTemplateLiteral","__decorate","NileElement","reflect","_export","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|