@aquera/nile-elements 0.0.91 → 0.0.92
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 +3 -0
- 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/nile-icon/index.cjs.js +1 -1
- package/dist/nile-icon/index.cjs.js.map +1 -1
- package/dist/nile-icon/index.esm.js +1 -1
- package/dist/src/nile-icon/index.js +1 -1
- package/dist/src/nile-icon/index.js.map +1 -1
- package/dist/ts-tags-7b4b630f.esm.js +1 -0
- package/dist/ts-tags-bf26a4cd.cjs.js +2 -0
- package/dist/ts-tags-bf26a4cd.cjs.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/{vitesse-black-30667039.esm.js → vitesse-black-36f4f5ae.esm.js} +1 -1
- package/dist/{vitesse-black-3dbe0082.cjs.js → vitesse-black-8f7b8bf9.cjs.js} +2 -2
- package/dist/vitesse-black-8f7b8bf9.cjs.js.map +1 -0
- package/dist/{vitesse-dark-222eaa70.cjs.js → vitesse-dark-877d0b03.cjs.js} +2 -2
- package/dist/vitesse-dark-877d0b03.cjs.js.map +1 -0
- package/dist/{vitesse-dark-2e5d272b.esm.js → vitesse-dark-b177c06b.esm.js} +1 -1
- package/dist/{vitesse-light-0f794f0d.esm.js → vitesse-light-1305bc40.esm.js} +1 -1
- package/dist/{vitesse-light-9d496793.cjs.js → vitesse-light-3f1d75bb.cjs.js} +2 -2
- package/dist/vitesse-light-3f1d75bb.cjs.js.map +1 -0
- package/package.json +2 -1
- package/src/nile-icon/index.ts +1 -1
- package/dist/vitesse-black-3dbe0082.cjs.js.map +0 -1
- package/dist/vitesse-dark-222eaa70.cjs.js.map +0 -1
- package/dist/vitesse-light-9d496793.cjs.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-highlighter.cjs.js","sources":["../../../../node_modules/@shikijs/core/dist/textmate.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":["import { FontStyle } from './types.mjs';\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n({\n InDebugMode: (typeof process !== 'undefined' && !!process.env['VSCODE_TEXTMATE_DEBUG'])\n});\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nvar EncodedTokenAttributes;\n(function (EncodedTokenAttributes) {\n function toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n EncodedTokenAttributes.toBinaryStr = toBinaryStr;\n function print(encodedTokenAttributes) {\n const languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n const tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n const fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n const foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n const background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n console.log({\n languageId: languageId,\n tokenType: tokenType,\n fontStyle: fontStyle,\n foreground: foreground,\n background: background,\n });\n }\n EncodedTokenAttributes.print = print;\n function getLanguageId(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 255 /* EncodedTokenDataConsts.LANGUAGEID_MASK */) >>>\n 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */);\n }\n EncodedTokenAttributes.getLanguageId = getLanguageId;\n function getTokenType(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 768 /* EncodedTokenDataConsts.TOKEN_TYPE_MASK */) >>>\n 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */);\n }\n EncodedTokenAttributes.getTokenType = getTokenType;\n function containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* EncodedTokenDataConsts.BALANCED_BRACKETS_MASK */) !== 0;\n }\n EncodedTokenAttributes.containsBalancedBrackets = containsBalancedBrackets;\n function getFontStyle(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 30720 /* EncodedTokenDataConsts.FONT_STYLE_MASK */) >>>\n 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */);\n }\n EncodedTokenAttributes.getFontStyle = getFontStyle;\n function getForeground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 16744448 /* EncodedTokenDataConsts.FOREGROUND_MASK */) >>>\n 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getForeground = getForeground;\n function getBackground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 4278190080 /* EncodedTokenDataConsts.BACKGROUND_MASK */) >>>\n 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getBackground = getBackground;\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 function set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n let _tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = EncodedTokenAttributes.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n let _foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n let _background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* OptionalStandardTokenType.NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* FontStyle.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 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */) |\n (_tokenType << 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */) |\n (_containsBalancedBracketsBit <<\n 10 /* EncodedTokenDataConsts.BALANCED_BRACKETS_OFFSET */) |\n (_fontStyle << 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */) |\n (_foreground << 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */) |\n (_background << 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */)) >>>\n 0);\n }\n EncodedTokenAttributes.set = set;\n})(EncodedTokenAttributes || (EncodedTokenAttributes = {}));\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\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(matcher => matcher(matcherInput)); // and\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 === ','); // ignore subsequent commas\n }\n else {\n break;\n }\n matcher = parseConjunction();\n }\n return matcherInput => matchers.some(matcher => matcher(matcherInput)); // or\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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction disposeOnigString(str) {\n if (typeof str.dispose === 'function') {\n str.dispose();\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\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 }\n else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n }\n else {\n return path.substr(~idx + 1);\n }\n}\nlet CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nclass RegexSource {\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 // Remove leading dots that would make the selector invalid\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 }\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 // #rrggbb\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n // #rrggbbaa\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n // #rgb\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n // #rgba\n return true;\n }\n return false;\n}\n/**\n * Escapes regular expression characters in a given string\n */\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&');\n}\nclass CachedFn {\n fn;\n cache = new Map();\n constructor(fn) {\n this.fn = fn;\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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * References the top level rule of a grammar with the given scope name.\n*/\nclass TopLevelRuleReference {\n scopeName;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n}\n/**\n * References a rule of a grammar in the top level repository section with the given name.\n*/\nclass TopLevelRepositoryRuleReference {\n scopeName;\n ruleName;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n}\nclass ExternalReferenceCollector {\n _references = [];\n _seenReferenceKeys = new Set();\n get references() {\n return this._references;\n }\n visitedRule = new Set();\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n}\nclass ScopeDependencyProcessor {\n repo;\n initialScopeName;\n seenFullScopeRequests = new Set();\n seenPartialScopeRequests = new Set();\n Q;\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n 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 // already processed\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n }\n else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed in full\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n // already processed\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 }\n else {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { baseGrammar, selfGrammar, repository: selfGrammar.repository }, result);\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(context.selfGrammar.patterns, { ...context, repository: context.selfGrammar.repository }, result);\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(Object.values(context.selfGrammar.injections), { ...context, repository: context.selfGrammar.repository }, result);\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 /* IncludeReferenceKind.Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* IncludeReferenceKind.Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName\n ? context.selfGrammar\n : reference.scopeName === context.baseGrammar.scopeName\n ? context.baseGrammar\n : undefined;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n }\n else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n }\n else {\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n }\n else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nclass BaseReference {\n kind = 0 /* IncludeReferenceKind.Base */;\n}\nclass SelfReference {\n kind = 1 /* IncludeReferenceKind.Self */;\n}\nclass RelativeReference {\n ruleName;\n kind = 2 /* IncludeReferenceKind.RelativeReference */;\n constructor(ruleName) {\n this.ruleName = ruleName;\n }\n}\nclass TopLevelReference {\n scopeName;\n kind = 3 /* IncludeReferenceKind.TopLevelReference */;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n}\nclass TopLevelRepositoryReference {\n scopeName;\n ruleName;\n kind = 4 /* IncludeReferenceKind.TopLevelRepositoryReference */;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n}\nfunction parseInclude(include) {\n if (include === '$base') {\n return new BaseReference();\n }\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 }\n else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n }\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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nconst HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nconst BACK_REFERENCING_END = /\\\\(\\d+)/g;\n// This is a special constant to indicate that the end regexp matched.\nconst endRuleId = -1;\n// This is a special constant to indicate that the while regexp matched.\nconst whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nclass Rule {\n $location;\n id;\n _nameIsCapturing;\n _name;\n _contentNameIsCapturing;\n _contentName;\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : 'unknown';\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n}\nclass CaptureRule extends Rule {\n retokenizeCapturedWithRuleId;\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n // nothing to 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}\nclass MatchRule extends Rule {\n _match;\n captures;\n _cachedCompiledPatterns;\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass IncludeOnlyRule extends Rule {\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginEndRule extends Rule {\n _begin;\n beginCaptures;\n _end;\n endHasBackReferences;\n endCaptures;\n applyEndPatternLast;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : '\\uFFFF', -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\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 }\n else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginWhileRule extends Rule {\n _begin;\n beginCaptures;\n whileCaptures;\n _while;\n whileHasBackReferences;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n _cachedCompiledWhilePatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : '\\uFFFF');\n }\n return this._cachedCompiledWhilePatterns;\n }\n}\nclass 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(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.match, RuleFactory._compileCaptures(desc.captures, helper, repository));\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(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, RuleFactory._compilePatterns(patterns, helper, repository));\n }\n if (desc.while) {\n return new BeginWhileRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.while, RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository), RuleFactory._compilePatterns(desc.patterns, helper, repository));\n }\n return new BeginEndRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.end, RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository), desc.applyEndPatternLast, RuleFactory._compilePatterns(desc.patterns, helper, repository));\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n // Find the maximum capture id\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 // Initialize result\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n // Fill out result\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 /* IncludeReferenceKind.Base */:\n case 1 /* IncludeReferenceKind.Self */:\n ruleId = RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n // Local include found in `repository`\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n }\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */\n ? reference.ruleName\n : null;\n // External include\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 }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n }\n break;\n }\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 // console.log('REMOVING RULE ENTIRELY DUE TO EMPTY PATTERNS THAT ARE MISSING');\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}\nclass RegExpSource {\n source;\n ruleId;\n hasAnchor;\n hasBackReferences;\n _anchorCache;\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 }\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 // No \\z hit\n this.source = regExpSource;\n }\n else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join('');\n }\n }\n else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n // console.log('input: ' + regExpSource + ' => ' + this.source + ', ' + this.hasAnchor);\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 }\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 }\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 }\n else {\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n }\n else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n}\nclass RegExpSourceList {\n _items;\n _hasAnchors;\n _cached;\n _anchorCache;\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n // bust the cache\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 }\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 }\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 }\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 }\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}\nclass CompiledRule {\n regExps;\n rules;\n scanner;\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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass Theme {\n _colorMap;\n _defaults;\n _root;\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n _cachedMatchRoot = new CachedFn((scopeName) => this._root.match(scopeName));\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\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((v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes));\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(effectiveRule.fontStyle, effectiveRule.foreground, effectiveRule.background);\n }\n}\nclass ScopeStack {\n parent;\n scopeName;\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 constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\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() : undefined;\n }\n}\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes === null) {\n return true;\n }\n let index = 0;\n let scopePattern = parentScopes[index];\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n index++;\n if (index === parentScopes.length) {\n return true;\n }\n scopePattern = parentScopes[index];\n }\n scopePath = scopePath.parent;\n }\n return false;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || (scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === '.');\n}\nclass StyleAttributes {\n fontStyle;\n foregroundId;\n backgroundId;\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n}\n/**\n * Parse a raw theme into rules.\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 // remove leading commas\n _scope = _scope.replace(/^[,]+/, '');\n // remove trailing commans\n _scope = _scope.replace(/[,]+$/, '');\n scopes = _scope.split(',');\n }\n else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n }\n else {\n scopes = [''];\n }\n let fontStyle = -1 /* FontStyle.NotSet */;\n if (typeof entry.settings.fontStyle === 'string') {\n fontStyle = 0 /* FontStyle.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 /* FontStyle.Italic */;\n break;\n case 'bold':\n fontStyle = fontStyle | 2 /* FontStyle.Bold */;\n break;\n case 'underline':\n fontStyle = fontStyle | 4 /* FontStyle.Underline */;\n break;\n case 'strikethrough':\n fontStyle = fontStyle | 8 /* FontStyle.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(scope, parentScopes, i, fontStyle, foreground, background);\n }\n }\n return result;\n}\nclass ParsedThemeRule {\n scope;\n parentScopes;\n index;\n fontStyle;\n foreground;\n background;\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}\n/**\n * Resolve rules (i.e. inheritance).\n */\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n // Sort rules lexicographically, and then by index if necessary\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 // Determine defaults\n let defaultFontStyle = 0 /* FontStyle.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 /* FontStyle.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 /* FontStyle.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}\nclass ColorMap {\n _isFrozen;\n _lastColorId;\n _id2color;\n _color2id;\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = 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 }\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}\nclass ThemeTrieElementRule {\n scopeDepth;\n parentScopes;\n fontStyle;\n foreground;\n background;\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes;\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 }\n else {\n this.scopeDepth = scopeDepth;\n }\n // console.log('TODO -> my depth: ' + this.scopeDepth + ', overwriting depth: ' + scopeDepth);\n if (fontStyle !== -1 /* FontStyle.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}\nclass ThemeTrieElement {\n _mainRule;\n _children;\n _rulesWithParentScopes;\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n static _sortBySpecificity(arr) {\n if (arr.length === 1) {\n return arr;\n }\n arr.sort(this._cmpBySpecificity);\n return arr;\n }\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth === b.scopeDepth) {\n const aParentScopes = a.parentScopes;\n const bParentScopes = b.parentScopes;\n let aParentScopesLen = aParentScopes === null ? 0 : aParentScopes.length;\n let bParentScopesLen = bParentScopes === null ? 0 : bParentScopes.length;\n if (aParentScopesLen === bParentScopesLen) {\n for (let i = 0; i < aParentScopesLen; i++) {\n const aLen = aParentScopes[i].length;\n const bLen = bParentScopes[i].length;\n if (aLen !== bLen) {\n return bLen - aLen;\n }\n }\n }\n return bParentScopesLen - aParentScopesLen;\n }\n return b.scopeDepth - a.scopeDepth;\n }\n match(scope) {\n if (scope === '') {\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\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 return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\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 }\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 }\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 // Merge into the main rule\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n // Try to merge into existing rule\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 // bingo! => we get to merge this into an existing one\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n // Must add a new rule\n // Inherit from main rule\n if (fontStyle === -1 /* FontStyle.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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass BasicScopeAttributes {\n languageId;\n tokenType;\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n}\nclass BasicScopeAttributesProvider {\n _defaultAttributes;\n _embeddedLanguagesMatcher;\n constructor(initialLanguageId, embeddedLanguages) {\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* OptionalStandardTokenType.NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n static _NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n _getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* OptionalStandardTokenType.NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* OptionalStandardTokenType.Comment */;\n case \"string\":\n return 2 /* OptionalStandardTokenType.String */;\n case \"regex\":\n return 3 /* OptionalStandardTokenType.RegEx */;\n case \"meta.embedded\":\n return 0 /* OptionalStandardTokenType.Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n static STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\n}\nclass ScopeMatcher {\n values;\n scopesRegExp;\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n }\n else {\n this.values = new Map(values);\n // create the regex\n const escapedScopes = values.map(([scopeName, value]) => escapeRegExpCharacters(scopeName));\n escapedScopes.sort();\n escapedScopes.reverse(); // Longest scope first\n this.scopesRegExp = new RegExp(`^((${escapedScopes.join(\")|(\")}))($|\\\\.)`, \"\");\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return undefined;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n // no scopes matched\n return undefined;\n }\n return this.values.get(m[1]);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass TokenizeStringResult {\n stack;\n stoppedEarly;\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n}\n/**\n * Tokenize a string\n * @param grammar\n * @param lineText\n * @param isFirstLine\n * @param linePos\n * @param stack\n * @param lineTokens\n * @param checkWhileConditions\n * @param timeLimit Use `0` to indicate no time limit\n * @returns the StackElement or StackElement.TIME_LIMIT_REACHED if the time limit has been reached\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(grammar, lineText, isFirstLine, linePos, stack, lineTokens);\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(); // potentially modifies linePos && anchorPosition\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n const r = matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!r) {\n // No match\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\n ? captureIndices[0].end > linePos\n : false;\n if (matchedRuleId === endRuleId) {\n // We matched the `end` for this rule => pop it\n const poppedRule = stack.getRule(grammar);\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, poppedRule.endCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n // See https://github.com/Microsoft/vscode-textmate/issues/12\n // Let's assume this was a mistake by the grammar author and the intent was to continue in this state\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n // We matched a rule!\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n // push it on the stack rule\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n stack = stack.push(matchedRuleId, linePos, anchorPosition, captureIndices[0].end === lineLength, null, nameScopesList, nameScopesList);\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getEndWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getWhileWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n const matchingRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, matchingRule.captures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop rule immediately since it is a MatchRule\n stack = stack.pop();\n if (!hasAdvanced) {\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n // Advance stream\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\n/**\n * Walk the stack from bottom to top, and check each while condition in this order.\n * If any fails, cut off the entire stack above the failed while condition. While conditions\n * may also advance the linePosition.\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 (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n // we shouldn't end up here\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 }\n else {\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack: stack, linePos: linePos, anchorPosition: anchorPosition, isFirstLine: isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // Look for normal grammar rule\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n // Look for injected rules\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n // No injections whatsoever => early return\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n // No injections matched => early return\n return matchResult;\n }\n if (!matchResult) {\n // Only injections matched => early return\n return injectionResult;\n }\n // Decide if `matchResult` or `injectionResult` should win\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || (injectionResult.priorityMatch && injectionResultScore === matchResultScore)) {\n // injection won!\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 // The lower the better\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 // injection selector doesn't match stack\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 const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n // Injections are sorted by priority, so the previous injection had a better or equal priority\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n // No more need to look at the rest of the injections.\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 const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\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 // Not interested\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n // Nothing really captured\n continue;\n }\n if (captureIndex.start > maxEnd) {\n // Capture going beyond consumed string\n break;\n }\n // pop captures while needed\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n // pop!\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 }\n else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n // the capture requires additional matching\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(grammar, onigSubStr, (isFirstLine && captureIndex.start === 0), captureIndex.start, stackClone, lineTokens, false, /* no time limit */ 0);\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n // push\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 // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nclass LocalStackElement {\n scopes;\n endPos;\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib); //TODO\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: ruleId,\n grammar: 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}\nclass Grammar {\n _rootScopeName;\n balancedBracketSelectors;\n _onigLib;\n _rootId;\n _lastRuleId;\n _ruleId2desc;\n _includedGrammars;\n _grammarRepository;\n _grammar;\n _injections;\n _basicScopeAttributesProvider;\n _tokenTypeMatchers;\n get themeProvider() { return this._grammarRepository; }\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(initialLanguage, embeddedLanguages);\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 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: (scopeName) => {\n if (scopeName === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName);\n },\n injections: (scopeName) => {\n return this._grammarRepository.injections(scopeName);\n },\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n // add injections from the current grammar\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(result, expression, rawInjections[expression], this, grammar);\n }\n }\n // add injection grammars contributed for the current scope\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(result, selector, injectionGrammar, this, injectionGrammar);\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority); // sort by 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 }\n else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n // console.log('LOADED GRAMMAR ' + pattern.include);\n this._includedGrammars[scopeName] = initGrammar(rawIncludedGrammar, repository && repository.$base);\n return this._includedGrammars[scopeName];\n }\n }\n return undefined;\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(this._grammar.repository.$self, this, this._grammar.repository);\n // This ensures ids are deterministic, and thus equal in renderer and webworker.\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 = EncodedTokenAttributes.set(0, rawDefaultMetadata.languageId, rawDefaultMetadata.tokenType, null, defaultStyle.fontStyle, defaultStyle.foregroundId, defaultStyle.backgroundId);\n const rootScopeName = this.getRule(this._rootId).getName(null, null);\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(rootScopeName, defaultMetadata, this);\n }\n else {\n scopeList = AttributedScopeStack.createRoot(\"unknown\", defaultMetadata);\n }\n prevState = new StateStackImpl(null, this._rootId, -1, -1, false, null, scopeList, 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(emitBinaryTokens, lineText, this._tokenTypeMatchers, this.balancedBracketSelectors);\n const r = _tokenizeString(this, onigLineText, isFirstLine, 0, prevState, lineTokens, true, timeLimit);\n disposeOnigString(onigLineText);\n return {\n lineLength: lineLength,\n lineTokens: 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}\nclass AttributedScopeStack {\n parent;\n scopePath;\n tokenAttributes;\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(tokenAttributes, rawRootMetadata, rootStyle);\n return new AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() { return this.scopePath.scopeName; }\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 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 // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* FontStyle.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 EncodedTokenAttributes.set(existingTokenAttributes, basicScopeAttributes.languageId, basicScopeAttributes.tokenType, null, fontStyle, foreground, background);\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(' ') === -1) {\n // This is the common case and much faster\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(target.tokenAttributes, rawMetadata, scopeThemeMatchResult);\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() : undefined;\n }\n}\n/**\n * Represents a \"pushed\" state on the stack (as a linked list element).\n */\nclass StateStackImpl {\n parent;\n ruleId;\n beginRuleCapturedEOL;\n endRule;\n nameScopesList;\n contentNameScopesList;\n _stackElementBrand = undefined;\n // TODO remove me\n static NULL = new StateStackImpl(null, 0, 0, 0, false, null, null, null);\n /**\n * The position on the current line where this state was pushed.\n * This is relevant only while tokenizing a line, to detect endless loops.\n * Its value is meaningless across lines.\n */\n _enterPos;\n /**\n * The captured anchor position when this stack element was pushed.\n * This is relevant only while tokenizing a line, to restore the anchor position when popping.\n * Its value is meaningless across lines.\n */\n _anchorPos;\n /**\n * The depth of the stack.\n */\n depth;\n /**\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(\n /**\n * The previous state on the stack (or null for the root state).\n */\n parent, \n /**\n * The state (rule) that this element represents.\n */\n ruleId, enterPos, anchorPos, \n /**\n * The state has entered and captured \\n. This means that the next line should have an anchorPosition of 0.\n */\n beginRuleCapturedEOL, \n /**\n * The \"pop\" (end) condition for this state in case that it was dynamically generated through captured text.\n */\n endRule, \n /**\n * The list of scopes containing the \"name\" for this state.\n */\n nameScopesList, \n /**\n * The list of scopes containing the \"contentName\" (besides \"name\") for this state.\n * This list **must** contain as an element `scopeName`.\n */\n contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n 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 // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.depth !== b.depth ||\n a.ruleId !== b.ruleId ||\n a.endRule !== b.endRule) {\n return false;\n }\n // Go to previous pair\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(this, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList);\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(this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, this.endRule, this.nameScopesList, contentNameScopeStack);\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new StateStackImpl(this.parent, this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, endRule, this.nameScopesList, this.contentNameScopesList);\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(self, ruleIdFromNumber(frame.ruleId), frame.enterPos ?? -1, frame.anchorPos ?? -1, frame.beginRuleCapturedEOL, frame.endRule, namesScopeList, AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList));\n }\n}\nclass BalancedBracketSelectors {\n balancedBracketScopes;\n unbalancedBracketScopes;\n allowAny = false;\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.balancedBracketScopes = balancedBracketScopes.flatMap((selector) => {\n if (selector === '*') {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n });\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap((selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher));\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}\nclass LineTokens {\n balancedBracketSelectors;\n _emitBinaryTokens;\n /**\n * defined only if `false`.\n */\n _lineText;\n /**\n * used only if `_emitBinaryTokens` is false.\n */\n _tokens;\n /**\n * used only if `_emitBinaryTokens` is true.\n */\n _binaryTokens;\n _lastTokenEndIndex;\n _tokenTypeOverrides;\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n {\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 // Only generate scope array when required to improve performance\n const scopes = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes)) {\n metadata = EncodedTokenAttributes.set(metadata, 0, toOptionalTokenType(tokenType.type), null, -1 /* FontStyle.NotSet */, 0, 0);\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenAttributes.set(metadata, 0, 8 /* OptionalStandardTokenType.NotSet */, containsBalancedBrackets, -1 /* FontStyle.NotSet */, 0, 0);\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n // no need to push a token with the same 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: endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes: 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 // pop produced token for newline\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 // pop produced token for newline\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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass SyncRegistry {\n _onigLibPromise;\n _grammars = new Map();\n _rawGrammars = new Map();\n _injectionGrammars = new Map();\n _theme;\n constructor(theme, _onigLibPromise) {\n this._onigLibPromise = _onigLibPromise;\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 async 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(scopeName, rawGrammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, this, await this._onigLibPromise));\n }\n return this._grammars.get(scopeName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * The registry that will hold all grammars.\n */\nlet Registry$1 = class Registry {\n _options;\n _syncRegistry;\n _ensureGrammarCache;\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(Theme.createFromRawTheme(options.theme, options.colorMap), options.onigLib);\n this._ensureGrammarCache = 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(initialScopeName, initialLanguage, configuration.embeddedLanguages, configuration.tokenTypes, new BalancedBracketSelectors(configuration.balancedBracketSelectors || [], configuration.unbalancedBracketSelectors || []));\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 async _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n await Promise.all(dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName)));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n async _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._ensureGrammarCache.set(scopeName, this._doLoadSingleGrammar(scopeName));\n }\n return this._ensureGrammarCache.get(scopeName);\n }\n async _doLoadSingleGrammar(scopeName) {\n const grammar = await this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : undefined;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n async addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return (await 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(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n};\nconst INITIAL = StateStackImpl.NULL;\n\n/**\n * Helpers to manage the \"collapsed\" metadata of an entire StackElement stack.\n * The following assumptions have been made:\n * - languageId < 256 => needs 8 bits\n * - unique color count < 512 => needs 9 bits\n *\n * The binary format is:\n * - -------------------------------------------\n * 3322 2222 2222 1111 1111 1100 0000 0000\n * 1098 7654 3210 9876 5432 1098 7654 3210\n * - -------------------------------------------\n * xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx\n * bbbb bbbb bfff ffff ffFF FTTT LLLL LLLL\n * - -------------------------------------------\n * - L = LanguageId (8 bits)\n * - T = StandardTokenType (3 bits)\n * - F = FontStyle (3 bits)\n * - f = foreground color (9 bits)\n * - b = background color (9 bits)\n */\nconst MetadataConsts = {\n LANGUAGEID_MASK: 0b00000000000000000000000011111111,\n TOKEN_TYPE_MASK: 0b00000000000000000000001100000000,\n BALANCED_BRACKETS_MASK: 0b00000000000000000000010000000000,\n FONT_STYLE_MASK: 0b00000000000000000011100000000000,\n FOREGROUND_MASK: 0b00000000011111111100000000000000,\n BACKGROUND_MASK: 0b11111111100000000000000000000000,\n LANGUAGEID_OFFSET: 0,\n TOKEN_TYPE_OFFSET: 8,\n BALANCED_BRACKETS_OFFSET: 10,\n FONT_STYLE_OFFSET: 11,\n FOREGROUND_OFFSET: 15,\n BACKGROUND_OFFSET: 24,\n};\nclass StackElementMetadata {\n static toBinaryStr(metadata) {\n let r = metadata.toString(2);\n while (r.length < 32)\n r = `0${r}`;\n return r;\n }\n // public static printMetadata(metadata: number): void {\n // const languageId = StackElementMetadata.getLanguageId(metadata)\n // const tokenType = StackElementMetadata.getTokenType(metadata)\n // const fontStyle = StackElementMetadata.getFontStyle(metadata)\n // const foreground = StackElementMetadata.getForeground(metadata)\n // const background = StackElementMetadata.getBackground(metadata)\n // console.log({\n // languageId,\n // tokenType,\n // fontStyle,\n // foreground,\n // background,\n // })\n // }\n static getLanguageId(metadata) {\n return (metadata & MetadataConsts.LANGUAGEID_MASK) >>> MetadataConsts.LANGUAGEID_OFFSET;\n }\n static getTokenType(metadata) {\n return (metadata & MetadataConsts.TOKEN_TYPE_MASK) >>> MetadataConsts.TOKEN_TYPE_OFFSET;\n }\n static getFontStyle(metadata) {\n return (metadata & MetadataConsts.FONT_STYLE_MASK) >>> MetadataConsts.FONT_STYLE_OFFSET;\n }\n static getForeground(metadata) {\n return (metadata & MetadataConsts.FOREGROUND_MASK) >>> MetadataConsts.FOREGROUND_OFFSET;\n }\n static getBackground(metadata) {\n return (metadata & MetadataConsts.BACKGROUND_MASK) >>> MetadataConsts.BACKGROUND_OFFSET;\n }\n static containsBalancedBrackets(metadata) {\n return (metadata & MetadataConsts.BALANCED_BRACKETS_MASK) !== 0;\n }\n static set(metadata, languageId, tokenType, fontStyle, foreground, background) {\n let _languageId = StackElementMetadata.getLanguageId(metadata);\n let _tokenType = StackElementMetadata.getTokenType(metadata);\n let _fontStyle = StackElementMetadata.getFontStyle(metadata);\n let _foreground = StackElementMetadata.getForeground(metadata);\n let _background = StackElementMetadata.getBackground(metadata);\n const _containsBalancedBracketsBit = StackElementMetadata.containsBalancedBrackets(metadata)\n ? 1\n : 0;\n if (languageId !== 0)\n _languageId = languageId;\n if (tokenType !== 0 /* TemporaryStandardTokenType.Other */) {\n _tokenType\n = tokenType === 8 /* TemporaryStandardTokenType.MetaEmbedded */ ? 0 /* StandardTokenType.Other */ : tokenType;\n }\n if (fontStyle !== FontStyle.NotSet)\n _fontStyle = fontStyle;\n if (foreground !== 0)\n _foreground = foreground;\n if (background !== 0)\n _background = background;\n return (((_languageId << MetadataConsts.LANGUAGEID_OFFSET)\n | (_tokenType << MetadataConsts.TOKEN_TYPE_OFFSET)\n | (_fontStyle << MetadataConsts.FONT_STYLE_OFFSET)\n | (_containsBalancedBracketsBit << MetadataConsts.BALANCED_BRACKETS_OFFSET)\n | (_foreground << MetadataConsts.FOREGROUND_OFFSET)\n | (_background << MetadataConsts.BACKGROUND_OFFSET))\n >>> 0);\n }\n}\n\nexport { INITIAL, Registry$1 as Registry, StackElementMetadata, Theme };\n","import { INITIAL, StackElementMetadata, Registry as Registry$1, Theme } from './textmate.mjs';\nimport { FontStyle } from './types.mjs';\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\n/**\n * Slipt 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}\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 */\nfunction createPositionConverter(code) {\n const lines = splitLines(code, true).map(([line]) => line);\n function indexToPos(index) {\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\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\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ShikiError';\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 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/**\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 const themeSettingsSelectors = [];\n if (options.includeExplanation) {\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 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[StackElementMetadata.getForeground(metadata)], colorReplacements);\n const fontStyle = StackElementMetadata.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 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: explainThemeScopes(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 explainThemeScopes(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const parentScopes = scopes.slice(0, i);\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, parentScopes),\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.colorReplacements);\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\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 return {\n ...converter.indexToPos(p),\n offset: p,\n };\n }\n else {\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 function 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 }\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 function stringify(el) {\n if (el.type === 'text')\n return el.value;\n if (el.type === 'element')\n return el.children.map(stringify).join('');\n return '';\n }\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError(`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}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations(),\n];\nfunction getTransformers(options) {\n return [\n ...options.transformers || [],\n ...builtInTransformers,\n ];\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 * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\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 * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\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 * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\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 * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\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 * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\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 * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\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 * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Properties} Properties\n *\n * @typedef {import('../index.js').State} State\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 * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\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 * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\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 * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n *\n * @typedef {import('../index.js').State} State\n */\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 * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\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 * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('stringify-entities').Options} StringifyEntitiesOptions\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\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_get_now() {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n }\n function _emscripten_memcpy_big(dest, src, num) {\n binding.HEAPU8.copyWithin(dest, src, src + num);\n }\n function getHeapMax() {\n return 2147483648;\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 const alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple);\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;\nlet 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 & 8 /* FindOption.DebugCall */)\n debugCall = true;\n options = arg;\n }\n else if (typeof arg === 'boolean') {\n debugCall = arg;\n }\n if (typeof string === 'string') {\n string = new OnigString(string);\n const result = this._findNextMatchSync(string, startPosition, debugCall, options);\n string.dispose();\n return result;\n }\n return this._findNextMatchSync(string, startPosition, debugCall, options);\n }\n _findNextMatchSync(string, startPosition, debugCall, options) {\n const onigBinding = this._onigBinding;\n let resultPtr;\n if (debugCall)\n resultPtr = onigBinding.findNextOnigScannerMatchDbg(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n else\n 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}\nfunction createOnigString(str) {\n return new OnigString(str);\n}\nfunction createOnigScanner(patterns) {\n return new OnigScanner(patterns);\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\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 _themes.forEach(t => this.loadTheme(t));\n _langs.forEach(l => this.loadLanguage(l));\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 async 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 = await 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 await this.loadLanguage(this._langMap.get(e.name));\n }\n }\n }\n async init() {\n this._themes.map(t => this.loadTheme(t));\n await this.loadLanguages(this._langs);\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 async 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 await 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 _onigLibPromise;\n constructor(onigLibPromise, langs) {\n this._onigLibPromise = onigLibPromise;\n langs.forEach(i => this.addLanguage(i));\n }\n get onigLib() {\n return this._onigLibPromise;\n }\n getLangRegistration(langIdOrAlias) {\n return this._langs.get(langIdOrAlias);\n }\n async 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 _defaultWasmLoader;\n/**\n * Set the default wasm loader for `loadWasm`.\n * @internal\n */\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\nlet instancesCount = 0;\n/**\n * Get the minimal shiki context for rendering.\n */\nasync function createShikiInternal(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 async function normalizeGetter(p) {\n return Promise.resolve(typeof p === 'function' ? p() : p).then(r => r.default || r);\n }\n async 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 }\n const wasmLoader = options.loadWasm || _defaultWasmLoader;\n const [themes, langs,] = await Promise.all([\n Promise.all((options.themes || []).map(normalizeGetter)).then(r => r.map(normalizeTheme)),\n resolveLangs(options.langs || []),\n wasmLoader ? loadWasm(wasmLoader) : undefined,\n ]);\n const resolver = new Resolver(Promise.resolve({\n createOnigScanner(patterns) {\n return createOnigScanner(patterns);\n },\n createOnigString(s) {\n return createOnigString(s);\n },\n }), langs);\n const _registry = new Registry(resolver, themes, langs, options.langAlias);\n await _registry.init();\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 async function loadLanguage(...langs) {\n ensureNotDisposed();\n await _registry.loadLanguages(await resolveLangs(langs));\n }\n async function loadTheme(...themes) {\n ensureNotDisposed();\n await Promise.all(themes.map(async (theme) => isSpecialTheme(theme)\n ? null\n : _registry.loadTheme(await normalizeGetter(theme))));\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 loadTheme,\n dispose,\n [Symbol.dispose]: dispose,\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/install#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}\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/**\n * Create a `createHighlighter` function with bundled themes and languages.\n *\n * @param bundledLanguages\n * @param bundledThemes\n * @param loadWasm\n */\nfunction createdBundledHighlighter(bundledLanguages, bundledThemes, loadWasm) {\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 ...options,\n themes: _themes,\n langs,\n loadWasm,\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\nexport { FontStyle, ShikiError, addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighterCore, createPositionConverter, createShikiInternal, createSingletonShorthands, createdBundledHighlighter, getHighlighterCore, getShikiInternal, getSingletonHighlighterCore, getTokenStyleObject, toHtml as hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, loadWasm, makeSingletonHighlighter, makeSingletonHighlighterCore, 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, createSingletonShorthands } from '@shikijs/core';\nexport * from '@shikijs/core';\nexport { createCssVariablesTheme } from './theme-css-variables.mjs';\n\nconst createHighlighter = /* @__PURE__ */ createdBundledHighlighter(\n bundledLanguages,\n bundledThemes,\n 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\": \"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\": \"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 \"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\": \"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\": \"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-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\": \"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\": \"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":["createMatchers","selector","matchesName","results","tokenizer","input","regex","match","exec","next","res","newTokenizer","token","priority","length","charAt","console","log","matcher","parseConjunction","push","t","parseOperand","o","expressionToNegate","matcherInput","expressionInParents","matchers","some","parseInnerExpression","isIdentifier","identifiers","every","disposeOnigString","str","dispose","doClone","something","Array","isArray","arr","r","i","len","cloneArray","obj","key","cloneObj","mergeObjects","target","_len","arguments","sources","_key","forEach","source","basename","path","idx","lastIndexOf","substring","substr","strcmp","a","b","strArrCmp","len1","len2","isValidHexColor","hex","test","escapeRegExpCharacters","value","replace","collectReferencesOfReference","reference","baseGrammarScopeName","repo","result","selfGrammar","lookup","scopeName","Error","baseGrammar","TopLevelRuleReference","collectExternalReferencesInTopLevelRule","collectExternalReferencesInTopLevelRepositoryRule","ruleName","repository","injections","_iterator3","_createForOfIteratorHelper","s","_step3","n","done","injection","add","err","e","f","context","collectExternalReferencesInRules","patterns","Object","values","_objectSpread","rules","_iterator4","_step4","rule","visitedRule","has","patternRepository","include","parseInclude","kind","undefined","newContext","TopLevelRepositoryRuleReference","BaseReference","SelfReference","indexOfSharp","indexOf","TopLevelReference","RelativeReference","TopLevelRepositoryReference","_matchesScope","scopePattern","startsWith","_tokenizeString","grammar","lineText","isFirstLine","linePos","stack","lineTokens","checkWhileConditions","timeLimit","lineLength","content","STOP","anchorPosition","whileCheckResult","beginRuleCapturedEOL","whileRules","node","pop","nodeRule","getRule","BeginWhileRule","whileRule","_ft","prepareRuleWhileSearch","endRule","ruleScanner","findOptions","findNextMatchSync","ruleId","whileRuleId","captureIndices","produce","start","handleCaptures","whileCaptures","end","_checkWhileConditions","startTime","Date","now","TokenizeStringResult","scanNext","p","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","_n28","line","isPlainLang","lang","includes","isSpecialLang","isNoneTheme","theme","isSpecialTheme","addClassToHast","className","_t$properties","properties","targets","_iterator18","c","_step18","class","resolveColorReplacements","options","replacements","colorReplacements","themeName","_i17","_Object$entries","entries","_Object$entries$_i","_slicedToArray","assign","applyColorReplacements","color","toLowerCase","getTokenStyleObject","styles","bgColor","fontStyle","FontStyle","Italic","Bold","Underline","stringifyTokenStyle","map","_ref4","_ref5","join","findSequence","position","nextEscape","nextClose","sequence","startPosition","parseColor","offset","colorMode","rgb","x","parseInt","isNaN","type","colorIndex","parseSequence","commands","codeInt","decorations","decoration","namedColors","_ne","_ne3","createColorPalette","defaultNamedColorsMap","namedColorsMap","namedColor","rgbColor","concat","max","toString","padStart","colorTable","tableColor","levels","g","level","getColorTable","tokenizeAnsiWithTheme","fileContents","colorPalette","fromEntries","_t$colors","colors","toUpperCase","parser","foreground","background","decorations2","Set","parse","tokens","findResult","text","_iterator19","_step19","styleToken","clear","_iterator20","_step20","createAnsiSequenceParser","bg","fg","hexMatch","alpha","round","from","cssVarMatch","dimColor","None","codeToTokensBase","internal","_n$lang","getLoadedThemes","_t$setTheme","setTheme","colorMap","_grammar","getLanguage","grammarState","ShikiError","_tokenizeWithTheme","tokenizeWithTheme","tokenizeMaxLineLength","_r$tokenizeMaxLineLen","_r$tokenizeTimeLimit","tokenizeTimeLimit","stateStack","state","GrammarState","_stack","getGrammarStack","grammarContextCode","INITIAL","actual","final","themeSettingsSelectors","includeExplanation","_iterator21","settings","_step21","setting","selectors","_typeof","scope","trim","_a$_t","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","tokenizeLine","tokenizeLine2","tokensLength","j","startIndex","nextStartIndex","metadata","StackElementMetadata","getForeground","getFontStyle","explanation","tokenWithScopes","tokenWithScopesText","endIndex","explainThemeScopes","ruleStack","themeSelectors","parentScopes","slice","themeMatches","explainThemeScope","matchesOne","matches","selectorParentIndex","parentIndex","_iterator22","_step22","_step22$value","_iterator23","_step23","selectorPieces","codeToTokensWithThemes","themes","filter","_len2","_key2","outThemes","count","_loop","_i26","outLines","indexes","current","l","minLength","syncThemesTokenization","mergedTokens","lineIdx","_token","tokenIdx","mergedToken","variants","themeIdx","_t$e$o","_","__","___","codeToTokens","rootStyle","_n$defaultColor","defaultColor","cssVariablePrefix","_n$cssVariablePrefix","sort","themeTokens","find","themeRegs","getTheme","themesOrder","merged","variantsOrder","styleKeys","flatMap","keys","mergedStyles","reduce","acc","cur","_iterator24","_step24","keyName","varKey","htmlStyle","mergeToken","themeColorReplacements","_theme","transformerDecorations","je","WeakMap","getContext","shiki","meta","normalizePosition","converter","indexToPos","posToIndex","character","_ref6","_ref7","_iterator25","_step25","createPositionConverter","d","items","foo","JSON","stringify","bar","isFooHasBarStart","isFooHasBarEnd","isBarHasFooStart","isBarHasFooEnd","verifyIntersections","set","get","_this$options$decorat","this","splitted","breakpoints","sorted","breakpointsInToken","offsets","lastOffset","_iterator26","_step26","splitToken","splitTokens","codeEl","ctx","children","tagName","applyLineSection","lineEl","el","POSITIVE_INFINITY","alwaysWrap","wrapper","applyDecoration","splice","applyLine","_e$properties","transform","lineApplies","_iterator27","_loop3","_i30","unshift","_step27","_loop2","getTransformers","_toConsumableArray","transformers","builtInTransformers","codeToHast","transformerContext","_code","_options","_iterator28","_step28","transformer","preprocess","call","_ge","_n$mergeWhitespaces","mergeWhitespaces","newLine","carryOnContent","firstOffset","couldMerge","mergeWhitespaceTokens","_e36","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","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","async","main","init","updateGlobalBufferAndViews","buf","emscripten_realloc_buffer","size","UTF8ToString","ptr","maxBytesToRead","heapOrArray","endIdx","endPtr","buffer","UTF8Decoder","decode","subarray","u0","u1","u2","ch","UTF8ArrayToString","binding","HEAPU8","wasmMemory","grow","byteLength","_unused","Uint8Array","HEAPU32","Uint32Array","TextDecoder","asmLibraryArg","emscripten_get_now","performance","emscripten_memcpy_big","dest","src","num","copyWithin","emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","alignUp","multiple","cutDown","overGrownHeapSize","fd_write","_context25","env","wasi_snapshot_preview1","exports","memory","_context24","stop","_callee23","createWasm","_callee24","_Un","apply","loadWasm","initPromise","_regeneratorRuntime","wrap","_callee8$","_context9","prev","instance","instantiator","dataOrOptions","isInstantiatorModule","data","isDataOptionsObject","Response","isResponse","_Buffer$isBuffer","_Buffer","ArrayBuffer","isView","Buffer","isBuffer","SharedArrayBuffer","isArrayBuffer","WebAssembly","Module","_makeArrayBufferLoader","default","instantiateStreaming","importObject","t3","sent","_ref12","_asyncToGenerator","_callee7$","_context8","arrayBuffer","instantiate","_callee7","_x17","_makeResponseNonStreamingLoader","_callee8","onigBinding","_load","normalizeTheme","rawTheme","RESOLVED_KEY","tokenColors","_t60$settings","_t60$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","_i36","_Object$keys2","_e$colors$_t","defineProperty","enumerable","writable","createShikiInternal","normalizeGetter","resolveLangs","ensureNotDisposed","isDisposed","_registry","instancesCount","_m7","_i41","_i43","langs","Promise","then","flat","_context31","t1","t2","abrupt","t0","_callee28$","_context29","resolve","_callee28","_args11","warnings","warn","wasmLoader","_defaultWasmLoader","resolver","Resolver","createOnigScanner","OnigScanner","OnigString","Registry","langAlias","_context32","_defineProperty","_lastTheme","getColorMap","_lang","getGrammar","getLoadedLanguages","loadLanguage","loadLanguages","loadTheme","_context27","_context28","_callee27","Symbol","_callee31","createHighlighterCore","_context33","getLastGrammarState","_n$lang2","_n$theme2","_t$setTheme2","getInternalContext","_li","createdBundledHighlighter","bundledLanguages","bundledThemes","_ref23","_i$themes","_i$langs","resolveLang","resolveTheme","bundle","_themes","_len4","_len5","_x21","createSingletonShorthands","createHighlighter","getSingletonHighlighter","_shiki","_context16","_callee15","makeSingletonHighlighter","_callee16","_callee17","_codeToTokens","_callee18","_callee19","_callee20","_getLastGrammarState","_callee21","setters","_tslib","bundledLanguagesInfo","id","import","_import","_context","aliases","getWasmInlined","wasm","bundledThemesInfo","displayName","NotSet","process","VSCODE_TEXTMATE_DEBUG","EncodedTokenAttributes","toBinaryStr","encodedTokenAttributes","print","languageId","getLanguageId","tokenType","getTokenType","getBackground","containsBalancedBrackets","_languageId","_tokenType","_containsBalancedBracketsBit","_fontStyle","_foreground","_background","CAPTURING_REGEX_SOURCE","RegexSource","hasCaptures","regexSource","replaceCaptures","captureSource","commandIndex","command","capture","CachedFn","T","fn","_createClass","cache","L","toKey","A","ExternalReferenceCollector","_references","P","_seenReferenceKeys","ScopeDependencyProcessor","O","initialScopeName","seenFullScopeRequests","Q","processQueue","q","deps","_iterator","_step","dep","_iterator2","references","_step2","seenPartialScopeRequests","B","$","I","HAS_BACK_REFERENCES","BACK_REFERENCING_END","Rule","$location","_name","_nameIsCapturing","_contentName","_contentNameIsCapturing","location","filename","constructor","CaptureRule","W","super","_this","_inherits","_q2","collectPatterns","out","compile","MatchRule","V","_assertThisInitialized","_this2","_match","RegExpSource","_cachedCompiledPatterns","_q3","debugMatchRegExp","_getCachedCompiledPatterns","RegExpSourceList","IncludeOnlyRule","X","hasMissingPatterns","_this3","_q4","_step5","_iterator5","pattern","J","begin","applyEndPatternLast","_begin","_end","hasBackReferences","_this4","_q5","resolveBackReferences","_iterator6","_step6","setSource","K","_while","_cachedCompiledWhilePatterns","_this5","_q6","debugBeginRegExp","debugWhileRegExp","_iterator7","_step7","compileWhile","_getCachedCompiledWhilePatterns","createCaptureRule","helper","registerRule","desc","_compileCaptures","_compilePatterns","while","maximumCaptureId","captureId","numericCaptureId","localIncludedRule","externalGrammarName","externalGrammarInclude","externalGrammar","getExternalGrammar","externalIncludedRule","skipRule","regExpSource","lastPushedPos","output","hasAnchor","pos","nextCh","_anchorCache","_buildAnchorCache","newSource","capturedValues","g1","A0_G0_result","A0_G1_result","A1_G0_result","A1_G1_result","A0_G0","A0_G1","A1_G0","A1_G1","resolveAnchors","Z","_items","_hasAnchors","_cached","_disposeCaches","item","onigLib","regExps","CompiledRule","_resolveAnchors","tt","scanner","string","Theme","_colorMap","et","_defaults","_root","getDefaults","scopePath","effectiveRule","_cachedMatchRoot","v","_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","nt","getSegments","_extends","other","getExtensionIfDefined","scopeNames","_iterator8","_step8","rt","foregroundId","backgroundId","ot","_isFrozen","st","_lastColorId","_id2color","_color2id","lt","scopeDepth","acceptOverwrite","cloneArr","at","_mainRule","rulesWithParentScopes","_children","_classCallCheck","_rulesWithParentScopes","_sortBySpecificity","head","tail","dotIndex","hasOwnProperty","_doInsertHere","child","_cmpBySpecificity","aParentScopes","bParentScopes","aParentScopesLen","bParentScopesLen","aLen","bLen","BasicScopeAttributes","ct","BasicScopeAttributesProvider","ut","initialLanguageId","embeddedLanguages","_scopeToLanguage","standardTokenType","_toStandardTokenType","_defaultAttributes","_embeddedLanguagesMatcher","ScopeMatcher","getDefaultAttributes","getBasicScopeAttributes","_NULL_SCOPE_METADATA","_getBasicScopeAttributes","static","m","STANDARD_TOKEN_TYPE_REGEXP","mt","scopesRegExp","escapedScopes","_ref2","_ref3","pt","stoppedEarly","jt","Grammar","kt","_rootScopeName","initialLanguage","tokenTypes","balancedBracketSelectors","grammarRepository","_onigLib","_basicScopeAttributesProvider","_rootId","_lastRuleId","_ruleId2desc","_includedGrammars","_grammarRepository","_injections","_tokenTypeMatchers","_i14","_Object$keys","_iterator10","_step10","_iterator11","_step11","getMetadataForScope","_collectInjections","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","St","tokenAttributes","equals","_pushAttributed","_iterator12","_step12","self","_n$parent$scopePath","fromExtension","namesScopeList","_iterator13","_step13","frame","rawRootMetadata","themeMatch","resolvedTokenAttributes","mergeAttributes","existingTokenAttributes","basicScopeAttributes","styleAttributes","rawMetadata","newPath","scopeThemeMatchResult","xt","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","_t$nameScopesList","_e$enterPos","_e$anchorPos","_xt","BalancedBracketSelectors","balancedBracketScopes","Ct","unbalancedBracketScopes","allowAny","matchesAlways","_iterator14","_step14","excluder","_iterator15","_step15","includer","Tt","tokenTypeOverrides","_emitBinaryTokens","_tokenTypeOverrides","_lineText","_tokens","_binaryTokens","_lastTokenEndIndex","scopesList","_t$tokenAttributes","_this$balancedBracket","matchesNever","_t$getScopeNames","_iterator16","_step16","SyncRegistry","_onigLibPromise","Lt","_grammars","_iterator17","_step17","addGrammar","_rawGrammars","_injectionGrammars","targetScope","_grammarForScopeName","_callee2","rawGrammar","_context3","createGrammar","t10","t11","t4","t5","t6","t7","t8","t9","grammarForScopeName","_x2","_x3","_x4","_x5","_x6","Registry$1","At","_syncRegistry","_ensureGrammarCache","loadGrammarWithEmbeddedLanguages","loadGrammarWithConfiguration","configuration","_loadGrammar","unbalancedBracketSelectors","loadGrammar","_loadGrammar2","_callee3","_this10","_callee3$","_context4","dependencyProcessor","request","_loadSingleGrammar","_x7","_x8","_x9","_x10","_x11","_loadSingleGrammar2","_callee4","_doLoadSingleGrammar","_context5","_x12","_doLoadSingleGrammar2","_callee5","_context6","_x13","_addGrammar","_callee6","_args6","_context7","_x14","MetadataConsts","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","le","message","_this11","ae","visited","pushScope","getScopes","toJSON","ve","prototype","Ce","boolean","booleanish","number","spaceSeparated","commaOrSpaceSeparated","defined","types","freeze","__proto__","checks","Be","mask","_this12","check","_Ce","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","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","k","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","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","rang","loz","spades","clubs","hearts","diams","quot","amp","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","dt","html","li","optgroup","option","rp","tbody","td","tfoot","th","thead","tr","opening","previous","seen","_r30","invalid","unknown","_len3","parameters","_key3","zwitch","node_","comment","_1","_2","doctype","_3","element","selfClosing","last","serializeAttributes","raw","UtfString","Vn","utf16Length","utf8Length","_utf8ByteLength","computeIndicesMapping","utf16OffsetToUtf8","utf8OffsetToUtf16","utf8Value","i8","i16","charCode","codePoint","wasSurrogatePair","nextCharCode","utf16Value","createString","omalloc","codepoint","Xn","LAST_ID","_onigBinding","utfString","_sharedPtrInUse","_sharedPtr","convertUtf8OffsetToUtf16","utf8Offset","convertUtf16OffsetToUtf8","utf16Offset","ofree","Jn","strPtrsArr","strLenArr","strPtrsPtr","strLenPtr","scannerPtr","getLastOnigError","throwLastOnigError","_ptr","freeOnigScanner","arg","debugCall","_findNextMatchSync","resultPtr","findNextOnigScannerMatchDbg","findNextOnigScannerMatch","beg","_resolver","_langs","_this13","_alias","_textmateThemeCache","_loadedThemesCache","_At","_resolvedThemes","textmateTheme","resolved","_resolvedGrammars","_loadLanguage","_callee10","_context11","embeddedLazilyBy","_langMap","embeddedLangsLazy","addLanguage","grammarConfig","alias","_loadedLanguagesCache","delete","_iterator37","finish","_x18","_init","_callee11","_this15","_callee11$","_context12","_langGraph","_loadLanguages","_callee12","_iterator38","_step38","resolveEmbeddedLanguages","langsGraphArray","missingLangs","_ref13","_ref14","dependents","_ref15","_e$embeddedLangs","_ref16","embeddedLangs","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_i37","_e42","_i38","_e43","_context13","_x19","_iterator39","_step39","embeddedLang","ii","onigLibPromise","_scopeToLang","getLangRegistration","langIdOrAlias","_loadGrammar3","_callee13","_callee13$","_context14","_x20","injectTo","scopeParts","subScopeName","NileHighlighter","yi","highlightedCode","_this18","_o24","_updated","_callee22","changedProperties","_context23","requestUpdate","updated","_x34","render","_templateObject","_taggedTemplateLiteral","__decorate","NileElement","reflect","_export","customElement"],"mappings":"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,CAAQ,CAAE,CAAC51B,CAAAA,cAAAA,CAoMXhiB,EAAAA,CAA0B,CAC9B,OAAA,CACA,MACA,QACA,CAAA,OAAA,CACA,SACA,OACA,CAAA,QAAA,CACA,OACA,MACA,CAAA,QAAA,CACA,KACA,CAAA,QAAA,CACA,QACA,QACA,CAAA,MAAA,CACA,KACA,QACA,CAAA,OAAA,CACA,SACA,MACA,CAAA,IAAA,CACA,QACA,CAAA,QAAA,CACA,QACA,QACA,CAAA,QAAA,CACA,SACA,MACA,CAAA,MAAA,CACA,MACA,OACA,CAAA,QAAA,CACA,OACA,CAAA,QAAA,CACA,OACA,QACA,CAAA,QAAA,CACA,QACA,OACA,CAAA,OAAA,CACA,SACA,KACA,CAAA,OAAA,CACA,QACA,CAAA,MAAA,CACA,SACA,QACA,CAAA,OAAA,CACA,OACA,MACA,CAAA,QAAA,CACA,MACA,QACA,CAAA,QAAA,CACA,OACA,CAAA,QAAA,CACA,MACA,MACA,CAAA,QAAA,CACA,SACA,QACA,CAAA,IAAA,CACA,SACA,OACA,CAAA,OAAA,CACA,QACA,CAAA,QAAA,CACA,OACA,OACA,CAAA,IAAA,CACA,OACA,OACA,CAAA,QAAA,CACA,OACA,KACA,CAAA,QAAA,CACA,QACA,CAAA,OAAA,CACA,SACA,MACA,CAAA,MAAA,CACA,SACA,QACA,CAAA,MAAA,CACA,OACA,QACA,CAAA,OAAA,CACA,MACA,CAAA,OAAA,CACA,MACA,MACA,CAAA,KAAA,CACA,OACA,MACA,CAAA,MAAA,CACA,QACA,OACA,CAAA,OAAA,CACA,QACA,CAAA,OAAA,CACA,SACA,KACA,CAAA,MAAA,CACA,SACA,KACA,CAAA,MAAA,CAAA,CAQI63C,GAAyB,CAC7BC,IAAAA,CAAM,GACNC,CAAAA,KAAAA,CAAO,IACPC,IAAM,CAAA,GAAA,CACNC,MAAO,GACPC,CAAAA,MAAAA,CAAQ,IACRC,GAAK,CAAA,GAAA,CACLC,MAAQ,CAAA,GAAA,CACRC,KAAM,GACNC,CAAAA,GAAAA,CAAK,IACLC,IAAM,CAAA,GAAA,CACNC,KAAM,GACNC,CAA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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/core/dist/textmate.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":["import { FontStyle } from './types.mjs';\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n({\n InDebugMode: (typeof process !== 'undefined' && !!process.env['VSCODE_TEXTMATE_DEBUG'])\n});\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nvar EncodedTokenAttributes;\n(function (EncodedTokenAttributes) {\n function toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n EncodedTokenAttributes.toBinaryStr = toBinaryStr;\n function print(encodedTokenAttributes) {\n const languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n const tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n const fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n const foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n const background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n console.log({\n languageId: languageId,\n tokenType: tokenType,\n fontStyle: fontStyle,\n foreground: foreground,\n background: background,\n });\n }\n EncodedTokenAttributes.print = print;\n function getLanguageId(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 255 /* EncodedTokenDataConsts.LANGUAGEID_MASK */) >>>\n 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */);\n }\n EncodedTokenAttributes.getLanguageId = getLanguageId;\n function getTokenType(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 768 /* EncodedTokenDataConsts.TOKEN_TYPE_MASK */) >>>\n 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */);\n }\n EncodedTokenAttributes.getTokenType = getTokenType;\n function containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* EncodedTokenDataConsts.BALANCED_BRACKETS_MASK */) !== 0;\n }\n EncodedTokenAttributes.containsBalancedBrackets = containsBalancedBrackets;\n function getFontStyle(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 30720 /* EncodedTokenDataConsts.FONT_STYLE_MASK */) >>>\n 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */);\n }\n EncodedTokenAttributes.getFontStyle = getFontStyle;\n function getForeground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 16744448 /* EncodedTokenDataConsts.FOREGROUND_MASK */) >>>\n 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getForeground = getForeground;\n function getBackground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 4278190080 /* EncodedTokenDataConsts.BACKGROUND_MASK */) >>>\n 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getBackground = getBackground;\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 function set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n let _tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = EncodedTokenAttributes.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n let _foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n let _background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* OptionalStandardTokenType.NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* FontStyle.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 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */) |\n (_tokenType << 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */) |\n (_containsBalancedBracketsBit <<\n 10 /* EncodedTokenDataConsts.BALANCED_BRACKETS_OFFSET */) |\n (_fontStyle << 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */) |\n (_foreground << 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */) |\n (_background << 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */)) >>>\n 0);\n }\n EncodedTokenAttributes.set = set;\n})(EncodedTokenAttributes || (EncodedTokenAttributes = {}));\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\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(matcher => matcher(matcherInput)); // and\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 === ','); // ignore subsequent commas\n }\n else {\n break;\n }\n matcher = parseConjunction();\n }\n return matcherInput => matchers.some(matcher => matcher(matcherInput)); // or\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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction disposeOnigString(str) {\n if (typeof str.dispose === 'function') {\n str.dispose();\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\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 }\n else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n }\n else {\n return path.substr(~idx + 1);\n }\n}\nlet CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nclass RegexSource {\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 // Remove leading dots that would make the selector invalid\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 }\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 // #rrggbb\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n // #rrggbbaa\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n // #rgb\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n // #rgba\n return true;\n }\n return false;\n}\n/**\n * Escapes regular expression characters in a given string\n */\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&');\n}\nclass CachedFn {\n fn;\n cache = new Map();\n constructor(fn) {\n this.fn = fn;\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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * References the top level rule of a grammar with the given scope name.\n*/\nclass TopLevelRuleReference {\n scopeName;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n}\n/**\n * References a rule of a grammar in the top level repository section with the given name.\n*/\nclass TopLevelRepositoryRuleReference {\n scopeName;\n ruleName;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n}\nclass ExternalReferenceCollector {\n _references = [];\n _seenReferenceKeys = new Set();\n get references() {\n return this._references;\n }\n visitedRule = new Set();\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n}\nclass ScopeDependencyProcessor {\n repo;\n initialScopeName;\n seenFullScopeRequests = new Set();\n seenPartialScopeRequests = new Set();\n Q;\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n 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 // already processed\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n }\n else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed in full\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n // already processed\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 }\n else {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { baseGrammar, selfGrammar, repository: selfGrammar.repository }, result);\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(context.selfGrammar.patterns, { ...context, repository: context.selfGrammar.repository }, result);\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(Object.values(context.selfGrammar.injections), { ...context, repository: context.selfGrammar.repository }, result);\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 /* IncludeReferenceKind.Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* IncludeReferenceKind.Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName\n ? context.selfGrammar\n : reference.scopeName === context.baseGrammar.scopeName\n ? context.baseGrammar\n : undefined;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n }\n else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n }\n else {\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n }\n else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nclass BaseReference {\n kind = 0 /* IncludeReferenceKind.Base */;\n}\nclass SelfReference {\n kind = 1 /* IncludeReferenceKind.Self */;\n}\nclass RelativeReference {\n ruleName;\n kind = 2 /* IncludeReferenceKind.RelativeReference */;\n constructor(ruleName) {\n this.ruleName = ruleName;\n }\n}\nclass TopLevelReference {\n scopeName;\n kind = 3 /* IncludeReferenceKind.TopLevelReference */;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n}\nclass TopLevelRepositoryReference {\n scopeName;\n ruleName;\n kind = 4 /* IncludeReferenceKind.TopLevelRepositoryReference */;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n}\nfunction parseInclude(include) {\n if (include === '$base') {\n return new BaseReference();\n }\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 }\n else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n }\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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nconst HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nconst BACK_REFERENCING_END = /\\\\(\\d+)/g;\n// This is a special constant to indicate that the end regexp matched.\nconst endRuleId = -1;\n// This is a special constant to indicate that the while regexp matched.\nconst whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nclass Rule {\n $location;\n id;\n _nameIsCapturing;\n _name;\n _contentNameIsCapturing;\n _contentName;\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : 'unknown';\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n}\nclass CaptureRule extends Rule {\n retokenizeCapturedWithRuleId;\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n // nothing to 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}\nclass MatchRule extends Rule {\n _match;\n captures;\n _cachedCompiledPatterns;\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass IncludeOnlyRule extends Rule {\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginEndRule extends Rule {\n _begin;\n beginCaptures;\n _end;\n endHasBackReferences;\n endCaptures;\n applyEndPatternLast;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : '\\uFFFF', -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\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 }\n else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginWhileRule extends Rule {\n _begin;\n beginCaptures;\n whileCaptures;\n _while;\n whileHasBackReferences;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n _cachedCompiledWhilePatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : '\\uFFFF');\n }\n return this._cachedCompiledWhilePatterns;\n }\n}\nclass 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(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.match, RuleFactory._compileCaptures(desc.captures, helper, repository));\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(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, RuleFactory._compilePatterns(patterns, helper, repository));\n }\n if (desc.while) {\n return new BeginWhileRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.while, RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository), RuleFactory._compilePatterns(desc.patterns, helper, repository));\n }\n return new BeginEndRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.end, RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository), desc.applyEndPatternLast, RuleFactory._compilePatterns(desc.patterns, helper, repository));\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n // Find the maximum capture id\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 // Initialize result\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n // Fill out result\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 /* IncludeReferenceKind.Base */:\n case 1 /* IncludeReferenceKind.Self */:\n ruleId = RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n // Local include found in `repository`\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n }\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */\n ? reference.ruleName\n : null;\n // External include\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 }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n }\n break;\n }\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 // console.log('REMOVING RULE ENTIRELY DUE TO EMPTY PATTERNS THAT ARE MISSING');\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}\nclass RegExpSource {\n source;\n ruleId;\n hasAnchor;\n hasBackReferences;\n _anchorCache;\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 }\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 // No \\z hit\n this.source = regExpSource;\n }\n else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join('');\n }\n }\n else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n // console.log('input: ' + regExpSource + ' => ' + this.source + ', ' + this.hasAnchor);\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 }\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 }\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 }\n else {\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n }\n else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n}\nclass RegExpSourceList {\n _items;\n _hasAnchors;\n _cached;\n _anchorCache;\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n // bust the cache\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 }\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 }\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 }\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 }\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}\nclass CompiledRule {\n regExps;\n rules;\n scanner;\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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass Theme {\n _colorMap;\n _defaults;\n _root;\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n _cachedMatchRoot = new CachedFn((scopeName) => this._root.match(scopeName));\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\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((v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes));\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(effectiveRule.fontStyle, effectiveRule.foreground, effectiveRule.background);\n }\n}\nclass ScopeStack {\n parent;\n scopeName;\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 constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\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() : undefined;\n }\n}\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes === null) {\n return true;\n }\n let index = 0;\n let scopePattern = parentScopes[index];\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n index++;\n if (index === parentScopes.length) {\n return true;\n }\n scopePattern = parentScopes[index];\n }\n scopePath = scopePath.parent;\n }\n return false;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || (scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === '.');\n}\nclass StyleAttributes {\n fontStyle;\n foregroundId;\n backgroundId;\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n}\n/**\n * Parse a raw theme into rules.\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 // remove leading commas\n _scope = _scope.replace(/^[,]+/, '');\n // remove trailing commans\n _scope = _scope.replace(/[,]+$/, '');\n scopes = _scope.split(',');\n }\n else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n }\n else {\n scopes = [''];\n }\n let fontStyle = -1 /* FontStyle.NotSet */;\n if (typeof entry.settings.fontStyle === 'string') {\n fontStyle = 0 /* FontStyle.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 /* FontStyle.Italic */;\n break;\n case 'bold':\n fontStyle = fontStyle | 2 /* FontStyle.Bold */;\n break;\n case 'underline':\n fontStyle = fontStyle | 4 /* FontStyle.Underline */;\n break;\n case 'strikethrough':\n fontStyle = fontStyle | 8 /* FontStyle.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(scope, parentScopes, i, fontStyle, foreground, background);\n }\n }\n return result;\n}\nclass ParsedThemeRule {\n scope;\n parentScopes;\n index;\n fontStyle;\n foreground;\n background;\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}\n/**\n * Resolve rules (i.e. inheritance).\n */\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n // Sort rules lexicographically, and then by index if necessary\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 // Determine defaults\n let defaultFontStyle = 0 /* FontStyle.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 /* FontStyle.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 /* FontStyle.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}\nclass ColorMap {\n _isFrozen;\n _lastColorId;\n _id2color;\n _color2id;\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = 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 }\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}\nclass ThemeTrieElementRule {\n scopeDepth;\n parentScopes;\n fontStyle;\n foreground;\n background;\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes;\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 }\n else {\n this.scopeDepth = scopeDepth;\n }\n // console.log('TODO -> my depth: ' + this.scopeDepth + ', overwriting depth: ' + scopeDepth);\n if (fontStyle !== -1 /* FontStyle.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}\nclass ThemeTrieElement {\n _mainRule;\n _children;\n _rulesWithParentScopes;\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n static _sortBySpecificity(arr) {\n if (arr.length === 1) {\n return arr;\n }\n arr.sort(this._cmpBySpecificity);\n return arr;\n }\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth === b.scopeDepth) {\n const aParentScopes = a.parentScopes;\n const bParentScopes = b.parentScopes;\n let aParentScopesLen = aParentScopes === null ? 0 : aParentScopes.length;\n let bParentScopesLen = bParentScopes === null ? 0 : bParentScopes.length;\n if (aParentScopesLen === bParentScopesLen) {\n for (let i = 0; i < aParentScopesLen; i++) {\n const aLen = aParentScopes[i].length;\n const bLen = bParentScopes[i].length;\n if (aLen !== bLen) {\n return bLen - aLen;\n }\n }\n }\n return bParentScopesLen - aParentScopesLen;\n }\n return b.scopeDepth - a.scopeDepth;\n }\n match(scope) {\n if (scope === '') {\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\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 return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\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 }\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 }\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 // Merge into the main rule\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n // Try to merge into existing rule\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 // bingo! => we get to merge this into an existing one\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n // Must add a new rule\n // Inherit from main rule\n if (fontStyle === -1 /* FontStyle.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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass BasicScopeAttributes {\n languageId;\n tokenType;\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n}\nclass BasicScopeAttributesProvider {\n _defaultAttributes;\n _embeddedLanguagesMatcher;\n constructor(initialLanguageId, embeddedLanguages) {\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* OptionalStandardTokenType.NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n static _NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n _getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* OptionalStandardTokenType.NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* OptionalStandardTokenType.Comment */;\n case \"string\":\n return 2 /* OptionalStandardTokenType.String */;\n case \"regex\":\n return 3 /* OptionalStandardTokenType.RegEx */;\n case \"meta.embedded\":\n return 0 /* OptionalStandardTokenType.Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n static STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\n}\nclass ScopeMatcher {\n values;\n scopesRegExp;\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n }\n else {\n this.values = new Map(values);\n // create the regex\n const escapedScopes = values.map(([scopeName, value]) => escapeRegExpCharacters(scopeName));\n escapedScopes.sort();\n escapedScopes.reverse(); // Longest scope first\n this.scopesRegExp = new RegExp(`^((${escapedScopes.join(\")|(\")}))($|\\\\.)`, \"\");\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return undefined;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n // no scopes matched\n return undefined;\n }\n return this.values.get(m[1]);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass TokenizeStringResult {\n stack;\n stoppedEarly;\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n}\n/**\n * Tokenize a string\n * @param grammar\n * @param lineText\n * @param isFirstLine\n * @param linePos\n * @param stack\n * @param lineTokens\n * @param checkWhileConditions\n * @param timeLimit Use `0` to indicate no time limit\n * @returns the StackElement or StackElement.TIME_LIMIT_REACHED if the time limit has been reached\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(grammar, lineText, isFirstLine, linePos, stack, lineTokens);\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(); // potentially modifies linePos && anchorPosition\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n const r = matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!r) {\n // No match\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\n ? captureIndices[0].end > linePos\n : false;\n if (matchedRuleId === endRuleId) {\n // We matched the `end` for this rule => pop it\n const poppedRule = stack.getRule(grammar);\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, poppedRule.endCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n // See https://github.com/Microsoft/vscode-textmate/issues/12\n // Let's assume this was a mistake by the grammar author and the intent was to continue in this state\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n // We matched a rule!\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n // push it on the stack rule\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n stack = stack.push(matchedRuleId, linePos, anchorPosition, captureIndices[0].end === lineLength, null, nameScopesList, nameScopesList);\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getEndWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getWhileWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n const matchingRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, matchingRule.captures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop rule immediately since it is a MatchRule\n stack = stack.pop();\n if (!hasAdvanced) {\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n // Advance stream\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\n/**\n * Walk the stack from bottom to top, and check each while condition in this order.\n * If any fails, cut off the entire stack above the failed while condition. While conditions\n * may also advance the linePosition.\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 (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n // we shouldn't end up here\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 }\n else {\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack: stack, linePos: linePos, anchorPosition: anchorPosition, isFirstLine: isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // Look for normal grammar rule\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n // Look for injected rules\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n // No injections whatsoever => early return\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n // No injections matched => early return\n return matchResult;\n }\n if (!matchResult) {\n // Only injections matched => early return\n return injectionResult;\n }\n // Decide if `matchResult` or `injectionResult` should win\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || (injectionResult.priorityMatch && injectionResultScore === matchResultScore)) {\n // injection won!\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 // The lower the better\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 // injection selector doesn't match stack\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 const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n // Injections are sorted by priority, so the previous injection had a better or equal priority\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n // No more need to look at the rest of the injections.\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 const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\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 // Not interested\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n // Nothing really captured\n continue;\n }\n if (captureIndex.start > maxEnd) {\n // Capture going beyond consumed string\n break;\n }\n // pop captures while needed\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n // pop!\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 }\n else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n // the capture requires additional matching\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(grammar, onigSubStr, (isFirstLine && captureIndex.start === 0), captureIndex.start, stackClone, lineTokens, false, /* no time limit */ 0);\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n // push\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 // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nclass LocalStackElement {\n scopes;\n endPos;\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib); //TODO\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: ruleId,\n grammar: 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}\nclass Grammar {\n _rootScopeName;\n balancedBracketSelectors;\n _onigLib;\n _rootId;\n _lastRuleId;\n _ruleId2desc;\n _includedGrammars;\n _grammarRepository;\n _grammar;\n _injections;\n _basicScopeAttributesProvider;\n _tokenTypeMatchers;\n get themeProvider() { return this._grammarRepository; }\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(initialLanguage, embeddedLanguages);\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 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: (scopeName) => {\n if (scopeName === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName);\n },\n injections: (scopeName) => {\n return this._grammarRepository.injections(scopeName);\n },\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n // add injections from the current grammar\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(result, expression, rawInjections[expression], this, grammar);\n }\n }\n // add injection grammars contributed for the current scope\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(result, selector, injectionGrammar, this, injectionGrammar);\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority); // sort by 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 }\n else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n // console.log('LOADED GRAMMAR ' + pattern.include);\n this._includedGrammars[scopeName] = initGrammar(rawIncludedGrammar, repository && repository.$base);\n return this._includedGrammars[scopeName];\n }\n }\n return undefined;\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(this._grammar.repository.$self, this, this._grammar.repository);\n // This ensures ids are deterministic, and thus equal in renderer and webworker.\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 = EncodedTokenAttributes.set(0, rawDefaultMetadata.languageId, rawDefaultMetadata.tokenType, null, defaultStyle.fontStyle, defaultStyle.foregroundId, defaultStyle.backgroundId);\n const rootScopeName = this.getRule(this._rootId).getName(null, null);\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(rootScopeName, defaultMetadata, this);\n }\n else {\n scopeList = AttributedScopeStack.createRoot(\"unknown\", defaultMetadata);\n }\n prevState = new StateStackImpl(null, this._rootId, -1, -1, false, null, scopeList, 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(emitBinaryTokens, lineText, this._tokenTypeMatchers, this.balancedBracketSelectors);\n const r = _tokenizeString(this, onigLineText, isFirstLine, 0, prevState, lineTokens, true, timeLimit);\n disposeOnigString(onigLineText);\n return {\n lineLength: lineLength,\n lineTokens: 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}\nclass AttributedScopeStack {\n parent;\n scopePath;\n tokenAttributes;\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(tokenAttributes, rawRootMetadata, rootStyle);\n return new AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() { return this.scopePath.scopeName; }\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 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 // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* FontStyle.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 EncodedTokenAttributes.set(existingTokenAttributes, basicScopeAttributes.languageId, basicScopeAttributes.tokenType, null, fontStyle, foreground, background);\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(' ') === -1) {\n // This is the common case and much faster\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(target.tokenAttributes, rawMetadata, scopeThemeMatchResult);\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() : undefined;\n }\n}\n/**\n * Represents a \"pushed\" state on the stack (as a linked list element).\n */\nclass StateStackImpl {\n parent;\n ruleId;\n beginRuleCapturedEOL;\n endRule;\n nameScopesList;\n contentNameScopesList;\n _stackElementBrand = undefined;\n // TODO remove me\n static NULL = new StateStackImpl(null, 0, 0, 0, false, null, null, null);\n /**\n * The position on the current line where this state was pushed.\n * This is relevant only while tokenizing a line, to detect endless loops.\n * Its value is meaningless across lines.\n */\n _enterPos;\n /**\n * The captured anchor position when this stack element was pushed.\n * This is relevant only while tokenizing a line, to restore the anchor position when popping.\n * Its value is meaningless across lines.\n */\n _anchorPos;\n /**\n * The depth of the stack.\n */\n depth;\n /**\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(\n /**\n * The previous state on the stack (or null for the root state).\n */\n parent, \n /**\n * The state (rule) that this element represents.\n */\n ruleId, enterPos, anchorPos, \n /**\n * The state has entered and captured \\n. This means that the next line should have an anchorPosition of 0.\n */\n beginRuleCapturedEOL, \n /**\n * The \"pop\" (end) condition for this state in case that it was dynamically generated through captured text.\n */\n endRule, \n /**\n * The list of scopes containing the \"name\" for this state.\n */\n nameScopesList, \n /**\n * The list of scopes containing the \"contentName\" (besides \"name\") for this state.\n * This list **must** contain as an element `scopeName`.\n */\n contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n 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 // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.depth !== b.depth ||\n a.ruleId !== b.ruleId ||\n a.endRule !== b.endRule) {\n return false;\n }\n // Go to previous pair\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(this, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList);\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(this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, this.endRule, this.nameScopesList, contentNameScopeStack);\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new StateStackImpl(this.parent, this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, endRule, this.nameScopesList, this.contentNameScopesList);\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(self, ruleIdFromNumber(frame.ruleId), frame.enterPos ?? -1, frame.anchorPos ?? -1, frame.beginRuleCapturedEOL, frame.endRule, namesScopeList, AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList));\n }\n}\nclass BalancedBracketSelectors {\n balancedBracketScopes;\n unbalancedBracketScopes;\n allowAny = false;\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.balancedBracketScopes = balancedBracketScopes.flatMap((selector) => {\n if (selector === '*') {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n });\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap((selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher));\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}\nclass LineTokens {\n balancedBracketSelectors;\n _emitBinaryTokens;\n /**\n * defined only if `false`.\n */\n _lineText;\n /**\n * used only if `_emitBinaryTokens` is false.\n */\n _tokens;\n /**\n * used only if `_emitBinaryTokens` is true.\n */\n _binaryTokens;\n _lastTokenEndIndex;\n _tokenTypeOverrides;\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n {\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 // Only generate scope array when required to improve performance\n const scopes = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes)) {\n metadata = EncodedTokenAttributes.set(metadata, 0, toOptionalTokenType(tokenType.type), null, -1 /* FontStyle.NotSet */, 0, 0);\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenAttributes.set(metadata, 0, 8 /* OptionalStandardTokenType.NotSet */, containsBalancedBrackets, -1 /* FontStyle.NotSet */, 0, 0);\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n // no need to push a token with the same 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: endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes: 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 // pop produced token for newline\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 // pop produced token for newline\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/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass SyncRegistry {\n _onigLibPromise;\n _grammars = new Map();\n _rawGrammars = new Map();\n _injectionGrammars = new Map();\n _theme;\n constructor(theme, _onigLibPromise) {\n this._onigLibPromise = _onigLibPromise;\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 async 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(scopeName, rawGrammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, this, await this._onigLibPromise));\n }\n return this._grammars.get(scopeName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * The registry that will hold all grammars.\n */\nlet Registry$1 = class Registry {\n _options;\n _syncRegistry;\n _ensureGrammarCache;\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(Theme.createFromRawTheme(options.theme, options.colorMap), options.onigLib);\n this._ensureGrammarCache = 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(initialScopeName, initialLanguage, configuration.embeddedLanguages, configuration.tokenTypes, new BalancedBracketSelectors(configuration.balancedBracketSelectors || [], configuration.unbalancedBracketSelectors || []));\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 async _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n await Promise.all(dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName)));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n async _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._ensureGrammarCache.set(scopeName, this._doLoadSingleGrammar(scopeName));\n }\n return this._ensureGrammarCache.get(scopeName);\n }\n async _doLoadSingleGrammar(scopeName) {\n const grammar = await this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : undefined;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n async addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return (await 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(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n};\nconst INITIAL = StateStackImpl.NULL;\n\n/**\n * Helpers to manage the \"collapsed\" metadata of an entire StackElement stack.\n * The following assumptions have been made:\n * - languageId < 256 => needs 8 bits\n * - unique color count < 512 => needs 9 bits\n *\n * The binary format is:\n * - -------------------------------------------\n * 3322 2222 2222 1111 1111 1100 0000 0000\n * 1098 7654 3210 9876 5432 1098 7654 3210\n * - -------------------------------------------\n * xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx\n * bbbb bbbb bfff ffff ffFF FTTT LLLL LLLL\n * - -------------------------------------------\n * - L = LanguageId (8 bits)\n * - T = StandardTokenType (3 bits)\n * - F = FontStyle (3 bits)\n * - f = foreground color (9 bits)\n * - b = background color (9 bits)\n */\nconst MetadataConsts = {\n LANGUAGEID_MASK: 0b00000000000000000000000011111111,\n TOKEN_TYPE_MASK: 0b00000000000000000000001100000000,\n BALANCED_BRACKETS_MASK: 0b00000000000000000000010000000000,\n FONT_STYLE_MASK: 0b00000000000000000011100000000000,\n FOREGROUND_MASK: 0b00000000011111111100000000000000,\n BACKGROUND_MASK: 0b11111111100000000000000000000000,\n LANGUAGEID_OFFSET: 0,\n TOKEN_TYPE_OFFSET: 8,\n BALANCED_BRACKETS_OFFSET: 10,\n FONT_STYLE_OFFSET: 11,\n FOREGROUND_OFFSET: 15,\n BACKGROUND_OFFSET: 24,\n};\nclass StackElementMetadata {\n static toBinaryStr(metadata) {\n let r = metadata.toString(2);\n while (r.length < 32)\n r = `0${r}`;\n return r;\n }\n // public static printMetadata(metadata: number): void {\n // const languageId = StackElementMetadata.getLanguageId(metadata)\n // const tokenType = StackElementMetadata.getTokenType(metadata)\n // const fontStyle = StackElementMetadata.getFontStyle(metadata)\n // const foreground = StackElementMetadata.getForeground(metadata)\n // const background = StackElementMetadata.getBackground(metadata)\n // console.log({\n // languageId,\n // tokenType,\n // fontStyle,\n // foreground,\n // background,\n // })\n // }\n static getLanguageId(metadata) {\n return (metadata & MetadataConsts.LANGUAGEID_MASK) >>> MetadataConsts.LANGUAGEID_OFFSET;\n }\n static getTokenType(metadata) {\n return (metadata & MetadataConsts.TOKEN_TYPE_MASK) >>> MetadataConsts.TOKEN_TYPE_OFFSET;\n }\n static getFontStyle(metadata) {\n return (metadata & MetadataConsts.FONT_STYLE_MASK) >>> MetadataConsts.FONT_STYLE_OFFSET;\n }\n static getForeground(metadata) {\n return (metadata & MetadataConsts.FOREGROUND_MASK) >>> MetadataConsts.FOREGROUND_OFFSET;\n }\n static getBackground(metadata) {\n return (metadata & MetadataConsts.BACKGROUND_MASK) >>> MetadataConsts.BACKGROUND_OFFSET;\n }\n static containsBalancedBrackets(metadata) {\n return (metadata & MetadataConsts.BALANCED_BRACKETS_MASK) !== 0;\n }\n static set(metadata, languageId, tokenType, fontStyle, foreground, background) {\n let _languageId = StackElementMetadata.getLanguageId(metadata);\n let _tokenType = StackElementMetadata.getTokenType(metadata);\n let _fontStyle = StackElementMetadata.getFontStyle(metadata);\n let _foreground = StackElementMetadata.getForeground(metadata);\n let _background = StackElementMetadata.getBackground(metadata);\n const _containsBalancedBracketsBit = StackElementMetadata.containsBalancedBrackets(metadata)\n ? 1\n : 0;\n if (languageId !== 0)\n _languageId = languageId;\n if (tokenType !== 0 /* TemporaryStandardTokenType.Other */) {\n _tokenType\n = tokenType === 8 /* TemporaryStandardTokenType.MetaEmbedded */ ? 0 /* StandardTokenType.Other */ : tokenType;\n }\n if (fontStyle !== FontStyle.NotSet)\n _fontStyle = fontStyle;\n if (foreground !== 0)\n _foreground = foreground;\n if (background !== 0)\n _background = background;\n return (((_languageId << MetadataConsts.LANGUAGEID_OFFSET)\n | (_tokenType << MetadataConsts.TOKEN_TYPE_OFFSET)\n | (_fontStyle << MetadataConsts.FONT_STYLE_OFFSET)\n | (_containsBalancedBracketsBit << MetadataConsts.BALANCED_BRACKETS_OFFSET)\n | (_foreground << MetadataConsts.FOREGROUND_OFFSET)\n | (_background << MetadataConsts.BACKGROUND_OFFSET))\n >>> 0);\n }\n}\n\nexport { INITIAL, Registry$1 as Registry, StackElementMetadata, Theme };\n","import { INITIAL, StackElementMetadata, Registry as Registry$1, Theme } from './textmate.mjs';\nimport { FontStyle } from './types.mjs';\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}\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\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\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ShikiError';\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/**\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 const themeSettingsSelectors = [];\n if (options.includeExplanation) {\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 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[StackElementMetadata.getForeground(metadata)], colorReplacements);\n const fontStyle = StackElementMetadata.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 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: explainThemeScopes(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 explainThemeScopes(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const parentScopes = scopes.slice(0, i);\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, parentScopes),\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\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 function 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 }\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 function stringify(el) {\n if (el.type === 'text')\n return el.value;\n if (el.type === 'element')\n return el.children.map(stringify).join('');\n return '';\n }\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError(`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}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations(),\n];\nfunction getTransformers(options) {\n return [\n ...options.transformers || [],\n ...builtInTransformers,\n ];\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 * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\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 * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\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 * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\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 * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\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 * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\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 * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\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 * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Properties} Properties\n *\n * @typedef {import('../index.js').State} State\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 * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\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 * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\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 * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n *\n * @typedef {import('../index.js').State} State\n */\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 * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\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 * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('stringify-entities').Options} StringifyEntitiesOptions\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\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_get_now() {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n }\n function _emscripten_memcpy_big(dest, src, num) {\n binding.HEAPU8.copyWithin(dest, src, src + num);\n }\n function getHeapMax() {\n return 2147483648;\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 const alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple);\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;\nlet 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 & 8 /* FindOption.DebugCall */)\n debugCall = true;\n options = arg;\n }\n else if (typeof arg === 'boolean') {\n debugCall = arg;\n }\n if (typeof string === 'string') {\n string = new OnigString(string);\n const result = this._findNextMatchSync(string, startPosition, debugCall, options);\n string.dispose();\n return result;\n }\n return this._findNextMatchSync(string, startPosition, debugCall, options);\n }\n _findNextMatchSync(string, startPosition, debugCall, options) {\n const onigBinding = this._onigBinding;\n let resultPtr;\n if (debugCall)\n resultPtr = onigBinding.findNextOnigScannerMatchDbg(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n else\n 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}\nfunction createOnigString(str) {\n return new OnigString(str);\n}\nfunction createOnigScanner(patterns) {\n return new OnigScanner(patterns);\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\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 _themes.forEach(t => this.loadTheme(t));\n _langs.forEach(l => this.loadLanguage(l));\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 async 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 = await 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 await this.loadLanguage(this._langMap.get(e.name));\n }\n }\n }\n async init() {\n this._themes.map(t => this.loadTheme(t));\n await this.loadLanguages(this._langs);\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 async 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 await 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 _onigLibPromise;\n constructor(onigLibPromise, langs) {\n this._onigLibPromise = onigLibPromise;\n langs.forEach(i => this.addLanguage(i));\n }\n get onigLib() {\n return this._onigLibPromise;\n }\n getLangRegistration(langIdOrAlias) {\n return this._langs.get(langIdOrAlias);\n }\n async 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 _defaultWasmLoader;\n/**\n * Set the default wasm loader for `loadWasm`.\n * @internal\n */\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\nlet instancesCount = 0;\n/**\n * Get the minimal shiki context for rendering.\n */\nasync function createShikiInternal(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 async function normalizeGetter(p) {\n return Promise.resolve(typeof p === 'function' ? p() : p).then(r => r.default || r);\n }\n async 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 }\n const wasmLoader = options.loadWasm || _defaultWasmLoader;\n const [themes, langs,] = await Promise.all([\n Promise.all((options.themes || []).map(normalizeGetter)).then(r => r.map(normalizeTheme)),\n resolveLangs(options.langs || []),\n wasmLoader ? loadWasm(wasmLoader) : undefined,\n ]);\n const resolver = new Resolver(Promise.resolve({\n createOnigScanner(patterns) {\n return createOnigScanner(patterns);\n },\n createOnigString(s) {\n return createOnigString(s);\n },\n }), langs);\n const _registry = new Registry(resolver, themes, langs, options.langAlias);\n await _registry.init();\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 async function loadLanguage(...langs) {\n ensureNotDisposed();\n await _registry.loadLanguages(await resolveLangs(langs));\n }\n async function loadTheme(...themes) {\n ensureNotDisposed();\n await Promise.all(themes.map(async (theme) => isSpecialTheme(theme)\n ? null\n : _registry.loadTheme(await normalizeGetter(theme))));\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 loadTheme,\n dispose,\n [Symbol.dispose]: dispose,\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/install#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}\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/**\n * Create a `createHighlighter` function with bundled themes and languages.\n *\n * @param bundledLanguages\n * @param bundledThemes\n * @param loadWasm\n */\nfunction createdBundledHighlighter(bundledLanguages, bundledThemes, loadWasm) {\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 ...options,\n themes: _themes,\n langs,\n loadWasm,\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\nexport { FontStyle, ShikiError, addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighterCore, createPositionConverter, createShikiInternal, createSingletonShorthands, createdBundledHighlighter, getHighlighterCore, getShikiInternal, getSingletonHighlighterCore, getTokenStyleObject, toHtml as hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, loadWasm, makeSingletonHighlighter, makeSingletonHighlighterCore, 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, createSingletonShorthands } from '@shikijs/core';\nexport * from '@shikijs/core';\nexport { createCssVariablesTheme } from './theme-css-variables.mjs';\n\nconst createHighlighter = /* @__PURE__ */ createdBundledHighlighter(\n bundledLanguages,\n bundledThemes,\n 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\": \"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\": \"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 \"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\": \"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-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\": \"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\": \"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":["createMatchers","selector","matchesName","results","tokenizer","input","regex","match","exec","next","res","newTokenizer","token","priority","length","charAt","console","log","concat","matcher","parseConjunction","push","parseOperand","expressionToNegate","matcherInput","expressionInParents","matchers","some","parseInnerExpression","isIdentifier","identifiers","every","disposeOnigString","str","dispose","doClone","something","Array","isArray","arr","r","i","len","cloneArray","obj","key","cloneObj","mergeObjects","target","sources","forEach","source","basename","path","idx","lastIndexOf","substring","substr","strcmp","a","b","strArrCmp","len1","len2","isValidHexColor","hex","test","escapeRegExpCharacters","value","replace","collectReferencesOfReference","reference","baseGrammarScopeName","repo","result","selfGrammar","lookup","scopeName","Error","baseGrammar","TopLevelRuleReference","collectExternalReferencesInTopLevelRule","collectExternalReferencesInTopLevelRepositoryRule","ruleName","repository","injections","_iterator3","s","_step3","n","done","injection","add","err","e","f","context","collectExternalReferencesInRules","patterns","Object","values","rules","_iterator4","_step4","rule","visitedRule","has","patternRepository","_objectSpread","include","parseInclude","kind","undefined","newContext","TopLevelRepositoryRuleReference","BaseReference","SelfReference","indexOfSharp","indexOf","TopLevelReference","RelativeReference","TopLevelRepositoryReference","_matchesScope","scopePattern","startsWith","_tokenizeString","grammar","lineText","isFirstLine","linePos","stack","lineTokens","checkWhileConditions","timeLimit","lineLength","content","STOP","anchorPosition","whileCheckResult","beginRuleCapturedEOL","whileRules","node","pop","nodeRule","getRule","BeginWhileRule","whileRule","_ft","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","_n28","line","isPlainLang","lang","includes","isSpecialLang","isNoneTheme","theme","isSpecialTheme","addClassToHast","className","properties","class","targets","_iterator18","_step18","c","resolveColorReplacements","options","replacements","colorReplacements","themeName","_i17","_Object$entries","entries","_Object$entries$_i","_slicedToArray","assign","applyColorReplacements","color","toLowerCase","getTokenStyleObject","styles","bgColor","fontStyle","FontStyle","Italic","Bold","Underline","stringifyTokenStyle","map","_ref4","_ref5","join","findSequence","position","nextEscape","nextClose","sequence","startPosition","parseColor","offset","colorMode","rgb","x","parseInt","isNaN","type","colorIndex","parseSequence","commands","codeInt","decorations","decoration","namedColors","_ne","_ne3","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","Set","parse","tokens","findResult","text","_iterator19","_step19","styleToken","clear","_iterator20","_step20","createAnsiSequenceParser","bg","fg","hexMatch","alpha","round","from","cssVarMatch","dimColor","None","codeToTokensBase","internal","_n$lang","_n$theme","getLoadedThemes","_t$setTheme","setTheme","colorMap","_grammar","getLanguage","grammarState","ShikiError","_tokenizeWithTheme","tokenizeWithTheme","tokenizeMaxLineLength","tokenizeTimeLimit","stateStack","state","GrammarState","_stack","getGrammarStack","grammarContextCode","INITIAL","actual","final","themeSettingsSelectors","includeExplanation","settings","_step21","_iterator21","setting","selectors","_typeof","scope","trim","_a$_t","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","tokenizeLine","tokenizeLine2","tokensLength","j","startIndex","nextStartIndex","metadata","StackElementMetadata","getForeground","getFontStyle","explanation","tokenWithScopes","tokenWithScopesText","endIndex","explainThemeScopes","ruleStack","themeSelectors","parentScopes","slice","themeMatches","explainThemeScope","matchesOne","matches","selectorParentIndex","parentIndex","_iterator22","_step22","_step22$value","_iterator23","_step23","selectorPieces","codeToTokensWithThemes","themes","filter","outThemes","count","_loop","_i26","t","outLines","indexes","current","l","minLength","syncThemesTokenization","mergedTokens","lineIdx","_token","tokenIdx","mergedToken","variants","themeIdx","_t$e$o","_","__","___","codeToTokens","rootStyle","_n$defaultColor","defaultColor","_n$cssVariablePrefix","cssVariablePrefix","sort","themeTokens","find","themeRegs","getTheme","themesOrder","merged","variantsOrder","styleKeys","flatMap","keys","mergedStyles","reduce","acc","cur","_iterator24","_step24","keyName","varKey","htmlStyle","mergeToken","themeColorReplacements","_theme","transformerDecorations","WeakMap","getContext","shiki","meta","normalizePosition","p","converter","indexToPos","JSON","stringify","character","posToIndex","_ref6","_ref7","_iterator25","_step25","createPositionConverter","d","items","foo","bar","isFooHasBarStart","isFooHasBarEnd","isBarHasFooStart","isBarHasFooEnd","verifyIntersections","set","get","this","splitted","breakpoints","sorted","breakpointsInToken","offsets","lastOffset","_iterator26","_step26","splitToken","splitTokens","codeEl","_this$options$decorat2","ctx","children","tagName","applyLineSection","lineEl","el","POSITIVE_INFINITY","alwaysWrap","wrapper","applyDecoration","splice","applyLine","transform","lineApplies","_iterator27","_loop3","_i30","unshift","_step27","_loop2","getTransformers","_toConsumableArray","transformers","builtInTransformers","codeToHast","transformerContext","_code","_options","_iterator28","_step28","transformer","preprocess","call","_ge","_n$mergeWhitespaces","mergeWhitespaces","newLine","carryOnContent","firstOffset","couldMerge","mergeWhitespaceTokens","_e37","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","De","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","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","async","main","init","updateGlobalBufferAndViews","buf","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","Uint8Array","HEAPU32","Uint32Array","TextDecoder","asmLibraryArg","emscripten_get_now","performance","emscripten_memcpy_big","dest","src","num","copyWithin","emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","alignUp","multiple","cutDown","overGrownHeapSize","fd_write","_context25","env","wasi_snapshot_preview1","exports","memory","_context24","stop","_callee23","createWasm","_callee24","_Un","apply","arguments","loadWasm","initPromise","instance","_context9","instantiator","dataOrOptions","isInstantiatorModule","data","isDataOptionsObject","Response","isResponse","_Buffer$isBuffer","_Buffer","ArrayBuffer","isView","Buffer","isBuffer","SharedArrayBuffer","isArrayBuffer","WebAssembly","Module","_makeArrayBufferLoader","instantiateStreaming","importObject","t3","sent","_ref12","_asyncToGenerator","_regeneratorRuntime","wrap","_callee7$","_context8","prev","arrayBuffer","instantiate","_callee7","_x17","_makeResponseNonStreamingLoader","default","_callee8","_x16","_ref11","onigBinding","_load","normalizeTheme","rawTheme","RESOLVED_KEY","tokenColors","_t60$settings","_t60$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","_i36","_Object$keys2","defineProperty","enumerable","writable","createShikiInternal","normalizeGetter","resolveLangs","ensureNotDisposed","isDisposed","_registry","instancesCount","_i41","_i43","langs","_callee30$","_context31","t0","Promise","then","flat","resolve","_context29","_callee28","warnings","warn","wasmLoader","_defaultWasmLoader","resolver","Resolver","createOnigScanner","OnigScanner","OnigString","Registry","langAlias","_context32","abrupt","_defineProperty","_lastTheme","getColorMap","_lang","getGrammar","getLoadedLanguages","loadLanguage","loadLanguages","_context26","t1","_loadLanguage2","loadTheme","_context28","_callee27","Symbol","createHighlighterCore","_args12","_context33","getLastGrammarState","_n$lang2","_t$setTheme2","getInternalContext","_li","createdBundledHighlighter","bundledLanguages","bundledThemes","_ref23","resolveLang","resolveTheme","bundle","_themes","_i$langs","_len4","_len5","_x21","createSingletonShorthands","createHighlighter","getSingletonHighlighter","_shiki","_args15","_context16","_callee15","makeSingletonHighlighter","_callee16","_codeToHast","_callee17","_callee18","_callee19","_codeToTokensWithThemes","_callee20","_callee21","_context22","_x32","_x33","_getLastGrammarState","setters","_tslib","bundledLanguagesInfo","id","import","_import","_context","aliases","getWasmInlined","wasm","bundledThemesInfo","displayName","NotSet","process","VSCODE_TEXTMATE_DEBUG","EncodedTokenAttributes","toBinaryStr","encodedTokenAttributes","print","languageId","getLanguageId","tokenType","getTokenType","getBackground","containsBalancedBrackets","_languageId","_tokenType","_containsBalancedBracketsBit","_fontStyle","_foreground","_background","CAPTURING_REGEX_SOURCE","RegexSource","hasCaptures","regexSource","replaceCaptures","captureSource","commandIndex","command","capture","CachedFn","T","fn","_createClass","cache","L","toKey","A","ExternalReferenceCollector","_references","P","references","_seenReferenceKeys","ScopeDependencyProcessor","O","initialScopeName","seenPartialScopeRequests","Q","seenFullScopeRequests","processQueue","q","deps","_iterator","_step","dep","_iterator2","_step2","$","B","I","HAS_BACK_REFERENCES","BACK_REFERENCING_END","Rule","$location","_name","_nameIsCapturing","_contentName","_contentNameIsCapturing","location","filename","constructor","CaptureRule","W","super","_this","_inherits","_q2","collectPatterns","out","compile","MatchRule","V","_assertThisInitialized","_this2","_match","RegExpSource","_cachedCompiledPatterns","_q3","_getCachedCompiledPatterns","RegExpSourceList","IncludeOnlyRule","J","hasMissingPatterns","_this3","_q4","_iterator5","_step5","pattern","X","begin","applyEndPatternLast","_begin","_end","hasBackReferences","_this4","_q5","resolveBackReferences","_iterator6","_step6","setSource","K","_while","_cachedCompiledWhilePatterns","_this5","_q6","_iterator7","_step7","compileWhile","_getCachedCompiledWhilePatterns","Y","_classCallCheck","createCaptureRule","helper","registerRule","desc","_compileCaptures","_compilePatterns","maximumCaptureId","captureId","numericCaptureId","localIncludedRule","externalGrammarName","externalGrammarInclude","externalGrammar","getExternalGrammar","externalIncludedRule","skipRule","regExpSource","lastPushedPos","output","hasAnchor","pos","nextCh","_anchorCache","_buildAnchorCache","newSource","capturedValues","g1","A0_G0_result","A0_G1_result","A1_G0_result","A1_G1_result","A0_G0","A0_G1","A1_G0","A1_G1","resolveAnchors","Z","_items","_hasAnchors","_cached","_disposeCaches","item","onigLib","regExps","CompiledRule","_resolveAnchors","tt","scanner","string","Theme","et","_colorMap","_defaults","_root","getDefaults","scopePath","effectiveRule","_cachedMatchRoot","v","_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","nt","getSegments","_extends","other","getExtensionIfDefined","scopeNames","_iterator8","_step8","rt","foregroundId","backgroundId","ot","_isFrozen","st","_lastColorId","_id2color","_color2id","lt","scopeDepth","acceptOverwrite","cloneArr","_mainRule","at","rulesWithParentScopes","_children","_rulesWithParentScopes","_sortBySpecificity","head","tail","dotIndex","hasOwnProperty","_doInsertHere","child","_cmpBySpecificity","aParentScopes","bParentScopes","aParentScopesLen","bParentScopesLen","aLen","bLen","BasicScopeAttributes","ct","BasicScopeAttributesProvider","_defaultAttributes","ut","initialLanguageId","embeddedLanguages","_scopeToLanguage","standardTokenType","_toStandardTokenType","_embeddedLanguagesMatcher","ScopeMatcher","getDefaultAttributes","getBasicScopeAttributes","_NULL_SCOPE_METADATA","_getBasicScopeAttributes","static","m","STANDARD_TOKEN_TYPE_REGEXP","mt","scopesRegExp","escapedScopes","_ref2","_ref3","pt","stoppedEarly","jt","Grammar","kt","_rootScopeName","initialLanguage","tokenTypes","balancedBracketSelectors","grammarRepository","_onigLib","_basicScopeAttributesProvider","_rootId","_lastRuleId","_ruleId2desc","_includedGrammars","_grammarRepository","_injections","_tokenTypeMatchers","_i14","_Object$keys","_iterator10","_step10","_iterator11","_step11","getMetadataForScope","_collectInjections","_this8","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","St","tokenAttributes","equals","_pushAttributed","_iterator12","_step12","self","fromExtension","namesScopeList","_t$scopePath","_iterator13","_step13","frame","rawRootMetadata","themeMatch","resolvedTokenAttributes","mergeAttributes","existingTokenAttributes","basicScopeAttributes","styleAttributes","rawMetadata","newPath","scopeThemeMatchResult","xt","enterPos","anchorPos","depth","_enterPos","_anchorPos","_equals","_reset","_writeString","outIndex","contentNameScopeStack","toStateStackFrame","_this$parent$nameScop","_this$nameScopesList$","_this$contentNameScop2","_structuralEquals","pushFrame","_xt","BalancedBracketSelectors","Ct","balancedBracketScopes","unbalancedBracketScopes","allowAny","_iterator14","_step14","excluder","_iterator15","_step15","includer","Tt","tokenTypeOverrides","_emitBinaryTokens","_tokenTypeOverrides","_lineText","_tokens","_binaryTokens","_lastTokenEndIndex","scopesList","_t$getScopeNames2","_t$tokenAttributes","_this$balancedBracket","matchesAlways","matchesNever","_t$getScopeNames","_iterator16","_step16","SyncRegistry","Lt","_onigLibPromise","_iterator17","_grammars","_step17","addGrammar","_rawGrammars","_injectionGrammars","targetScope","_grammarForScopeName","_callee2","rawGrammar","_context3","t2","createGrammar","grammarForScopeName","_x2","_x3","_x4","_x5","_x6","Registry$1","At","_syncRegistry","_ensureGrammarCache","loadGrammarWithEmbeddedLanguages","loadGrammarWithConfiguration","configuration","_loadGrammar","unbalancedBracketSelectors","loadGrammar","_loadGrammar2","_callee3","dependencyProcessor","request","_loadSingleGrammar","_context4","_x7","_x8","_x9","_x10","_x11","_loadSingleGrammar2","_callee4","_doLoadSingleGrammar","_context5","_x12","_doLoadSingleGrammar2","_callee5","_n27","_callee5$","_context6","_x13","_addGrammar","_callee6","_args6","_context7","_x14","MetadataConsts","Ft","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","le","message","_this11","_Error","_wrapNativeSuper","ae","visited","pushScope","getScopes","toJSON","initial","ve","prototype","Ce","booleanish","number","spaceSeparated","commaOrSpaceSeparated","defined","boolean","types","freeze","__proto__","checks","$e","mask","check","_this12","_Ce","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","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","k","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","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","rang","loz","spades","clubs","hearts","diams","quot","amp","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","dt","html","li","optgroup","option","rp","tbody","td","tfoot","th","thead","tr","opening","previous","seen","double","invalid","unknown","_len3","parameters","zwitch","node_","comment","_1","_2","doctype","_3","element","selfClosing","last","serializeAttributes","raw","UtfString","Vn","utf16Length","utf8Length","_utf8ByteLength","computeIndicesMapping","utf16OffsetToUtf8","utf8OffsetToUtf16","utf8Value","i8","i16","charCode","codePoint","wasSurrogatePair","nextCharCode","utf16Value","createString","omalloc","codepoint","Jn","LAST_ID","_onigBinding","utfString","_sharedPtrInUse","_sharedPtr","convertUtf8OffsetToUtf16","utf8Offset","convertUtf16OffsetToUtf8","utf16Offset","ofree","Xn","strPtrsArr","strLenArr","strPtrsPtr","strLenPtr","scannerPtr","getLastOnigError","throwLastOnigError","_ptr","freeOnigScanner","arg","debugCall","_findNextMatchSync","resultPtr","findNextOnigScannerMatchDbg","findNextOnigScannerMatch","beg","_resolver","_langs","_alias","_this13","_At","_resolvedThemes","_loadedThemesCache","textmateTheme","_textmateThemeCache","resolved","_resolvedGrammars","_loadLanguage","_callee10","_this14","_iterator37","_step37","_this$_syncRegistry","_this$_syncRegistry2","_t62","_callee10$","_context11","embeddedLazilyBy","_langMap","embeddedLangsLazy","addLanguage","grammarConfig","alias","_loadedLanguagesCache","finish","_x18","_init","_callee11","_this15","_callee11$","_context12","_langGraph","_loadLanguages","_callee12","_iterator38","_step38","resolveEmbeddedLanguages","langsGraphArray","missingLangs","_ref13","_ref14","_context13","dependents","_ref15","_e$embeddedLangs","_ref16","embeddedLangs","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_i37","_e43","_i38","_e44","_x19","_iterator39","_step39","embeddedLang","ii","onigLibPromise","getLangRegistration","langIdOrAlias","_loadGrammar3","_callee13","_scopeToLang","_context14","_x20","injectTo","scopeParts","subScopeName","NileHighlighter","_o24","yi","highlightedCode","_this18","_updated","_callee22","changedProperties","requestUpdate","updated","_x34","render","_templateObject","_taggedTemplateLiteral","__decorate","NileElement","reflect","_export","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|