@clubmed/usg-chat-ui 1.0.1 → 1.2.4
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/chunks/_commonjsHelpers.js +9 -0
- package/chunks/_commonjsHelpers.js.map +1 -0
- package/chunks/browser.js +579 -0
- package/chunks/browser.js.map +1 -0
- package/chunks/client.js +27323 -0
- package/chunks/client.js.map +1 -0
- package/chunks/index.js +59 -32
- package/chunks/index.js.map +1 -1
- package/chunks/index2.js +32 -59
- package/chunks/index2.js.map +1 -1
- package/chunks/index3.js +22 -740
- package/chunks/index3.js.map +1 -1
- package/chunks/index4.js +740 -22
- package/chunks/index4.js.map +1 -1
- package/chunks/index5.js +1 -1
- package/chunks/index6.js +144 -150
- package/chunks/index6.js.map +1 -1
- package/chunks/index7.js +14 -13
- package/chunks/index7.js.map +1 -1
- package/chunks/magic-string.es.js +664 -0
- package/chunks/magic-string.es.js.map +1 -0
- package/chunks/react.esm.js +10007 -0
- package/chunks/react.esm.js.map +1 -0
- package/chunks/{collaboration.js → useCollaboration.js} +536 -523
- package/chunks/useCollaboration.js.map +1 -0
- package/chunks/vi.2VT5v0um.js +10573 -0
- package/chunks/vi.2VT5v0um.js.map +1 -0
- package/contexts/ChatContext.d.ts +2 -1
- package/contexts/ChatContext.js +32 -30
- package/contexts/ChatContext.js.map +1 -1
- package/core/interfaces/ChatConfig.d.ts +4 -0
- package/core/interfaces/StoryVersion.d.ts +7 -2
- package/index.d.ts +1 -0
- package/molecules/AiElements/Message.js +1 -1
- package/molecules/AiElements/Response.js +15 -13
- package/molecules/AiElements/Response.js.map +1 -1
- package/molecules/AiElements/Sources.d.ts +2 -2
- package/molecules/AiElements/Sources.js.map +1 -1
- package/molecules/Buttons/Button.d.ts +1 -1
- package/molecules/Buttons/Button.js +2 -2
- package/molecules/{AiElements → CodeBlock}/CodeBlock.d.ts +5 -2
- package/molecules/CodeBlock/CodeBlock.js +128 -0
- package/molecules/CodeBlock/CodeBlock.js.map +1 -0
- package/molecules/CodeBlock/CodeBlock.test.d.ts +1 -0
- package/molecules/CodeBlock/CodeBlock.test.js +3158 -0
- package/molecules/CodeBlock/CodeBlock.test.js.map +1 -0
- package/molecules/CodeBlock/highlightCode.d.ts +2 -0
- package/molecules/CodeBlock/highlightCode.js +5850 -0
- package/molecules/CodeBlock/highlightCode.js.map +1 -0
- package/molecules/CodeBlock/highlightCode.test.d.ts +1 -0
- package/molecules/CodeBlock/highlightCode.test.js +47 -0
- package/molecules/CodeBlock/highlightCode.test.js.map +1 -0
- package/molecules/Collapsibles/Collapsible.js +1 -1
- package/molecules/Forms/InputGroups/InputGroup.js +1 -1
- package/molecules/Labels/Label.js +2 -2
- package/molecules/Notifications/{Sonner.js → Toaster.js} +2 -2
- package/molecules/Notifications/Toaster.js.map +1 -0
- package/molecules/Notifications/{use-toast.js → useToast.js} +1 -1
- package/molecules/Notifications/useToast.js.map +1 -0
- package/{organisms → molecules}/RichText/DynamicEditor.js.map +1 -1
- package/molecules/RichText/EditorWithAI.js +55854 -0
- package/molecules/RichText/EditorWithAI.js.map +1 -0
- package/molecules/RichText/useCollaboration.d.ts +9 -0
- package/molecules/RichText/useCollaboration.js +8 -0
- package/molecules/RichText/useCollaboration.js.map +1 -0
- package/molecules/RichText/useCollaboration.test.d.ts +1 -0
- package/molecules/RichText/useCollaboration.test.js +70 -0
- package/molecules/RichText/useCollaboration.test.js.map +1 -0
- package/molecules/Tabs/Tabs.js +1 -1
- package/organisms/canvas/ApiDocsCanvas.js +15 -15
- package/organisms/canvas/ApiDocsCanvas.js.map +1 -1
- package/organisms/canvas/ReleaseNoteCanvas.js +2 -2
- package/organisms/canvas/ReleaseNoteCanvas.js.map +1 -1
- package/organisms/canvas/StoryCanvas.js +2 -2
- package/organisms/canvas/StoryCanvas.js.map +1 -1
- package/organisms/chat/MessageActions.js +1 -1
- package/organisms/chat/MessageActions.js.map +1 -1
- package/organisms/chat/hooks/useChat.js +1 -1
- package/organisms/chat/hooks/useChat.js.map +1 -1
- package/organisms/chat/hooks/useChatKeyboardsShortcuts.js +16 -33
- package/organisms/chat/hooks/useChatKeyboardsShortcuts.js.map +1 -1
- package/organisms/chat/hooks/useConversations.js +1 -1
- package/organisms/chat/hooks/useConversations.js.map +1 -1
- package/organisms/settings/SettingsModal.js +1 -1
- package/package.json +3 -4
- package/.npm/_logs/2026-01-19T16_54_30_380Z-debug-0.log +0 -19
- package/.npm/_logs/2026-01-19T16_54_30_467Z-debug-0.log +0 -19
- package/.npm/_logs/2026-01-19T16_54_30_553Z-debug-0.log +0 -14
- package/chunks/collaboration.js.map +0 -1
- package/core/collaboration.d.ts +0 -6
- package/core/collaboration.js +0 -5
- package/core/collaboration.js.map +0 -1
- package/molecules/AiElements/CodeBlock.js +0 -6525
- package/molecules/AiElements/CodeBlock.js.map +0 -1
- package/molecules/Notifications/Sonner.js.map +0 -1
- package/molecules/Notifications/use-toast.js.map +0 -1
- package/molecules/index.d.ts +0 -28
- package/molecules/index.js +0 -88
- package/molecules/index.js.map +0 -1
- package/organisms/RichText/EditorWithAI.js +0 -83167
- package/organisms/RichText/EditorWithAI.js.map +0 -1
- /package/molecules/Notifications/{Sonner.d.ts → Toaster.d.ts} +0 -0
- /package/molecules/Notifications/{use-toast.d.ts → useToast.d.ts} +0 -0
- /package/{organisms → molecules}/RichText/DynamicEditor.d.ts +0 -0
- /package/{organisms → molecules}/RichText/DynamicEditor.js +0 -0
- /package/{organisms → molecules}/RichText/EditorWithAI.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlightCode.js","sources":["../../../../../node_modules/.pnpm/@shikijs+types@3.21.0/node_modules/@shikijs/types/dist/index.mjs","../../../../../node_modules/.pnpm/@shikijs+vscode-textmate@10.0.2/node_modules/@shikijs/vscode-textmate/dist/index.js","../../../../../node_modules/.pnpm/@shikijs+core@3.21.0/node_modules/@shikijs/core/dist/index.mjs","../../../../../node_modules/.pnpm/shiki@3.21.0/node_modules/shiki/dist/langs.mjs","../../../../../node_modules/.pnpm/shiki@3.21.0/node_modules/shiki/dist/themes.mjs","../../../../../node_modules/.pnpm/@shikijs+engine-oniguruma@3.21.0/node_modules/@shikijs/engine-oniguruma/dist/index.mjs","../../../../../node_modules/.pnpm/shiki@3.21.0/node_modules/shiki/dist/bundle-full.mjs","../../../lib/molecules/CodeBlock/highlightCode.ts"],"sourcesContent":["class ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ShikiError\";\n }\n}\n\nexport { ShikiError };\n","// src/utils.ts\nfunction clone(something) {\n return doClone(something);\n}\nfunction doClone(something) {\n if (Array.isArray(something)) {\n return cloneArray(something);\n }\n if (something instanceof RegExp) {\n return something;\n }\n if (typeof something === \"object\") {\n return cloneObj(something);\n }\n return something;\n}\nfunction cloneArray(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = doClone(arr[i]);\n }\n return r;\n}\nfunction cloneObj(obj) {\n let r = {};\n for (let key in obj) {\n r[key] = doClone(obj[key]);\n }\n return r;\n}\nfunction mergeObjects(target, ...sources) {\n sources.forEach((source) => {\n for (let key in source) {\n target[key] = source[key];\n }\n });\n return target;\n}\nfunction basename(path) {\n const idx = ~path.lastIndexOf(\"/\") || ~path.lastIndexOf(\"\\\\\");\n if (idx === 0) {\n return path;\n } else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n } else {\n return path.substr(~idx + 1);\n }\n}\nvar CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nvar RegexSource = class {\n static hasCaptures(regexSource) {\n if (regexSource === null) {\n return false;\n }\n CAPTURING_REGEX_SOURCE.lastIndex = 0;\n return CAPTURING_REGEX_SOURCE.test(regexSource);\n }\n static replaceCaptures(regexSource, captureSource, captureIndices) {\n return regexSource.replace(CAPTURING_REGEX_SOURCE, (match, index, commandIndex, command) => {\n let capture = captureIndices[parseInt(index || commandIndex, 10)];\n if (capture) {\n let result = captureSource.substring(capture.start, capture.end);\n while (result[0] === \".\") {\n result = result.substring(1);\n }\n switch (command) {\n case \"downcase\":\n return result.toLowerCase();\n case \"upcase\":\n return result.toUpperCase();\n default:\n return result;\n }\n } else {\n return match;\n }\n });\n }\n};\nfunction strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nfunction strArrCmp(a, b) {\n if (a === null && b === null) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n let len1 = a.length;\n let len2 = b.length;\n if (len1 === len2) {\n for (let i = 0; i < len1; i++) {\n let res = strcmp(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n }\n return len1 - len2;\n}\nfunction isValidHexColor(hex) {\n if (/^#[0-9a-f]{6}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n return true;\n }\n return false;\n}\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, \"\\\\$&\");\n}\nvar CachedFn = class {\n constructor(fn) {\n this.fn = fn;\n }\n cache = /* @__PURE__ */ new Map();\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const value = this.fn(key);\n this.cache.set(key, value);\n return value;\n }\n};\n\n// src/theme.ts\nvar Theme = class {\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\n }\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n _cachedMatchRoot = new CachedFn(\n (scopeName) => this._root.match(scopeName)\n );\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n getDefaults() {\n return this._defaults;\n }\n match(scopePath) {\n if (scopePath === null) {\n return this._defaults;\n }\n const scopeName = scopePath.scopeName;\n const matchingTrieElements = this._cachedMatchRoot.get(scopeName);\n const effectiveRule = matchingTrieElements.find(\n (v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes)\n );\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(\n effectiveRule.fontStyle,\n effectiveRule.foreground,\n effectiveRule.background\n );\n }\n};\nvar ScopeStack = class _ScopeStack {\n constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\n }\n static push(path, scopeNames) {\n for (const name of scopeNames) {\n path = new _ScopeStack(path, name);\n }\n return path;\n }\n static from(...segments) {\n let result = null;\n for (let i = 0; i < segments.length; i++) {\n result = new _ScopeStack(result, segments[i]);\n }\n return result;\n }\n push(scopeName) {\n return new _ScopeStack(this, scopeName);\n }\n getSegments() {\n let item = this;\n const result = [];\n while (item) {\n result.push(item.scopeName);\n item = item.parent;\n }\n result.reverse();\n return result;\n }\n toString() {\n return this.getSegments().join(\" \");\n }\n extends(other) {\n if (this === other) {\n return true;\n }\n if (this.parent === null) {\n return false;\n }\n return this.parent.extends(other);\n }\n getExtensionIfDefined(base) {\n const result = [];\n let item = this;\n while (item && item !== base) {\n result.push(item.scopeName);\n item = item.parent;\n }\n return item === base ? result.reverse() : void 0;\n }\n};\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes.length === 0) {\n return true;\n }\n for (let index = 0; index < parentScopes.length; index++) {\n let scopePattern = parentScopes[index];\n let scopeMustMatch = false;\n if (scopePattern === \">\") {\n if (index === parentScopes.length - 1) {\n return false;\n }\n scopePattern = parentScopes[++index];\n scopeMustMatch = true;\n }\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n break;\n }\n if (scopeMustMatch) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n if (!scopePath) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n return true;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === \".\";\n}\nvar StyleAttributes = class {\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n};\nfunction parseTheme(source) {\n if (!source) {\n return [];\n }\n if (!source.settings || !Array.isArray(source.settings)) {\n return [];\n }\n let settings = source.settings;\n let result = [], resultLen = 0;\n for (let i = 0, len = settings.length; i < len; i++) {\n let entry = settings[i];\n if (!entry.settings) {\n continue;\n }\n let scopes;\n if (typeof entry.scope === \"string\") {\n let _scope = entry.scope;\n _scope = _scope.replace(/^[,]+/, \"\");\n _scope = _scope.replace(/[,]+$/, \"\");\n scopes = _scope.split(\",\");\n } else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n } else {\n scopes = [\"\"];\n }\n let fontStyle = -1 /* NotSet */;\n if (typeof entry.settings.fontStyle === \"string\") {\n fontStyle = 0 /* None */;\n let segments = entry.settings.fontStyle.split(\" \");\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n let segment = segments[j];\n switch (segment) {\n case \"italic\":\n fontStyle = fontStyle | 1 /* Italic */;\n break;\n case \"bold\":\n fontStyle = fontStyle | 2 /* Bold */;\n break;\n case \"underline\":\n fontStyle = fontStyle | 4 /* Underline */;\n break;\n case \"strikethrough\":\n fontStyle = fontStyle | 8 /* Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.settings.foreground === \"string\" && isValidHexColor(entry.settings.foreground)) {\n foreground = entry.settings.foreground;\n }\n let background = null;\n if (typeof entry.settings.background === \"string\" && isValidHexColor(entry.settings.background)) {\n background = entry.settings.background;\n }\n for (let j = 0, lenJ = scopes.length; j < lenJ; j++) {\n let _scope = scopes[j].trim();\n let segments = _scope.split(\" \");\n let scope = segments[segments.length - 1];\n let parentScopes = null;\n if (segments.length > 1) {\n parentScopes = segments.slice(0, segments.length - 1);\n parentScopes.reverse();\n }\n result[resultLen++] = new ParsedThemeRule(\n scope,\n parentScopes,\n i,\n fontStyle,\n foreground,\n background\n );\n }\n }\n return result;\n}\nvar ParsedThemeRule = class {\n constructor(scope, parentScopes, index, fontStyle, foreground, background) {\n this.scope = scope;\n this.parentScopes = parentScopes;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n};\nvar FontStyle = /* @__PURE__ */ ((FontStyle2) => {\n FontStyle2[FontStyle2[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle2[FontStyle2[\"None\"] = 0] = \"None\";\n FontStyle2[FontStyle2[\"Italic\"] = 1] = \"Italic\";\n FontStyle2[FontStyle2[\"Bold\"] = 2] = \"Bold\";\n FontStyle2[FontStyle2[\"Underline\"] = 4] = \"Underline\";\n FontStyle2[FontStyle2[\"Strikethrough\"] = 8] = \"Strikethrough\";\n return FontStyle2;\n})(FontStyle || {});\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n parsedThemeRules.sort((a, b) => {\n let r = strcmp(a.scope, b.scope);\n if (r !== 0) {\n return r;\n }\n r = strArrCmp(a.parentScopes, b.parentScopes);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n let defaultFontStyle = 0 /* None */;\n let defaultForeground = \"#000000\";\n let defaultBackground = \"#ffffff\";\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === \"\") {\n let incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n let colorMap = new ColorMap(_colorMap);\n let defaults = new StyleAttributes(defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));\n let root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1 /* NotSet */, 0, 0), []);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n let rule = parsedThemeRules[i];\n root.insert(0, rule.scope, rule.parentScopes, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new Theme(colorMap, defaults, root);\n}\nvar ColorMap = class {\n _isFrozen;\n _lastColorId;\n _id2color;\n _color2id;\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = /* @__PURE__ */ Object.create(null);\n if (Array.isArray(_colorMap)) {\n this._isFrozen = true;\n for (let i = 0, len = _colorMap.length; i < len; i++) {\n this._color2id[_colorMap[i]] = i;\n this._id2color[i] = _colorMap[i];\n }\n } else {\n this._isFrozen = false;\n }\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n color = color.toUpperCase();\n let value = this._color2id[color];\n if (value) {\n return value;\n }\n if (this._isFrozen) {\n throw new Error(`Missing color in color map - ${color}`);\n }\n value = ++this._lastColorId;\n this._color2id[color] = value;\n this._id2color[value] = color;\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n};\nvar emptyParentScopes = Object.freeze([]);\nvar ThemeTrieElementRule = class _ThemeTrieElementRule {\n scopeDepth;\n parentScopes;\n fontStyle;\n foreground;\n background;\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes || emptyParentScopes;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n clone() {\n return new _ThemeTrieElementRule(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }\n static cloneArr(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = arr[i].clone();\n }\n return r;\n }\n acceptOverwrite(scopeDepth, fontStyle, foreground, background) {\n if (this.scopeDepth > scopeDepth) {\n console.log(\"how did this happen?\");\n } else {\n this.scopeDepth = scopeDepth;\n }\n if (fontStyle !== -1 /* NotSet */) {\n this.fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n this.foreground = foreground;\n }\n if (background !== 0) {\n this.background = background;\n }\n }\n};\nvar ThemeTrieElement = class _ThemeTrieElement {\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n _rulesWithParentScopes;\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth !== b.scopeDepth) {\n return b.scopeDepth - a.scopeDepth;\n }\n let aParentIndex = 0;\n let bParentIndex = 0;\n while (true) {\n if (a.parentScopes[aParentIndex] === \">\") {\n aParentIndex++;\n }\n if (b.parentScopes[bParentIndex] === \">\") {\n bParentIndex++;\n }\n if (aParentIndex >= a.parentScopes.length || bParentIndex >= b.parentScopes.length) {\n break;\n }\n const parentScopeLengthDiff = b.parentScopes[bParentIndex].length - a.parentScopes[aParentIndex].length;\n if (parentScopeLengthDiff !== 0) {\n return parentScopeLengthDiff;\n }\n aParentIndex++;\n bParentIndex++;\n }\n return b.parentScopes.length - a.parentScopes.length;\n }\n match(scope) {\n if (scope !== \"\") {\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n if (this._children.hasOwnProperty(head)) {\n return this._children[head].match(tail);\n }\n }\n const rules = this._rulesWithParentScopes.concat(this._mainRule);\n rules.sort(_ThemeTrieElement._cmpBySpecificity);\n return rules;\n }\n insert(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {\n if (scope === \"\") {\n this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);\n return;\n }\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n let child;\n if (this._children.hasOwnProperty(head)) {\n child = this._children[head];\n } else {\n child = new _ThemeTrieElement(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));\n this._children[head] = child;\n }\n child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);\n }\n _doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background) {\n if (parentScopes === null) {\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n for (let i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {\n let rule = this._rulesWithParentScopes[i];\n if (strArrCmp(rule.parentScopes, parentScopes) === 0) {\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n if (fontStyle === -1 /* NotSet */) {\n fontStyle = this._mainRule.fontStyle;\n }\n if (foreground === 0) {\n foreground = this._mainRule.foreground;\n }\n if (background === 0) {\n background = this._mainRule.background;\n }\n this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));\n }\n};\n\n// src/encodedTokenAttributes.ts\nvar EncodedTokenMetadata = class _EncodedTokenMetadata {\n static toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n static print(encodedTokenAttributes) {\n const languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n const tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n const fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n const foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n const background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n console.log({\n languageId,\n tokenType,\n fontStyle,\n foreground,\n background\n });\n }\n static getLanguageId(encodedTokenAttributes) {\n return (encodedTokenAttributes & 255 /* LANGUAGEID_MASK */) >>> 0 /* LANGUAGEID_OFFSET */;\n }\n static getTokenType(encodedTokenAttributes) {\n return (encodedTokenAttributes & 768 /* TOKEN_TYPE_MASK */) >>> 8 /* TOKEN_TYPE_OFFSET */;\n }\n static containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* BALANCED_BRACKETS_MASK */) !== 0;\n }\n static getFontStyle(encodedTokenAttributes) {\n return (encodedTokenAttributes & 30720 /* FONT_STYLE_MASK */) >>> 11 /* FONT_STYLE_OFFSET */;\n }\n static getForeground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 16744448 /* FOREGROUND_MASK */) >>> 15 /* FOREGROUND_OFFSET */;\n }\n static getBackground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 4278190080 /* BACKGROUND_MASK */) >>> 24 /* BACKGROUND_OFFSET */;\n }\n /**\n * Updates the fields in `metadata`.\n * A value of `0`, `NotSet` or `null` indicates that the corresponding field should be left as is.\n */\n static set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n let _tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = _EncodedTokenMetadata.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n let _foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n let _background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* NotSet */) {\n _fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n _foreground = foreground;\n }\n if (background !== 0) {\n _background = background;\n }\n return (_languageId << 0 /* LANGUAGEID_OFFSET */ | _tokenType << 8 /* TOKEN_TYPE_OFFSET */ | _containsBalancedBracketsBit << 10 /* BALANCED_BRACKETS_OFFSET */ | _fontStyle << 11 /* FONT_STYLE_OFFSET */ | _foreground << 15 /* FOREGROUND_OFFSET */ | _background << 24 /* BACKGROUND_OFFSET */) >>> 0;\n }\n};\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n// src/matcher.ts\nfunction createMatchers(selector, matchesName) {\n const results = [];\n const tokenizer = newTokenizer(selector);\n let token = tokenizer.next();\n while (token !== null) {\n let priority = 0;\n if (token.length === 2 && token.charAt(1) === \":\") {\n switch (token.charAt(0)) {\n case \"R\":\n priority = 1;\n break;\n case \"L\":\n priority = -1;\n break;\n default:\n console.log(`Unknown priority ${token} in scope selector`);\n }\n token = tokenizer.next();\n }\n let matcher = parseConjunction();\n results.push({ matcher, priority });\n if (token !== \",\") {\n break;\n }\n token = tokenizer.next();\n }\n return results;\n function parseOperand() {\n if (token === \"-\") {\n token = tokenizer.next();\n const expressionToNegate = parseOperand();\n return (matcherInput) => !!expressionToNegate && !expressionToNegate(matcherInput);\n }\n if (token === \"(\") {\n token = tokenizer.next();\n const expressionInParents = parseInnerExpression();\n if (token === \")\") {\n token = tokenizer.next();\n }\n return expressionInParents;\n }\n if (isIdentifier(token)) {\n const identifiers = [];\n do {\n identifiers.push(token);\n token = tokenizer.next();\n } while (isIdentifier(token));\n return (matcherInput) => matchesName(identifiers, matcherInput);\n }\n return null;\n }\n function parseConjunction() {\n const matchers = [];\n let matcher = parseOperand();\n while (matcher) {\n matchers.push(matcher);\n matcher = parseOperand();\n }\n return (matcherInput) => matchers.every((matcher2) => matcher2(matcherInput));\n }\n function parseInnerExpression() {\n const matchers = [];\n let matcher = parseConjunction();\n while (matcher) {\n matchers.push(matcher);\n if (token === \"|\" || token === \",\") {\n do {\n token = tokenizer.next();\n } while (token === \"|\" || token === \",\");\n } else {\n break;\n }\n matcher = parseConjunction();\n }\n return (matcherInput) => matchers.some((matcher2) => matcher2(matcherInput));\n }\n}\nfunction isIdentifier(token) {\n return !!token && !!token.match(/[\\w\\.:]+/);\n}\nfunction newTokenizer(input) {\n let regex = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g;\n let match = regex.exec(input);\n return {\n next: () => {\n if (!match) {\n return null;\n }\n const res = match[0];\n match = regex.exec(input);\n return res;\n }\n };\n}\n\n// src/onigLib.ts\nvar FindOption = /* @__PURE__ */ ((FindOption2) => {\n FindOption2[FindOption2[\"None\"] = 0] = \"None\";\n FindOption2[FindOption2[\"NotBeginString\"] = 1] = \"NotBeginString\";\n FindOption2[FindOption2[\"NotEndString\"] = 2] = \"NotEndString\";\n FindOption2[FindOption2[\"NotBeginPosition\"] = 4] = \"NotBeginPosition\";\n FindOption2[FindOption2[\"DebugCall\"] = 8] = \"DebugCall\";\n return FindOption2;\n})(FindOption || {});\nfunction disposeOnigString(str) {\n if (typeof str.dispose === \"function\") {\n str.dispose();\n }\n}\n\n// src/grammar/grammarDependencies.ts\nvar TopLevelRuleReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n};\nvar TopLevelRepositoryRuleReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n};\nvar ExternalReferenceCollector = class {\n _references = [];\n _seenReferenceKeys = /* @__PURE__ */ new Set();\n get references() {\n return this._references;\n }\n visitedRule = /* @__PURE__ */ new Set();\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n};\nvar ScopeDependencyProcessor = class {\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n seenFullScopeRequests = /* @__PURE__ */ new Set();\n seenPartialScopeRequests = /* @__PURE__ */ new Set();\n Q;\n processQueue() {\n const q = this.Q;\n this.Q = [];\n const deps = new ExternalReferenceCollector();\n for (const dep of q) {\n collectReferencesOfReference(dep, this.initialScopeName, this.repo, deps);\n }\n for (const dep of deps.references) {\n if (dep instanceof TopLevelRuleReference) {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n } else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n continue;\n }\n this.seenPartialScopeRequests.add(dep.toKey());\n this.Q.push(dep);\n }\n }\n }\n};\nfunction collectReferencesOfReference(reference, baseGrammarScopeName, repo, result) {\n const selfGrammar = repo.lookup(reference.scopeName);\n if (!selfGrammar) {\n if (reference.scopeName === baseGrammarScopeName) {\n throw new Error(`No grammar provided for <${baseGrammarScopeName}>`);\n }\n return;\n }\n const baseGrammar = repo.lookup(baseGrammarScopeName);\n if (reference instanceof TopLevelRuleReference) {\n collectExternalReferencesInTopLevelRule({ baseGrammar, selfGrammar }, result);\n } else {\n collectExternalReferencesInTopLevelRepositoryRule(\n reference.ruleName,\n { baseGrammar, selfGrammar, repository: selfGrammar.repository },\n result\n );\n }\n const injections = repo.injections(reference.scopeName);\n if (injections) {\n for (const injection of injections) {\n result.add(new TopLevelRuleReference(injection));\n }\n }\n}\nfunction collectExternalReferencesInTopLevelRepositoryRule(ruleName, context, result) {\n if (context.repository && context.repository[ruleName]) {\n const rule = context.repository[ruleName];\n collectExternalReferencesInRules([rule], context, result);\n }\n}\nfunction collectExternalReferencesInTopLevelRule(context, result) {\n if (context.selfGrammar.patterns && Array.isArray(context.selfGrammar.patterns)) {\n collectExternalReferencesInRules(\n context.selfGrammar.patterns,\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(\n Object.values(context.selfGrammar.injections),\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n}\nfunction collectExternalReferencesInRules(rules, context, result) {\n for (const rule of rules) {\n if (result.visitedRule.has(rule)) {\n continue;\n }\n result.visitedRule.add(rule);\n const patternRepository = rule.repository ? mergeObjects({}, context.repository, rule.repository) : context.repository;\n if (Array.isArray(rule.patterns)) {\n collectExternalReferencesInRules(rule.patterns, { ...context, repository: patternRepository }, result);\n }\n const include = rule.include;\n if (!include) {\n continue;\n }\n const reference = parseInclude(include);\n switch (reference.kind) {\n case 0 /* Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName ? context.selfGrammar : reference.scopeName === context.baseGrammar.scopeName ? context.baseGrammar : void 0;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n } else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n } else {\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n } else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nvar BaseReference = class {\n kind = 0 /* Base */;\n};\nvar SelfReference = class {\n kind = 1 /* Self */;\n};\nvar RelativeReference = class {\n constructor(ruleName) {\n this.ruleName = ruleName;\n }\n kind = 2 /* RelativeReference */;\n};\nvar TopLevelReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n kind = 3 /* TopLevelReference */;\n};\nvar TopLevelRepositoryReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n kind = 4 /* TopLevelRepositoryReference */;\n};\nfunction parseInclude(include) {\n if (include === \"$base\") {\n return new BaseReference();\n } else if (include === \"$self\") {\n return new SelfReference();\n }\n const indexOfSharp = include.indexOf(\"#\");\n if (indexOfSharp === -1) {\n return new TopLevelReference(include);\n } else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n } else {\n const scopeName = include.substring(0, indexOfSharp);\n const ruleName = include.substring(indexOfSharp + 1);\n return new TopLevelRepositoryReference(scopeName, ruleName);\n }\n}\n\n// src/rule.ts\nvar HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nvar BACK_REFERENCING_END = /\\\\(\\d+)/g;\nvar ruleIdSymbol = Symbol(\"RuleId\");\nvar endRuleId = -1;\nvar whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nvar Rule = class {\n $location;\n id;\n _nameIsCapturing;\n _name;\n _contentNameIsCapturing;\n _contentName;\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : \"unknown\";\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n};\nvar CaptureRule = class extends Rule {\n retokenizeCapturedWithRuleId;\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n }\n collectPatterns(grammar, out) {\n throw new Error(\"Not supported!\");\n }\n compile(grammar, endRegexSource) {\n throw new Error(\"Not supported!\");\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n throw new Error(\"Not supported!\");\n }\n};\nvar MatchRule = class extends Rule {\n _match;\n captures;\n _cachedCompiledPatterns;\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar IncludeOnlyRule = class extends Rule {\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginEndRule = class extends Rule {\n _begin;\n beginCaptures;\n _end;\n endHasBackReferences;\n endCaptures;\n applyEndPatternLast;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : \"\\uFFFF\", -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n } else {\n this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n }\n if (this._end.hasBackReferences) {\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length() - 1, endRegexSource);\n } else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginWhileRule = class extends Rule {\n _begin;\n beginCaptures;\n whileCaptures;\n _while;\n whileHasBackReferences;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n _cachedCompiledWhilePatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : \"\\uFFFF\");\n }\n return this._cachedCompiledWhilePatterns;\n }\n};\nvar RuleFactory = class _RuleFactory {\n static createCaptureRule(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {\n return helper.registerRule((id) => {\n return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);\n });\n }\n static getCompiledRuleId(desc, helper, repository) {\n if (!desc.id) {\n helper.registerRule((id) => {\n desc.id = id;\n if (desc.match) {\n return new MatchRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.match,\n _RuleFactory._compileCaptures(desc.captures, helper, repository)\n );\n }\n if (typeof desc.begin === \"undefined\") {\n if (desc.repository) {\n repository = mergeObjects({}, repository, desc.repository);\n }\n let patterns = desc.patterns;\n if (typeof patterns === \"undefined\" && desc.include) {\n patterns = [{ include: desc.include }];\n }\n return new IncludeOnlyRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n _RuleFactory._compilePatterns(patterns, helper, repository)\n );\n }\n if (desc.while) {\n return new BeginWhileRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.while,\n _RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository),\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n }\n return new BeginEndRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.end,\n _RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository),\n desc.applyEndPatternLast,\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n let maximumCaptureId = 0;\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n if (numericCaptureId > maximumCaptureId) {\n maximumCaptureId = numericCaptureId;\n }\n }\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n let retokenizeCapturedWithRuleId = 0;\n if (captures[captureId].patterns) {\n retokenizeCapturedWithRuleId = _RuleFactory.getCompiledRuleId(captures[captureId], helper, repository);\n }\n r[numericCaptureId] = _RuleFactory.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);\n }\n }\n return r;\n }\n static _compilePatterns(patterns, helper, repository) {\n let r = [];\n if (patterns) {\n for (let i = 0, len = patterns.length; i < len; i++) {\n const pattern = patterns[i];\n let ruleId = -1;\n if (pattern.include) {\n const reference = parseInclude(pattern.include);\n switch (reference.kind) {\n case 0 /* Base */:\n case 1 /* Self */:\n ruleId = _RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* RelativeReference */:\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n } else {\n }\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* TopLevelRepositoryReference */ ? reference.ruleName : null;\n const externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);\n if (externalGrammar) {\n if (externalGrammarInclude) {\n let externalIncludedRule = externalGrammar.repository[externalGrammarInclude];\n if (externalIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);\n } else {\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n } else {\n }\n break;\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(pattern, helper, repository);\n }\n if (ruleId !== -1) {\n const rule = helper.getRule(ruleId);\n let skipRule = false;\n if (rule instanceof IncludeOnlyRule || rule instanceof BeginEndRule || rule instanceof BeginWhileRule) {\n if (rule.hasMissingPatterns && rule.patterns.length === 0) {\n skipRule = true;\n }\n }\n if (skipRule) {\n continue;\n }\n r.push(ruleId);\n }\n }\n }\n return {\n patterns: r,\n hasMissingPatterns: (patterns ? patterns.length : 0) !== r.length\n };\n }\n};\nvar RegExpSource = class _RegExpSource {\n source;\n ruleId;\n hasAnchor;\n hasBackReferences;\n _anchorCache;\n constructor(regExpSource, ruleId) {\n if (regExpSource && typeof regExpSource === \"string\") {\n const len = regExpSource.length;\n let lastPushedPos = 0;\n let output = [];\n let hasAnchor = false;\n for (let pos = 0; pos < len; pos++) {\n const ch = regExpSource.charAt(pos);\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n const nextCh = regExpSource.charAt(pos + 1);\n if (nextCh === \"z\") {\n output.push(regExpSource.substring(lastPushedPos, pos));\n output.push(\"$(?!\\\\n)(?<!\\\\n)\");\n lastPushedPos = pos + 2;\n } else if (nextCh === \"A\" || nextCh === \"G\") {\n hasAnchor = true;\n }\n pos++;\n }\n }\n }\n this.hasAnchor = hasAnchor;\n if (lastPushedPos === 0) {\n this.source = regExpSource;\n } else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join(\"\");\n }\n } else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n } else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n if (typeof this.source === \"string\") {\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n } else {\n this.hasBackReferences = false;\n }\n }\n clone() {\n return new _RegExpSource(this.source, this.ruleId);\n }\n setSource(newSource) {\n if (this.source === newSource) {\n return;\n }\n this.source = newSource;\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n }\n resolveBackReferences(lineText, captureIndices) {\n if (typeof this.source !== \"string\") {\n throw new Error(\"This method should only be called if the source is a string\");\n }\n let capturedValues = captureIndices.map((capture) => {\n return lineText.substring(capture.start, capture.end);\n });\n BACK_REFERENCING_END.lastIndex = 0;\n return this.source.replace(BACK_REFERENCING_END, (match, g1) => {\n return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || \"\");\n });\n }\n _buildAnchorCache() {\n if (typeof this.source !== \"string\") {\n throw new Error(\"This method should only be called if the source is a string\");\n }\n let A0_G0_result = [];\n let A0_G1_result = [];\n let A1_G0_result = [];\n let A1_G1_result = [];\n let pos, len, ch, nextCh;\n for (pos = 0, len = this.source.length; pos < len; pos++) {\n ch = this.source.charAt(pos);\n A0_G0_result[pos] = ch;\n A0_G1_result[pos] = ch;\n A1_G0_result[pos] = ch;\n A1_G1_result[pos] = ch;\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n nextCh = this.source.charAt(pos + 1);\n if (nextCh === \"A\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"\\uFFFF\";\n A1_G0_result[pos + 1] = \"A\";\n A1_G1_result[pos + 1] = \"A\";\n } else if (nextCh === \"G\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"G\";\n A1_G0_result[pos + 1] = \"\\uFFFF\";\n A1_G1_result[pos + 1] = \"G\";\n } else {\n A0_G0_result[pos + 1] = nextCh;\n A0_G1_result[pos + 1] = nextCh;\n A1_G0_result[pos + 1] = nextCh;\n A1_G1_result[pos + 1] = nextCh;\n }\n pos++;\n }\n }\n }\n return {\n A0_G0: A0_G0_result.join(\"\"),\n A0_G1: A0_G1_result.join(\"\"),\n A1_G0: A1_G0_result.join(\"\"),\n A1_G1: A1_G1_result.join(\"\")\n };\n }\n resolveAnchors(allowA, allowG) {\n if (!this.hasAnchor || !this._anchorCache || typeof this.source !== \"string\") {\n return this.source;\n }\n if (allowA) {\n if (allowG) {\n return this._anchorCache.A1_G1;\n } else {\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n } else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n};\nvar RegExpSourceList = class {\n _items;\n _hasAnchors;\n _cached;\n _anchorCache;\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n this._disposeCaches();\n this._items[index].setSource(newSource);\n }\n }\n compile(onigLib) {\n if (!this._cached) {\n let regExps = this._items.map((e) => e.source);\n this._cached = new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n return this._cached;\n }\n compileAG(onigLib, allowA, allowG) {\n if (!this._hasAnchors) {\n return this.compile(onigLib);\n } else {\n if (allowA) {\n if (allowG) {\n if (!this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G1;\n } else {\n if (!this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n if (!this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G1;\n } else {\n if (!this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G0;\n }\n }\n }\n }\n _resolveAnchors(onigLib, allowA, allowG) {\n let regExps = this._items.map((e) => e.resolveAnchors(allowA, allowG));\n return new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n};\nvar CompiledRule = class {\n constructor(onigLib, regExps, rules) {\n this.regExps = regExps;\n this.rules = rules;\n this.scanner = onigLib.createOnigScanner(regExps);\n }\n scanner;\n dispose() {\n if (typeof this.scanner.dispose === \"function\") {\n this.scanner.dispose();\n }\n }\n toString() {\n const r = [];\n for (let i = 0, len = this.rules.length; i < len; i++) {\n r.push(\" - \" + this.rules[i] + \": \" + this.regExps[i]);\n }\n return r.join(\"\\n\");\n }\n findNextMatchSync(string, startPosition, options) {\n const result = this.scanner.findNextMatchSync(string, startPosition, options);\n if (!result) {\n return null;\n }\n return {\n ruleId: this.rules[result.index],\n captureIndices: result.captureIndices\n };\n }\n};\n\n// src/grammar/basicScopesAttributeProvider.ts\nvar BasicScopeAttributes = class {\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n};\nvar BasicScopeAttributesProvider = class _BasicScopeAttributesProvider {\n _defaultAttributes;\n _embeddedLanguagesMatcher;\n constructor(initialLanguageId, embeddedLanguages) {\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return _BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n static _NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n _getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(_BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* Comment */;\n case \"string\":\n return 2 /* String */;\n case \"regex\":\n return 3 /* RegEx */;\n case \"meta.embedded\":\n return 0 /* Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n static STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\n};\nvar ScopeMatcher = class {\n values;\n scopesRegExp;\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n } else {\n this.values = new Map(values);\n const escapedScopes = values.map(\n ([scopeName, value]) => escapeRegExpCharacters(scopeName)\n );\n escapedScopes.sort();\n escapedScopes.reverse();\n this.scopesRegExp = new RegExp(\n `^((${escapedScopes.join(\")|(\")}))($|\\\\.)`,\n \"\"\n );\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return void 0;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n return void 0;\n }\n return this.values.get(m[1]);\n }\n};\n\n// src/debug.ts\nvar DebugFlags = {\n InDebugMode: typeof process !== \"undefined\" && !!process.env[\"VSCODE_TEXTMATE_DEBUG\"]\n};\nvar UseOnigurumaFindOptions = false;\n\n// src/grammar/tokenizeString.ts\nvar TokenizeStringResult = class {\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n};\nfunction _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTokens, checkWhileConditions, timeLimit) {\n const lineLength = lineText.content.length;\n let STOP = false;\n let anchorPosition = -1;\n if (checkWhileConditions) {\n const whileCheckResult = _checkWhileConditions(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n lineTokens\n );\n stack = whileCheckResult.stack;\n linePos = whileCheckResult.linePos;\n isFirstLine = whileCheckResult.isFirstLine;\n anchorPosition = whileCheckResult.anchorPosition;\n }\n const startTime = Date.now();\n while (!STOP) {\n if (timeLimit !== 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime > timeLimit) {\n return new TokenizeStringResult(stack, true);\n }\n }\n scanNext();\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n if (false) {\n console.log(\"\");\n console.log(\n `@@scanNext ${linePos}: |${lineText.content.substr(linePos).replace(/\\n$/, \"\\\\n\")}|`\n );\n }\n const r = matchRuleOrInjections(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n anchorPosition\n );\n if (!r) {\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n const captureIndices = r.captureIndices;\n const matchedRuleId = r.matchedRuleId;\n const hasAdvanced = captureIndices && captureIndices.length > 0 ? captureIndices[0].end > linePos : false;\n if (matchedRuleId === endRuleId) {\n const poppedRule = stack.getRule(grammar);\n if (false) {\n console.log(\n \" popping \" + poppedRule.debugName + \" - \" + poppedRule.debugEndRegExp\n );\n }\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n poppedRule.endCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n if (false) {\n console.error(\n \"[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing\"\n );\n }\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(\n scopeName,\n grammar\n );\n stack = stack.push(\n matchedRuleId,\n linePos,\n anchorPosition,\n captureIndices[0].end === lineLength,\n null,\n nameScopesList,\n nameScopesList\n );\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\n \" pushing \" + pushedRule.debugName + \" - \" + pushedRule.debugBeginRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getEndWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\" pushing \" + pushedRule.debugName);\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getWhileWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const matchingRule = _rule;\n if (false) {\n console.log(\n \" matched \" + matchingRule.debugName + \" - \" + matchingRule.debugMatchRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n matchingRule.captures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n stack = stack.pop();\n if (!hasAdvanced) {\n if (false) {\n console.error(\n \"[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping\"\n );\n }\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\nfunction _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens) {\n let anchorPosition = stack.beginRuleCapturedEOL ? 0 : -1;\n const whileRules = [];\n for (let node = stack; node; node = node.pop()) {\n const nodeRule = node.getRule(grammar);\n if (nodeRule instanceof BeginWhileRule) {\n whileRules.push({\n rule: nodeRule,\n stack: node\n });\n }\n }\n for (let whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {\n const { ruleScanner, findOptions } = prepareRuleWhileSearch(whileRule.rule, grammar, whileRule.stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (false) {\n console.log(\" scanning for while rule\");\n console.log(ruleScanner.toString());\n }\n if (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n stack = whileRule.stack.pop();\n break;\n }\n if (r.captureIndices && r.captureIndices.length) {\n lineTokens.produce(whileRule.stack, r.captureIndices[0].start);\n handleCaptures(grammar, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);\n lineTokens.produce(whileRule.stack, r.captureIndices[0].end);\n anchorPosition = r.captureIndices[0].end;\n if (r.captureIndices[0].end > linePos) {\n linePos = r.captureIndices[0].end;\n isFirstLine = false;\n }\n }\n } else {\n if (false) {\n console.log(\" popping \" + whileRule.rule.debugName + \" - \" + whileRule.rule.debugWhileRegExp);\n }\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack, linePos, anchorPosition, isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n return matchResult;\n }\n if (!matchResult) {\n return injectionResult;\n }\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || injectionResult.priorityMatch && injectionResultScore === matchResultScore) {\n return injectionResult;\n }\n return matchResult;\n}\nfunction matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const rule = stack.getRule(grammar);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n return {\n captureIndices: r.captureIndices,\n matchedRuleId: r.ruleId\n };\n }\n return null;\n}\nfunction matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n let bestMatchRating = Number.MAX_VALUE;\n let bestMatchCaptureIndices = null;\n let bestMatchRuleId;\n let bestMatchResultPriority = 0;\n const scopes = stack.contentNameScopesList.getScopeNames();\n for (let i = 0, len = injections.length; i < len; i++) {\n const injection = injections[i];\n if (!injection.matcher(scopes)) {\n continue;\n }\n const rule = grammar.getRule(injection.ruleId);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, null, isFirstLine, linePos === anchorPosition);\n const matchResult = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (!matchResult) {\n continue;\n }\n if (false) {\n console.log(` matched injection: ${injection.debugSelector}`);\n console.log(ruleScanner.toString());\n }\n const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n break;\n }\n }\n if (bestMatchCaptureIndices) {\n return {\n priorityMatch: bestMatchResultPriority === -1,\n captureIndices: bestMatchCaptureIndices,\n matchedRuleId: bestMatchRuleId\n };\n }\n return null;\n}\nfunction prepareRuleSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compileWhile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction getFindOptions(allowA, allowG) {\n let options = 0 /* None */;\n if (!allowA) {\n options |= 1 /* NotBeginString */;\n }\n if (!allowG) {\n options |= 4 /* NotBeginPosition */;\n }\n return options;\n}\nfunction handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {\n if (captures.length === 0) {\n return;\n }\n const lineTextContent = lineText.content;\n const len = Math.min(captures.length, captureIndices.length);\n const localStack = [];\n const maxEnd = captureIndices[0].end;\n for (let i = 0; i < len; i++) {\n const captureRule = captures[i];\n if (captureRule === null) {\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n continue;\n }\n if (captureIndex.start > maxEnd) {\n break;\n }\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n if (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);\n } else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n const scopeName = captureRule.getName(lineTextContent, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n const contentName = captureRule.getContentName(lineTextContent, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n const stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, -1, false, null, nameScopesList, contentNameScopesList);\n const onigSubStr = grammar.createOnigString(lineTextContent.substring(0, captureIndex.end));\n _tokenizeString(\n grammar,\n onigSubStr,\n isFirstLine && captureIndex.start === 0,\n captureIndex.start,\n stackClone,\n lineTokens,\n false,\n /* no time limit */\n 0\n );\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n const base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;\n const captureRuleScopesList = base.pushAttributed(captureRuleScopeName, grammar);\n localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));\n }\n }\n while (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nvar LocalStackElement = class {\n scopes;\n endPos;\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n};\n\n// src/grammar/grammar.ts\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(\n scopeName,\n grammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n grammarRepository,\n onigLib\n );\n}\nfunction collectInjections(result, selector, rule, ruleFactoryHelper, grammar) {\n const matchers = createMatchers(selector, nameMatcher);\n const ruleId = RuleFactory.getCompiledRuleId(rule, ruleFactoryHelper, grammar.repository);\n for (const matcher of matchers) {\n result.push({\n debugSelector: selector,\n matcher: matcher.matcher,\n ruleId,\n grammar,\n priority: matcher.priority\n });\n }\n}\nfunction nameMatcher(identifers, scopes) {\n if (scopes.length < identifers.length) {\n return false;\n }\n let lastIndex = 0;\n return identifers.every((identifier) => {\n for (let i = lastIndex; i < scopes.length; i++) {\n if (scopesAreMatching(scopes[i], identifier)) {\n lastIndex = i + 1;\n return true;\n }\n }\n return false;\n });\n}\nfunction scopesAreMatching(thisScopeName, scopeName) {\n if (!thisScopeName) {\n return false;\n }\n if (thisScopeName === scopeName) {\n return true;\n }\n const len = scopeName.length;\n return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === \".\";\n}\nvar Grammar = class {\n constructor(_rootScopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, _onigLib) {\n this._rootScopeName = _rootScopeName;\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._onigLib = _onigLib;\n this._basicScopeAttributesProvider = new BasicScopeAttributesProvider(\n initialLanguage,\n embeddedLanguages\n );\n this._rootId = -1;\n this._lastRuleId = 0;\n this._ruleId2desc = [null];\n this._includedGrammars = {};\n this._grammarRepository = grammarRepository;\n this._grammar = initGrammar(grammar, null);\n this._injections = null;\n this._tokenTypeMatchers = [];\n if (tokenTypes) {\n for (const selector of Object.keys(tokenTypes)) {\n const matchers = createMatchers(selector, nameMatcher);\n for (const matcher of matchers) {\n this._tokenTypeMatchers.push({\n matcher: matcher.matcher,\n type: tokenTypes[selector]\n });\n }\n }\n }\n }\n _rootId;\n _lastRuleId;\n _ruleId2desc;\n _includedGrammars;\n _grammarRepository;\n _grammar;\n _injections;\n _basicScopeAttributesProvider;\n _tokenTypeMatchers;\n get themeProvider() {\n return this._grammarRepository;\n }\n dispose() {\n for (const rule of this._ruleId2desc) {\n if (rule) {\n rule.dispose();\n }\n }\n }\n createOnigScanner(sources) {\n return this._onigLib.createOnigScanner(sources);\n }\n createOnigString(sources) {\n return this._onigLib.createOnigString(sources);\n }\n getMetadataForScope(scope) {\n return this._basicScopeAttributesProvider.getBasicScopeAttributes(scope);\n }\n _collectInjections() {\n const grammarRepository = {\n lookup: (scopeName2) => {\n if (scopeName2 === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName2);\n },\n injections: (scopeName2) => {\n return this._grammarRepository.injections(scopeName2);\n }\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(\n result,\n expression,\n rawInjections[expression],\n this,\n grammar\n );\n }\n }\n const injectionScopeNames = this._grammarRepository.injections(scopeName);\n if (injectionScopeNames) {\n injectionScopeNames.forEach((injectionScopeName) => {\n const injectionGrammar = this.getExternalGrammar(injectionScopeName);\n if (injectionGrammar) {\n const selector = injectionGrammar.injectionSelector;\n if (selector) {\n collectInjections(\n result,\n selector,\n injectionGrammar,\n this,\n injectionGrammar\n );\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority);\n return result;\n }\n getInjections() {\n if (this._injections === null) {\n this._injections = this._collectInjections();\n }\n return this._injections;\n }\n registerRule(factory) {\n const id = ++this._lastRuleId;\n const result = factory(ruleIdFromNumber(id));\n this._ruleId2desc[id] = result;\n return result;\n }\n getRule(ruleId) {\n return this._ruleId2desc[ruleIdToNumber(ruleId)];\n }\n getExternalGrammar(scopeName, repository) {\n if (this._includedGrammars[scopeName]) {\n return this._includedGrammars[scopeName];\n } else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n this._includedGrammars[scopeName] = initGrammar(\n rawIncludedGrammar,\n repository && repository.$base\n );\n return this._includedGrammars[scopeName];\n }\n }\n return void 0;\n }\n tokenizeLine(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, false, timeLimit);\n return {\n tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n tokenizeLine2(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, true, timeLimit);\n return {\n tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n _tokenize(lineText, prevState, emitBinaryTokens, timeLimit) {\n if (this._rootId === -1) {\n this._rootId = RuleFactory.getCompiledRuleId(\n this._grammar.repository.$self,\n this,\n this._grammar.repository\n );\n this.getInjections();\n }\n let isFirstLine;\n if (!prevState || prevState === StateStackImpl.NULL) {\n isFirstLine = true;\n const rawDefaultMetadata = this._basicScopeAttributesProvider.getDefaultAttributes();\n const defaultStyle = this.themeProvider.getDefaults();\n const defaultMetadata = EncodedTokenMetadata.set(\n 0,\n rawDefaultMetadata.languageId,\n rawDefaultMetadata.tokenType,\n null,\n defaultStyle.fontStyle,\n defaultStyle.foregroundId,\n defaultStyle.backgroundId\n );\n const rootScopeName = this.getRule(this._rootId).getName(\n null,\n null\n );\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(\n rootScopeName,\n defaultMetadata,\n this\n );\n } else {\n scopeList = AttributedScopeStack.createRoot(\n \"unknown\",\n defaultMetadata\n );\n }\n prevState = new StateStackImpl(\n null,\n this._rootId,\n -1,\n -1,\n false,\n null,\n scopeList,\n scopeList\n );\n } else {\n isFirstLine = false;\n prevState.reset();\n }\n lineText = lineText + \"\\n\";\n const onigLineText = this.createOnigString(lineText);\n const lineLength = onigLineText.content.length;\n const lineTokens = new LineTokens(\n emitBinaryTokens,\n lineText,\n this._tokenTypeMatchers,\n this.balancedBracketSelectors\n );\n const r = _tokenizeString(\n this,\n onigLineText,\n isFirstLine,\n 0,\n prevState,\n lineTokens,\n true,\n timeLimit\n );\n disposeOnigString(onigLineText);\n return {\n lineLength,\n lineTokens,\n ruleStack: r.stack,\n stoppedEarly: r.stoppedEarly\n };\n }\n};\nfunction initGrammar(grammar, base) {\n grammar = clone(grammar);\n grammar.repository = grammar.repository || {};\n grammar.repository.$self = {\n $vscodeTextmateLocation: grammar.$vscodeTextmateLocation,\n patterns: grammar.patterns,\n name: grammar.scopeName\n };\n grammar.repository.$base = base || grammar.repository.$self;\n return grammar;\n}\nvar AttributedScopeStack = class _AttributedScopeStack {\n /**\n * Invariant:\n * ```\n * if (parent && !scopePath.extends(parent.scopePath)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, scopePath, tokenAttributes) {\n this.parent = parent;\n this.scopePath = scopePath;\n this.tokenAttributes = tokenAttributes;\n }\n static fromExtension(namesScopeList, contentNameScopesList) {\n let current = namesScopeList;\n let scopeNames = namesScopeList?.scopePath ?? null;\n for (const frame of contentNameScopesList) {\n scopeNames = ScopeStack.push(scopeNames, frame.scopeNames);\n current = new _AttributedScopeStack(current, scopeNames, frame.encodedTokenAttributes);\n }\n return current;\n }\n static createRoot(scopeName, tokenAttributes) {\n return new _AttributedScopeStack(null, new ScopeStack(null, scopeName), tokenAttributes);\n }\n static createRootAndLookUpScopeName(scopeName, tokenAttributes, grammar) {\n const rawRootMetadata = grammar.getMetadataForScope(scopeName);\n const scopePath = new ScopeStack(null, scopeName);\n const rootStyle = grammar.themeProvider.themeMatch(scopePath);\n const resolvedTokenAttributes = _AttributedScopeStack.mergeAttributes(\n tokenAttributes,\n rawRootMetadata,\n rootStyle\n );\n return new _AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() {\n return this.scopePath.scopeName;\n }\n toString() {\n return this.getScopeNames().join(\" \");\n }\n equals(other) {\n return _AttributedScopeStack.equals(this, other);\n }\n static equals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* NotSet */;\n let foreground = 0;\n let background = 0;\n if (styleAttributes !== null) {\n fontStyle = styleAttributes.fontStyle;\n foreground = styleAttributes.foregroundId;\n background = styleAttributes.backgroundId;\n }\n return EncodedTokenMetadata.set(\n existingTokenAttributes,\n basicScopeAttributes.languageId,\n basicScopeAttributes.tokenType,\n null,\n fontStyle,\n foreground,\n background\n );\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(\" \") === -1) {\n return _AttributedScopeStack._pushAttributed(this, scopePath, grammar);\n }\n const scopes = scopePath.split(/ /g);\n let result = this;\n for (const scope of scopes) {\n result = _AttributedScopeStack._pushAttributed(result, scope, grammar);\n }\n return result;\n }\n static _pushAttributed(target, scopeName, grammar) {\n const rawMetadata = grammar.getMetadataForScope(scopeName);\n const newPath = target.scopePath.push(scopeName);\n const scopeThemeMatchResult = grammar.themeProvider.themeMatch(newPath);\n const metadata = _AttributedScopeStack.mergeAttributes(\n target.tokenAttributes,\n rawMetadata,\n scopeThemeMatchResult\n );\n return new _AttributedScopeStack(target, newPath, metadata);\n }\n getScopeNames() {\n return this.scopePath.getSegments();\n }\n getExtensionIfDefined(base) {\n const result = [];\n let self = this;\n while (self && self !== base) {\n result.push({\n encodedTokenAttributes: self.tokenAttributes,\n scopeNames: self.scopePath.getExtensionIfDefined(self.parent?.scopePath ?? null)\n });\n self = self.parent;\n }\n return self === base ? result.reverse() : void 0;\n }\n};\nvar StateStackImpl = class _StateStackImpl {\n /**\n * Invariant:\n * ```\n * if (contentNameScopesList !== nameScopesList && contentNameScopesList?.parent !== nameScopesList) {\n * \tthrow new Error();\n * }\n * if (this.parent && !nameScopesList.extends(this.parent.contentNameScopesList)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n _stackElementBrand = void 0;\n // TODO remove me\n static NULL = new _StateStackImpl(\n null,\n 0,\n 0,\n 0,\n false,\n null,\n null,\n null\n );\n /**\n * The position on the current line where this state was pushed.\n * This is relevant only while tokenizing a line, to detect endless loops.\n * Its value is meaningless across lines.\n */\n _enterPos;\n /**\n * The captured anchor position when this stack element was pushed.\n * This is relevant only while tokenizing a line, to restore the anchor position when popping.\n * Its value is meaningless across lines.\n */\n _anchorPos;\n /**\n * The depth of the stack.\n */\n depth;\n equals(other) {\n if (other === null) {\n return false;\n }\n return _StateStackImpl._equals(this, other);\n }\n static _equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!this._structuralEquals(a, b)) {\n return false;\n }\n return AttributedScopeStack.equals(a.contentNameScopesList, b.contentNameScopesList);\n }\n /**\n * A structural equals check. Does not take into account `scopes`.\n */\n static _structuralEquals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.depth !== b.depth || a.ruleId !== b.ruleId || a.endRule !== b.endRule) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n clone() {\n return this;\n }\n static _reset(el) {\n while (el) {\n el._enterPos = -1;\n el._anchorPos = -1;\n el = el.parent;\n }\n }\n reset() {\n _StateStackImpl._reset(this);\n }\n pop() {\n return this.parent;\n }\n safePop() {\n if (this.parent) {\n return this.parent;\n }\n return this;\n }\n push(ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n return new _StateStackImpl(\n this,\n ruleId,\n enterPos,\n anchorPos,\n beginRuleCapturedEOL,\n endRule,\n nameScopesList,\n contentNameScopesList\n );\n }\n getEnterPos() {\n return this._enterPos;\n }\n getAnchorPos() {\n return this._anchorPos;\n }\n getRule(grammar) {\n return grammar.getRule(this.ruleId);\n }\n toString() {\n const r = [];\n this._writeString(r, 0);\n return \"[\" + r.join(\",\") + \"]\";\n }\n _writeString(res, outIndex) {\n if (this.parent) {\n outIndex = this.parent._writeString(res, outIndex);\n }\n res[outIndex++] = `(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`;\n return outIndex;\n }\n withContentNameScopesList(contentNameScopeStack) {\n if (this.contentNameScopesList === contentNameScopeStack) {\n return this;\n }\n return this.parent.push(\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n this.endRule,\n this.nameScopesList,\n contentNameScopeStack\n );\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new _StateStackImpl(\n this.parent,\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n endRule,\n this.nameScopesList,\n this.contentNameScopesList\n );\n }\n // Used to warn of endless loops\n hasSameRuleAs(other) {\n let el = this;\n while (el && el._enterPos === other._enterPos) {\n if (el.ruleId === other.ruleId) {\n return true;\n }\n el = el.parent;\n }\n return false;\n }\n toStateStackFrame() {\n return {\n ruleId: ruleIdToNumber(this.ruleId),\n beginRuleCapturedEOL: this.beginRuleCapturedEOL,\n endRule: this.endRule,\n nameScopesList: this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList ?? null) ?? [],\n contentNameScopesList: this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList) ?? []\n };\n }\n static pushFrame(self, frame) {\n const namesScopeList = AttributedScopeStack.fromExtension(self?.nameScopesList ?? null, frame.nameScopesList);\n return new _StateStackImpl(\n self,\n ruleIdFromNumber(frame.ruleId),\n frame.enterPos ?? -1,\n frame.anchorPos ?? -1,\n frame.beginRuleCapturedEOL,\n frame.endRule,\n namesScopeList,\n AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList)\n );\n }\n};\nvar BalancedBracketSelectors = class {\n balancedBracketScopes;\n unbalancedBracketScopes;\n allowAny = false;\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.balancedBracketScopes = balancedBracketScopes.flatMap(\n (selector) => {\n if (selector === \"*\") {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n }\n );\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap(\n (selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher)\n );\n }\n get matchesAlways() {\n return this.allowAny && this.unbalancedBracketScopes.length === 0;\n }\n get matchesNever() {\n return this.balancedBracketScopes.length === 0 && !this.allowAny;\n }\n match(scopes) {\n for (const excluder of this.unbalancedBracketScopes) {\n if (excluder(scopes)) {\n return false;\n }\n }\n for (const includer of this.balancedBracketScopes) {\n if (includer(scopes)) {\n return true;\n }\n }\n return this.allowAny;\n }\n};\nvar LineTokens = class {\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n if (false) {\n this._lineText = lineText;\n } else {\n this._lineText = null;\n }\n this._tokens = [];\n this._binaryTokens = [];\n this._lastTokenEndIndex = 0;\n }\n _emitBinaryTokens;\n /**\n * defined only if `false`.\n */\n _lineText;\n /**\n * used only if `_emitBinaryTokens` is false.\n */\n _tokens;\n /**\n * used only if `_emitBinaryTokens` is true.\n */\n _binaryTokens;\n _lastTokenEndIndex;\n _tokenTypeOverrides;\n produce(stack, endIndex) {\n this.produceFromScopes(stack.contentNameScopesList, endIndex);\n }\n produceFromScopes(scopesList, endIndex) {\n if (this._lastTokenEndIndex >= endIndex) {\n return;\n }\n if (this._emitBinaryTokens) {\n let metadata = scopesList?.tokenAttributes ?? 0;\n let containsBalancedBrackets = false;\n if (this.balancedBracketSelectors?.matchesAlways) {\n containsBalancedBrackets = true;\n }\n if (this._tokenTypeOverrides.length > 0 || this.balancedBracketSelectors && !this.balancedBracketSelectors.matchesAlways && !this.balancedBracketSelectors.matchesNever) {\n const scopes2 = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes2)) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n toOptionalTokenType(tokenType.type),\n null,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes2);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n 8 /* NotSet */,\n containsBalancedBrackets,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n this._lastTokenEndIndex = endIndex;\n return;\n }\n this._binaryTokens.push(this._lastTokenEndIndex);\n this._binaryTokens.push(metadata);\n this._lastTokenEndIndex = endIndex;\n return;\n }\n const scopes = scopesList?.getScopeNames() ?? [];\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes\n });\n this._lastTokenEndIndex = endIndex;\n }\n getResult(stack, lineLength) {\n if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {\n this._tokens.pop();\n }\n if (this._tokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._tokens[this._tokens.length - 1].startIndex = 0;\n }\n return this._tokens;\n }\n getBinaryResult(stack, lineLength) {\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {\n this._binaryTokens.pop();\n this._binaryTokens.pop();\n }\n if (this._binaryTokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._binaryTokens[this._binaryTokens.length - 2] = 0;\n }\n const result = new Uint32Array(this._binaryTokens.length);\n for (let i = 0, len = this._binaryTokens.length; i < len; i++) {\n result[i] = this._binaryTokens[i];\n }\n return result;\n }\n};\n\n// src/registry.ts\nvar SyncRegistry = class {\n constructor(theme, _onigLib) {\n this._onigLib = _onigLib;\n this._theme = theme;\n }\n _grammars = /* @__PURE__ */ new Map();\n _rawGrammars = /* @__PURE__ */ new Map();\n _injectionGrammars = /* @__PURE__ */ new Map();\n _theme;\n dispose() {\n for (const grammar of this._grammars.values()) {\n grammar.dispose();\n }\n }\n setTheme(theme) {\n this._theme = theme;\n }\n getColorMap() {\n return this._theme.getColorMap();\n }\n /**\n * Add `grammar` to registry and return a list of referenced scope names\n */\n addGrammar(grammar, injectionScopeNames) {\n this._rawGrammars.set(grammar.scopeName, grammar);\n if (injectionScopeNames) {\n this._injectionGrammars.set(grammar.scopeName, injectionScopeNames);\n }\n }\n /**\n * Lookup a raw grammar.\n */\n lookup(scopeName) {\n return this._rawGrammars.get(scopeName);\n }\n /**\n * Returns the injections for the given grammar\n */\n injections(targetScope) {\n return this._injectionGrammars.get(targetScope);\n }\n /**\n * Get the default theme settings\n */\n getDefaults() {\n return this._theme.getDefaults();\n }\n /**\n * Match a scope in the theme.\n */\n themeMatch(scopePath) {\n return this._theme.match(scopePath);\n }\n /**\n * Lookup a grammar.\n */\n grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n if (!this._grammars.has(scopeName)) {\n let rawGrammar = this._rawGrammars.get(scopeName);\n if (!rawGrammar) {\n return null;\n }\n this._grammars.set(scopeName, createGrammar(\n scopeName,\n rawGrammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n this,\n this._onigLib\n ));\n }\n return this._grammars.get(scopeName);\n }\n};\n\n// src/index.ts\nvar Registry = class {\n _options;\n _syncRegistry;\n _ensureGrammarCache;\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(\n Theme.createFromRawTheme(options.theme, options.colorMap),\n options.onigLib\n );\n this._ensureGrammarCache = /* @__PURE__ */ new Map();\n }\n dispose() {\n this._syncRegistry.dispose();\n }\n /**\n * Change the theme. Once called, no previous `ruleStack` should be used anymore.\n */\n setTheme(theme, colorMap) {\n this._syncRegistry.setTheme(Theme.createFromRawTheme(theme, colorMap));\n }\n /**\n * Returns a lookup array for color ids.\n */\n getColorMap() {\n return this._syncRegistry.getColorMap();\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithEmbeddedLanguages(initialScopeName, initialLanguage, embeddedLanguages) {\n return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithConfiguration(initialScopeName, initialLanguage, configuration) {\n return this._loadGrammar(\n initialScopeName,\n initialLanguage,\n configuration.embeddedLanguages,\n configuration.tokenTypes,\n new BalancedBracketSelectors(\n configuration.balancedBracketSelectors || [],\n configuration.unbalancedBracketSelectors || []\n )\n );\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n */\n loadGrammar(initialScopeName) {\n return this._loadGrammar(initialScopeName, 0, null, null, null);\n }\n _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(\n initialScopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._doLoadSingleGrammar(scopeName);\n this._ensureGrammarCache.set(scopeName, true);\n }\n }\n _doLoadSingleGrammar(scopeName) {\n const grammar = this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : void 0;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return this._grammarForScopeName(rawGrammar.scopeName, initialLanguage, embeddedLanguages);\n }\n /**\n * Get the grammar for `scopeName`. The grammar must first be created via `loadGrammar` or `addGrammar`.\n */\n _grammarForScopeName(scopeName, initialLanguage = 0, embeddedLanguages = null, tokenTypes = null, balancedBracketSelectors = null) {\n return this._syncRegistry.grammarForScopeName(\n scopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n};\nvar INITIAL = StateStackImpl.NULL;\nexport {\n EncodedTokenMetadata,\n FindOption,\n FontStyle,\n INITIAL,\n Registry,\n Theme,\n disposeOnigString\n};\n","import { ShikiError as ShikiError$1 } from '@shikijs/types';\nexport * from '@shikijs/types';\nimport { FontStyle, INITIAL, EncodedTokenMetadata, Registry as Registry$1, Theme } from '@shikijs/vscode-textmate';\nimport { toHtml } from 'hast-util-to-html';\n\nfunction resolveColorReplacements(theme, options) {\n const replacements = typeof theme === \"string\" ? {} : { ...theme.colorReplacements };\n const themeName = typeof theme === \"string\" ? theme : theme.name;\n for (const [key, value] of Object.entries(options?.colorReplacements || {})) {\n if (typeof value === \"string\")\n replacements[key] = value;\n else if (key === themeName)\n Object.assign(replacements, value);\n }\n return replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n if (!color)\n return color;\n return replacements?.[color?.toLowerCase()] || color;\n}\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\nasync function normalizeGetter(p) {\n return Promise.resolve(typeof p === \"function\" ? p() : p).then((r) => r.default || r);\n}\nfunction isPlainLang(lang) {\n return !lang || [\"plaintext\", \"txt\", \"text\", \"plain\"].includes(lang);\n}\nfunction isSpecialLang(lang) {\n return lang === \"ansi\" || isPlainLang(lang);\n}\nfunction isNoneTheme(theme) {\n return theme === \"none\";\n}\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\n\nfunction addClassToHast(node, className) {\n if (!className)\n return node;\n node.properties ||= {};\n node.properties.class ||= [];\n if (typeof node.properties.class === \"string\")\n node.properties.class = node.properties.class.split(/\\s+/g);\n if (!Array.isArray(node.properties.class))\n node.properties.class = [];\n const targets = Array.isArray(className) ? className : className.split(/\\s+/g);\n for (const c of targets) {\n if (c && !node.properties.class.includes(c))\n node.properties.class.push(c);\n }\n return node;\n}\n\nfunction splitLines(code, preserveEnding = false) {\n if (code.length === 0) {\n return [[\"\", 0]];\n }\n const parts = code.split(/(\\r?\\n)/g);\n let index = 0;\n const lines = [];\n for (let i = 0; i < parts.length; i += 2) {\n const line = preserveEnding ? parts[i] + (parts[i + 1] || \"\") : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\nfunction createPositionConverter(code) {\n const lines = splitLines(code, true).map(([line]) => line);\n function indexToPos(index) {\n if (index === code.length) {\n return {\n line: lines.length - 1,\n character: lines[lines.length - 1].length\n };\n }\n let character = index;\n let line = 0;\n for (const lineText of lines) {\n if (character < lineText.length)\n break;\n character -= lineText.length;\n line++;\n }\n return { line, character };\n }\n function posToIndex(line, character) {\n let index = 0;\n for (let i = 0; i < line; i++)\n index += lines[i].length;\n index += character;\n return index;\n }\n return {\n lines,\n indexToPos,\n posToIndex\n };\n}\nfunction guessEmbeddedLanguages(code, _lang, highlighter) {\n const langs = /* @__PURE__ */ new Set();\n for (const match of code.matchAll(/:?lang=[\"']([^\"']+)[\"']/g)) {\n const lang = match[1].toLowerCase().trim();\n if (lang)\n langs.add(lang);\n }\n for (const match of code.matchAll(/(?:```|~~~)([\\w-]+)/g)) {\n const lang = match[1].toLowerCase().trim();\n if (lang)\n langs.add(lang);\n }\n for (const match of code.matchAll(/\\\\begin\\{([\\w-]+)\\}/g)) {\n const lang = match[1].toLowerCase().trim();\n if (lang)\n langs.add(lang);\n }\n for (const match of code.matchAll(/<script\\s+(?:type|lang)=[\"']([^\"']+)[\"']/gi)) {\n const fullType = match[1].toLowerCase().trim();\n const lang = fullType.includes(\"/\") ? fullType.split(\"/\").pop() : fullType;\n if (lang)\n langs.add(lang);\n }\n if (!highlighter)\n return Array.from(langs);\n const bundle = highlighter.getBundledLanguages();\n return Array.from(langs).filter((l) => l && bundle[l]);\n}\n\nconst DEFAULT_COLOR_LIGHT_DARK = \"light-dark()\";\nconst COLOR_KEYS = [\"color\", \"background-color\"];\n\nfunction splitToken(token, offsets) {\n let lastOffset = 0;\n const tokens = [];\n for (const offset of offsets) {\n if (offset > lastOffset) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset, offset),\n offset: token.offset + lastOffset\n });\n }\n lastOffset = offset;\n }\n if (lastOffset < token.content.length) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset),\n offset: token.offset + lastOffset\n });\n }\n return tokens;\n}\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array.from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints)).sort((a, b) => a - b);\n if (!sorted.length)\n return tokens;\n return tokens.map((line) => {\n return line.flatMap((token) => {\n const breakpointsInToken = sorted.filter((i) => token.offset < i && i < token.offset + token.content.length).map((i) => i - token.offset).sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\nfunction flatTokenVariants(merged, variantsOrder, cssVariablePrefix, defaultColor, colorsRendering = \"css-vars\") {\n const token = {\n content: merged.content,\n explanation: merged.explanation,\n offset: merged.offset\n };\n const styles = variantsOrder.map((t) => getTokenStyleObject(merged.variants[t]));\n const styleKeys = new Set(styles.flatMap((t) => Object.keys(t)));\n const mergedStyles = {};\n const varKey = (idx, key) => {\n const keyName = key === \"color\" ? \"\" : key === \"background-color\" ? \"-bg\" : `-${key}`;\n return cssVariablePrefix + variantsOrder[idx] + (key === \"color\" ? \"\" : keyName);\n };\n styles.forEach((cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || \"inherit\";\n if (idx === 0 && defaultColor && COLOR_KEYS.includes(key)) {\n if (defaultColor === DEFAULT_COLOR_LIGHT_DARK && styles.length > 1) {\n const lightIndex = variantsOrder.findIndex((t) => t === \"light\");\n const darkIndex = variantsOrder.findIndex((t) => t === \"dark\");\n if (lightIndex === -1 || darkIndex === -1)\n throw new ShikiError$1('When using `defaultColor: \"light-dark()\"`, you must provide both `light` and `dark` themes');\n const lightValue = styles[lightIndex][key] || \"inherit\";\n const darkValue = styles[darkIndex][key] || \"inherit\";\n mergedStyles[key] = `light-dark(${lightValue}, ${darkValue})`;\n if (colorsRendering === \"css-vars\")\n mergedStyles[varKey(idx, key)] = value;\n } else {\n mergedStyles[key] = value;\n }\n } else {\n if (colorsRendering === \"css-vars\")\n mergedStyles[varKey(idx, key)] = value;\n }\n }\n });\n token.htmlStyle = mergedStyles;\n return token;\n}\nfunction getTokenStyleObject(token) {\n const styles = {};\n if (token.color)\n styles.color = token.color;\n if (token.bgColor)\n styles[\"background-color\"] = token.bgColor;\n if (token.fontStyle) {\n if (token.fontStyle & FontStyle.Italic)\n styles[\"font-style\"] = \"italic\";\n if (token.fontStyle & FontStyle.Bold)\n styles[\"font-weight\"] = \"bold\";\n const decorations = [];\n if (token.fontStyle & FontStyle.Underline)\n decorations.push(\"underline\");\n if (token.fontStyle & FontStyle.Strikethrough)\n decorations.push(\"line-through\");\n if (decorations.length)\n styles[\"text-decoration\"] = decorations.join(\" \");\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n if (typeof token === \"string\")\n return token;\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(\";\");\n}\n\nconst _grammarStateMap = /* @__PURE__ */ new WeakMap();\nfunction setLastGrammarStateToMap(keys, state) {\n _grammarStateMap.set(keys, state);\n}\nfunction getLastGrammarStateFromMap(keys) {\n return _grammarStateMap.get(keys);\n}\nclass GrammarState {\n /**\n * Theme to Stack mapping\n */\n _stacks = {};\n lang;\n get themes() {\n return Object.keys(this._stacks);\n }\n get theme() {\n return this.themes[0];\n }\n get _stack() {\n return this._stacks[this.theme];\n }\n /**\n * Static method to create a initial grammar state.\n */\n static initial(lang, themes) {\n return new GrammarState(\n Object.fromEntries(toArray(themes).map((theme) => [theme, INITIAL])),\n lang\n );\n }\n constructor(...args) {\n if (args.length === 2) {\n const [stacksMap, lang] = args;\n this.lang = lang;\n this._stacks = stacksMap;\n } else {\n const [stack, lang, theme] = args;\n this.lang = lang;\n this._stacks = { [theme]: stack };\n }\n }\n /**\n * Get the internal stack object.\n * @internal\n */\n getInternalStack(theme = this.theme) {\n return this._stacks[theme];\n }\n getScopes(theme = this.theme) {\n return getScopes(this._stacks[theme]);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n themes: this.themes,\n scopes: this.getScopes()\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = /* @__PURE__ */ new Set();\n function pushScope(stack2) {\n if (visited.has(stack2))\n return;\n visited.add(stack2);\n const name = stack2?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack2.parent)\n pushScope(stack2.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state, theme) {\n if (!(state instanceof GrammarState))\n throw new ShikiError$1(\"Invalid grammar state\");\n return state.getInternalStack(theme);\n}\n\nfunction transformerDecorations() {\n const map = /* @__PURE__ */ new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n let normalizePosition = function(p) {\n if (typeof p === \"number\") {\n if (p < 0 || p > shiki.source.length)\n throw new ShikiError$1(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n return {\n ...converter.indexToPos(p),\n offset: p\n };\n } else {\n const line = converter.lines[p.line];\n if (line === void 0)\n throw new ShikiError$1(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n let character = p.character;\n if (character < 0)\n character = line.length + character;\n if (character < 0 || character > line.length)\n throw new ShikiError$1(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n return {\n ...p,\n character,\n offset: converter.posToIndex(p.line, character)\n };\n }\n };\n const converter = createPositionConverter(shiki.source);\n const decorations = (shiki.options.decorations || []).map((d) => ({\n ...d,\n start: normalizePosition(d.start),\n end: normalizePosition(d.end)\n }));\n verifyIntersections(decorations);\n map.set(shiki.meta, {\n decorations,\n converter,\n source: shiki.source\n });\n }\n return map.get(shiki.meta);\n }\n return {\n name: \"shiki:decorations\",\n tokens(tokens) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const breakpoints = ctx.decorations.flatMap((d) => [d.start.offset, d.end.offset]);\n const splitted = splitTokens(tokens, breakpoints);\n return splitted;\n },\n code(codeEl) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const lines = Array.from(codeEl.children).filter((i) => i.type === \"element\" && i.tagName === \"span\");\n if (lines.length !== ctx.converter.lines.length)\n throw new ShikiError$1(`Number of lines in code element (${lines.length}) does not match the number of lines in the source (${ctx.converter.lines.length}). Failed to apply decorations.`);\n function applyLineSection(line, start, end, decoration) {\n const lineEl = lines[line];\n let text = \"\";\n let startIndex = -1;\n let endIndex = -1;\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError$1(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError$1(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, \"line\");\n } else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === \"element\") {\n applyDecoration(children[0], decoration, \"token\");\n } else {\n const wrapper = {\n type: \"element\",\n tagName: \"span\",\n properties: {},\n children\n };\n applyDecoration(wrapper, decoration, \"wrapper\");\n lineEl.children.splice(startIndex, children.length, wrapper);\n }\n }\n function applyLine(line, decoration) {\n lines[line] = applyDecoration(lines[line], decoration, \"line\");\n }\n function applyDecoration(el, decoration, type) {\n const properties = decoration.properties || {};\n const transform = decoration.transform || ((i) => i);\n el.tagName = decoration.tagName || \"span\";\n el.properties = {\n ...el.properties,\n ...properties,\n class: el.properties.class\n };\n if (decoration.properties?.class)\n addClassToHast(el, decoration.properties.class);\n el = transform(el, type) || el;\n return el;\n }\n const lineApplies = [];\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.offset || a.end.offset - b.end.offset);\n for (const decoration of sorted) {\n const { start, end } = decoration;\n if (start.line === end.line) {\n applyLineSection(start.line, start.character, end.character, decoration);\n } else if (start.line < end.line) {\n applyLineSection(start.line, start.character, Number.POSITIVE_INFINITY, decoration);\n for (let i = start.line + 1; i < end.line; i++)\n lineApplies.unshift(() => applyLine(i, decoration));\n applyLineSection(end.line, 0, end.character, decoration);\n }\n }\n lineApplies.forEach((i) => i());\n }\n };\n}\nfunction verifyIntersections(items) {\n for (let i = 0; i < items.length; i++) {\n const foo = items[i];\n if (foo.start.offset > foo.end.offset)\n throw new ShikiError$1(`Invalid decoration range: ${JSON.stringify(foo.start)} - ${JSON.stringify(foo.end)}`);\n for (let j = i + 1; j < items.length; j++) {\n const bar = items[j];\n const isFooHasBarStart = foo.start.offset <= bar.start.offset && bar.start.offset < foo.end.offset;\n const isFooHasBarEnd = foo.start.offset < bar.end.offset && bar.end.offset <= foo.end.offset;\n const isBarHasFooStart = bar.start.offset <= foo.start.offset && foo.start.offset < bar.end.offset;\n const isBarHasFooEnd = bar.start.offset < foo.end.offset && foo.end.offset <= bar.end.offset;\n if (isFooHasBarStart || isFooHasBarEnd || isBarHasFooStart || isBarHasFooEnd) {\n if (isFooHasBarStart && isFooHasBarEnd)\n continue;\n if (isBarHasFooStart && isBarHasFooEnd)\n continue;\n if (isBarHasFooStart && foo.start.offset === foo.end.offset)\n continue;\n if (isFooHasBarEnd && bar.start.offset === bar.end.offset)\n continue;\n throw new ShikiError$1(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n}\nfunction stringify(el) {\n if (el.type === \"text\")\n return el.value;\n if (el.type === \"element\")\n return el.children.map(stringify).join(\"\");\n return \"\";\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations()\n];\nfunction getTransformers(options) {\n const transformers = sortTransformersByEnforcement(options.transformers || []);\n return [\n ...transformers.pre,\n ...transformers.normal,\n ...transformers.post,\n ...builtInTransformers\n ];\n}\nfunction sortTransformersByEnforcement(transformers) {\n const pre = [];\n const post = [];\n const normal = [];\n for (const transformer of transformers) {\n switch (transformer.enforce) {\n case \"pre\":\n pre.push(transformer);\n break;\n case \"post\":\n post.push(transformer);\n break;\n default:\n normal.push(transformer);\n }\n }\n return { pre, post, normal };\n}\n\n// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 8: \"hidden\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B\", position);\n if (nextEscape !== -1) {\n if (value[nextEscape + 1] === \"[\") {\n const nextClose = value.indexOf(\"m\", nextEscape);\n if (nextClose !== -1) {\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n }\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence) {\n const colorMode = sequence.shift();\n if (colorMode === \"2\") {\n const rgb = sequence.splice(0, 3).map((x) => Number.parseInt(x));\n if (rgb.length !== 3 || rgb.some((x) => Number.isNaN(x)))\n return;\n return {\n type: \"rgb\",\n rgb\n };\n } else if (colorMode === \"5\") {\n const index = sequence.shift();\n if (index) {\n return { type: \"table\", index: Number(index) };\n }\n }\n}\nfunction parseSequence(sequence) {\n const commands = [];\n while (sequence.length > 0) {\n const code = sequence.shift();\n if (!code)\n continue;\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n if (decoration === \"dim\") {\n commands.push({\n type: \"resetDecoration\",\n value: \"bold\"\n });\n }\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const color = parseColor(sequence);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const color = parseColor(sequence);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt === 53) {\n commands.push({\n type: \"setDecoration\",\n value: \"overline\"\n });\n } else if (codeInt === 55) {\n commands.push({\n type: \"resetDecoration\",\n value: \"overline\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\n\nconst defaultAnsiColors = {\n black: \"#000000\",\n red: \"#cd3131\",\n green: \"#0DBC79\",\n yellow: \"#E5E510\",\n blue: \"#2472C8\",\n magenta: \"#BC3FBC\",\n cyan: \"#11A8CD\",\n white: \"#E5E5E5\",\n brightBlack: \"#666666\",\n brightRed: \"#F14C4C\",\n brightGreen: \"#23D18B\",\n brightYellow: \"#F5F543\",\n brightBlue: \"#3B8EEA\",\n brightMagenta: \"#D670D6\",\n brightCyan: \"#29B8DB\",\n brightWhite: \"#FFFFFF\"\n};\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const ansiPalette = Object.fromEntries(\n namedColors.map((name) => {\n const key = `terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`;\n const themeColor = theme.colors?.[key];\n return [name, themeColor || defaultAnsiColors[name]];\n })\n );\n const colorPalette = createColorPalette(ansiPalette);\n const parser = createAnsiSequenceParser();\n return lines.map(\n (line) => parser.parse(line[0]).map((token) => {\n let color;\n let bgColor;\n if (token.decorations.has(\"reverse\")) {\n color = token.background ? colorPalette.value(token.background) : theme.bg;\n bgColor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n } else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : void 0;\n }\n color = applyColorReplacements(color, colorReplacements);\n bgColor = applyColorReplacements(bgColor, colorReplacements);\n if (token.decorations.has(\"dim\"))\n color = dimColor(color);\n let fontStyle = FontStyle.None;\n if (token.decorations.has(\"bold\"))\n fontStyle |= FontStyle.Bold;\n if (token.decorations.has(\"italic\"))\n fontStyle |= FontStyle.Italic;\n if (token.decorations.has(\"underline\"))\n fontStyle |= FontStyle.Underline;\n if (token.decorations.has(\"strikethrough\"))\n fontStyle |= FontStyle.Strikethrough;\n return {\n content: token.value,\n offset: line[1],\n // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle\n };\n })\n );\n}\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3,8})/i);\n if (hexMatch) {\n const hex = hexMatch[1];\n if (hex.length === 8) {\n const alpha = Math.round(Number.parseInt(hex.slice(6, 8), 16) / 2).toString(16).padStart(2, \"0\");\n return `#${hex.slice(0, 6)}${alpha}`;\n } else if (hex.length === 6) {\n return `#${hex}80`;\n } else if (hex.length === 4) {\n const r = hex[0];\n const g = hex[1];\n const b = hex[2];\n const a = hex[3];\n const alpha = Math.round(Number.parseInt(`${a}${a}`, 16) / 2).toString(16).padStart(2, \"0\");\n return `#${r}${r}${g}${g}${b}${b}${alpha}`;\n } else if (hex.length === 3) {\n const r = hex[0];\n const g = hex[1];\n const b = hex[2];\n return `#${r}${r}${g}${g}${b}${b}80`;\n }\n }\n const cssVarMatch = color.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);\n if (cssVarMatch)\n return `var(${cssVarMatch[1]}-dim)`;\n return color;\n}\n\nfunction codeToTokensBase(internal, code, options = {}) {\n const {\n theme: themeName = internal.getLoadedThemes()[0]\n } = options;\n const lang = internal.resolveLangAlias(options.lang || \"text\");\n if (isPlainLang(lang) || isNoneTheme(themeName))\n return splitLines(code).map((line) => [{ content: line[0], offset: line[1] }]);\n const { theme, colorMap } = internal.setTheme(themeName);\n if (lang === \"ansi\")\n return tokenizeAnsiWithTheme(theme, code, options);\n const _grammar = internal.getLanguage(options.lang || \"text\");\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError$1(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (!options.grammarState.themes.includes(theme.name)) {\n throw new ShikiError$1(`Grammar state themes \"${options.grammarState.themes}\" do not contain highlight theme \"${theme.name}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(...args) {\n if (args.length === 2) {\n return getLastGrammarStateFromMap(args[1]);\n }\n const [internal, code, options = {}] = args;\n const {\n lang = \"text\",\n theme: themeName = internal.getLoadedThemes()[0]\n } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError$1(\"Plain language does not have grammar state\");\n if (lang === \"ansi\")\n throw new ShikiError$1(\"ANSI language does not have grammar state\");\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(\n _tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack,\n _grammar.name,\n theme.name\n );\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const result = _tokenizeWithTheme(code, grammar, theme, colorMap, options);\n const grammarState = new GrammarState(\n result.stateStack,\n grammar.name,\n theme.name\n );\n setLastGrammarStateToMap(result.tokens, grammarState);\n return result.tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const {\n tokenizeMaxLineLength = 0,\n tokenizeTimeLimit = 500\n } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState ? getGrammarStack(options.grammarState, theme.name) ?? INITIAL : options.grammarContextCode != null ? _tokenizeWithTheme(\n options.grammarContextCode,\n grammar,\n theme,\n colorMap,\n {\n ...options,\n grammarState: void 0,\n grammarContextCode: void 0\n }\n ).stateStack : INITIAL;\n let actual = [];\n const final = [];\n for (let i = 0, len = lines.length; i < len; i++) {\n const [line, lineOffset] = lines[i];\n if (line === \"\") {\n actual = [];\n final.push([]);\n continue;\n }\n if (tokenizeMaxLineLength > 0 && line.length >= tokenizeMaxLineLength) {\n actual = [];\n final.push([{\n content: line,\n offset: lineOffset,\n color: \"\",\n fontStyle: 0\n }]);\n continue;\n }\n let resultWithScopes;\n let tokensWithScopes;\n let tokensWithScopesIndex;\n if (options.includeExplanation) {\n resultWithScopes = grammar.tokenizeLine(line, stateStack, tokenizeTimeLimit);\n tokensWithScopes = resultWithScopes.tokens;\n tokensWithScopesIndex = 0;\n }\n const result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n const tokensLength = result.tokens.length / 2;\n for (let j = 0; j < tokensLength; j++) {\n const startIndex = result.tokens[2 * j];\n const nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n if (startIndex === nextStartIndex)\n continue;\n const metadata = result.tokens[2 * j + 1];\n const color = applyColorReplacements(\n colorMap[EncodedTokenMetadata.getForeground(metadata)],\n colorReplacements\n );\n const fontStyle = EncodedTokenMetadata.getFontStyle(metadata);\n const token = {\n content: line.substring(startIndex, nextStartIndex),\n offset: lineOffset + startIndex,\n color,\n fontStyle\n };\n if (options.includeExplanation) {\n const themeSettingsSelectors = [];\n if (options.includeExplanation !== \"scopeName\") {\n for (const setting of theme.settings) {\n let selectors;\n switch (typeof setting.scope) {\n case \"string\":\n selectors = setting.scope.split(/,/).map((scope) => scope.trim());\n break;\n case \"object\":\n selectors = setting.scope;\n break;\n default:\n continue;\n }\n themeSettingsSelectors.push({\n settings: setting,\n selectors: selectors.map((selector) => selector.split(/ /))\n });\n }\n }\n token.explanation = [];\n let offset = 0;\n while (startIndex + offset < nextStartIndex) {\n const tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n const tokenWithScopesText = line.substring(\n tokenWithScopes.startIndex,\n tokenWithScopes.endIndex\n );\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: options.includeExplanation === \"scopeName\" ? explainThemeScopesNameOnly(\n tokenWithScopes.scopes\n ) : explainThemeScopesFull(\n themeSettingsSelectors,\n tokenWithScopes.scopes\n )\n });\n tokensWithScopesIndex += 1;\n }\n }\n actual.push(token);\n }\n final.push(actual);\n actual = [];\n stateStack = result.ruleStack;\n }\n return {\n tokens: final,\n stateStack\n };\n}\nfunction explainThemeScopesNameOnly(scopes) {\n return scopes.map((scope) => ({ scopeName: scope }));\n}\nfunction explainThemeScopesFull(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, scopes.slice(0, i))\n };\n }\n return result;\n}\nfunction matchesOne(selector, scope) {\n return selector === scope || scope.substring(0, selector.length) === selector && scope[selector.length] === \".\";\n}\nfunction matches(selectors, scope, parentScopes) {\n if (!matchesOne(selectors[selectors.length - 1], scope))\n return false;\n let selectorParentIndex = selectors.length - 2;\n let parentIndex = parentScopes.length - 1;\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex]))\n selectorParentIndex -= 1;\n parentIndex -= 1;\n }\n if (selectorParentIndex === -1)\n return true;\n return false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n const result = [];\n for (const { selectors, settings } of themeSettingsSelectors) {\n for (const selectorPieces of selectors) {\n if (matches(selectorPieces, scope, parentScopes)) {\n result.push(settings);\n break;\n }\n }\n }\n return result;\n}\n\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({ color: i[0], theme: i[1] }));\n const themedTokens = themes.map((t) => {\n const tokens2 = codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme\n });\n const state = getLastGrammarStateFromMap(tokens2);\n const theme = typeof t.theme === \"string\" ? t.theme : t.theme.name;\n return {\n tokens: tokens2,\n state,\n theme\n };\n });\n const tokens = syncThemesTokenization(\n ...themedTokens.map((i) => i.tokens)\n );\n const mergedTokens = tokens[0].map(\n (line, lineIdx) => line.map((_token, tokenIdx) => {\n const mergedToken = {\n content: _token.content,\n variants: {},\n offset: _token.offset\n };\n if (\"includeExplanation\" in options && options.includeExplanation) {\n mergedToken.explanation = _token.explanation;\n }\n tokens.forEach((t, themeIdx) => {\n const {\n content: _,\n explanation: __,\n offset: ___,\n ...styles\n } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n })\n );\n const mergedGrammarState = themedTokens[0].state ? new GrammarState(\n Object.fromEntries(themedTokens.map((s) => [s.theme, s.state?.getInternalStack(s.theme)])),\n themedTokens[0].state.lang\n ) : void 0;\n if (mergedGrammarState)\n setLastGrammarStateToMap(mergedTokens, mergedGrammarState);\n return mergedTokens;\n}\nfunction syncThemesTokenization(...themes) {\n const outThemes = themes.map(() => []);\n const count = themes.length;\n for (let i = 0; i < themes[0].length; i++) {\n const lines = themes.map((t) => t[i]);\n const outLines = outThemes.map(() => []);\n outThemes.forEach((t, i2) => t.push(outLines[i2]));\n const indexes = lines.map(() => 0);\n const current = lines.map((l) => l[0]);\n while (current.every((t) => t)) {\n const minLength = Math.min(...current.map((t) => t.content.length));\n for (let n = 0; n < count; n++) {\n const token = current[n];\n if (token.content.length === minLength) {\n outLines[n].push(token);\n indexes[n] += 1;\n current[n] = lines[n][indexes[n]];\n } else {\n outLines[n].push({\n ...token,\n content: token.content.slice(0, minLength)\n });\n current[n] = {\n ...token,\n content: token.content.slice(minLength),\n offset: token.offset + minLength\n };\n }\n }\n }\n }\n return outThemes;\n}\n\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n let grammarState;\n if (\"themes\" in options) {\n const {\n defaultColor = \"light\",\n cssVariablePrefix = \"--shiki-\",\n colorsRendering = \"css-vars\"\n } = options;\n const themes = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({ color: i[0], theme: i[1] })).sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError$1(\"`themes` option must not be empty\");\n const themeTokens = codeToTokensWithThemes(\n internal,\n code,\n options\n );\n grammarState = getLastGrammarStateFromMap(themeTokens);\n if (defaultColor && DEFAULT_COLOR_LIGHT_DARK !== defaultColor && !themes.find((t) => t.color === defaultColor))\n throw new ShikiError$1(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n const themeRegs = themes.map((t) => internal.getTheme(t.theme));\n const themesOrder = themes.map((t) => t.color);\n tokens = themeTokens.map((line) => line.map((token) => flatTokenVariants(token, themesOrder, cssVariablePrefix, defaultColor, colorsRendering)));\n if (grammarState)\n setLastGrammarStateToMap(tokens, grammarState);\n const themeColorReplacements = themes.map((t) => resolveColorReplacements(t.theme, options));\n fg = mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, \"fg\", colorsRendering);\n bg = mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, \"bg\", colorsRendering);\n themeName = `shiki-themes ${themeRegs.map((t) => t.name).join(\" \")}`;\n rootStyle = defaultColor ? void 0 : [fg, bg].join(\";\");\n } else if (\"theme\" in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(\n internal,\n code,\n options\n );\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n grammarState = getLastGrammarStateFromMap(tokens);\n } else {\n throw new ShikiError$1(\"Invalid options, either `theme` or `themes` must be provided\");\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n grammarState\n };\n}\nfunction mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, property, colorsRendering) {\n return themes.map((t, idx) => {\n const value = applyColorReplacements(themeRegs[idx][property], themeColorReplacements[idx]) || \"inherit\";\n const cssVar = `${cssVariablePrefix + t.color}${property === \"bg\" ? \"-bg\" : \"\"}:${value}`;\n if (idx === 0 && defaultColor) {\n if (defaultColor === DEFAULT_COLOR_LIGHT_DARK && themes.length > 1) {\n const lightIndex = themes.findIndex((t2) => t2.color === \"light\");\n const darkIndex = themes.findIndex((t2) => t2.color === \"dark\");\n if (lightIndex === -1 || darkIndex === -1)\n throw new ShikiError$1('When using `defaultColor: \"light-dark()\"`, you must provide both `light` and `dark` themes');\n const lightValue = applyColorReplacements(themeRegs[lightIndex][property], themeColorReplacements[lightIndex]) || \"inherit\";\n const darkValue = applyColorReplacements(themeRegs[darkIndex][property], themeColorReplacements[darkIndex]) || \"inherit\";\n return `light-dark(${lightValue}, ${darkValue});${cssVar}`;\n }\n return value;\n }\n if (colorsRendering === \"css-vars\") {\n return cssVar;\n }\n return null;\n }).filter((i) => !!i).join(\";\");\n}\n\nfunction codeToHast(internal, code, options, transformerContext = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options)\n}) {\n let input = code;\n for (const transformer of getTransformers(options))\n input = transformer.preprocess?.call(transformerContext, input, options) || input;\n let {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n grammarState\n } = codeToTokens(internal, input, options);\n const {\n mergeWhitespaces = true,\n mergeSameStyleTokens = false\n } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === \"never\")\n tokens = splitWhitespaceTokens(tokens);\n if (mergeSameStyleTokens) {\n tokens = mergeAdjacentStyledTokens(tokens);\n }\n const contextSource = {\n ...transformerContext,\n get source() {\n return input;\n }\n };\n for (const transformer of getTransformers(options))\n tokens = transformer.tokens?.call(contextSource, tokens) || tokens;\n return tokensToHast(\n tokens,\n {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle: options.rootStyle === false ? false : options.rootStyle ?? rootStyle\n },\n contextSource,\n grammarState\n );\n}\nfunction tokensToHast(tokens, options, transformerContext, grammarState = getLastGrammarStateFromMap(tokens)) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: \"root\",\n children: []\n };\n const {\n structure = \"classic\",\n tabindex = \"0\"\n } = options;\n const properties = {\n class: `shiki ${options.themeName || \"\"}`\n };\n if (options.rootStyle !== false) {\n if (options.rootStyle != null)\n properties.style = options.rootStyle;\n else\n properties.style = `background-color:${options.bg};color:${options.fg}`;\n }\n if (tabindex !== false && tabindex != null)\n properties.tabindex = tabindex.toString();\n for (const [key, value] of Object.entries(options.meta || {})) {\n if (!key.startsWith(\"_\"))\n properties[key] = value;\n }\n let preNode = {\n type: \"element\",\n tagName: \"pre\",\n properties,\n children: [],\n data: options.data\n };\n let codeNode = {\n type: \"element\",\n tagName: \"code\",\n properties: {},\n children: lines\n };\n const lineNodes = [];\n const context = {\n ...transformerContext,\n structure,\n addClassToHast,\n get source() {\n return transformerContext.source;\n },\n get tokens() {\n return tokens;\n },\n get options() {\n return options;\n },\n get root() {\n return root;\n },\n get pre() {\n return preNode;\n },\n get code() {\n return codeNode;\n },\n get lines() {\n return lineNodes;\n }\n };\n tokens.forEach((line, idx) => {\n if (idx) {\n if (structure === \"inline\")\n root.children.push({ type: \"element\", tagName: \"br\", properties: {}, children: [] });\n else if (structure === \"classic\")\n lines.push({ type: \"text\", value: \"\\n\" });\n }\n let lineNode = {\n type: \"element\",\n tagName: \"span\",\n properties: { class: \"line\" },\n children: []\n };\n let col = 0;\n for (const token of line) {\n let tokenNode = {\n type: \"element\",\n tagName: \"span\",\n properties: {\n ...token.htmlAttrs\n },\n children: [{ type: \"text\", value: token.content }]\n };\n const style = stringifyTokenStyle(token.htmlStyle || getTokenStyleObject(token));\n if (style)\n tokenNode.properties.style = style;\n for (const transformer of transformers)\n tokenNode = transformer?.span?.call(context, tokenNode, idx + 1, col, lineNode, token) || tokenNode;\n if (structure === \"inline\")\n root.children.push(tokenNode);\n else if (structure === \"classic\")\n lineNode.children.push(tokenNode);\n col += token.content.length;\n }\n if (structure === \"classic\") {\n for (const transformer of transformers)\n lineNode = transformer?.line?.call(context, lineNode, idx + 1) || lineNode;\n lineNodes.push(lineNode);\n lines.push(lineNode);\n } else if (structure === \"inline\") {\n lineNodes.push(lineNode);\n }\n });\n if (structure === \"classic\") {\n for (const transformer of transformers)\n codeNode = transformer?.code?.call(context, codeNode) || codeNode;\n preNode.children.push(codeNode);\n for (const transformer of transformers)\n preNode = transformer?.pre?.call(context, preNode) || preNode;\n root.children.push(preNode);\n } else if (structure === \"inline\") {\n const syntheticLines = [];\n let currentLine = {\n type: \"element\",\n tagName: \"span\",\n properties: { class: \"line\" },\n children: []\n };\n for (const child of root.children) {\n if (child.type === \"element\" && child.tagName === \"br\") {\n syntheticLines.push(currentLine);\n currentLine = {\n type: \"element\",\n tagName: \"span\",\n properties: { class: \"line\" },\n children: []\n };\n } else if (child.type === \"element\" || child.type === \"text\") {\n currentLine.children.push(child);\n }\n }\n syntheticLines.push(currentLine);\n const syntheticCode = {\n type: \"element\",\n tagName: \"code\",\n properties: {},\n children: syntheticLines\n };\n let transformedCode = syntheticCode;\n for (const transformer of transformers)\n transformedCode = transformer?.code?.call(context, transformedCode) || transformedCode;\n root.children = [];\n for (let i = 0; i < transformedCode.children.length; i++) {\n if (i > 0)\n root.children.push({ type: \"element\", tagName: \"br\", properties: {}, children: [] });\n const line = transformedCode.children[i];\n if (line.type === \"element\")\n root.children.push(...line.children);\n }\n }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n if (grammarState)\n setLastGrammarStateToMap(result, grammarState);\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = \"\";\n let firstOffset;\n line.forEach((token, idx) => {\n const isDecorated = token.fontStyle && (token.fontStyle & FontStyle.Underline || token.fontStyle & FontStyle.Strikethrough);\n const couldMerge = !isDecorated;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (firstOffset === void 0)\n firstOffset = token.offset;\n carryOnContent += token.content;\n } else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content\n });\n } else {\n newLine.push(\n {\n content: carryOnContent,\n offset: firstOffset\n },\n token\n );\n }\n firstOffset = void 0;\n carryOnContent = \"\";\n } else {\n newLine.push(token);\n }\n }\n });\n return newLine;\n });\n}\nfunction splitWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n return line.flatMap((token) => {\n if (token.content.match(/^\\s+$/))\n return token;\n const match = token.content.match(/^(\\s*)(.*?)(\\s*)$/);\n if (!match)\n return token;\n const [, leading, content, trailing] = match;\n if (!leading && !trailing)\n return token;\n const expanded = [{\n ...token,\n offset: token.offset + leading.length,\n content\n }];\n if (leading) {\n expanded.unshift({\n content: leading,\n offset: token.offset\n });\n }\n if (trailing) {\n expanded.push({\n content: trailing,\n offset: token.offset + leading.length + content.length\n });\n }\n return expanded;\n });\n });\n}\nfunction mergeAdjacentStyledTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n for (const token of line) {\n if (newLine.length === 0) {\n newLine.push({ ...token });\n continue;\n }\n const prevToken = newLine[newLine.length - 1];\n const prevStyle = stringifyTokenStyle(prevToken.htmlStyle || getTokenStyleObject(prevToken));\n const currentStyle = stringifyTokenStyle(token.htmlStyle || getTokenStyleObject(token));\n const isPrevDecorated = prevToken.fontStyle && (prevToken.fontStyle & FontStyle.Underline || prevToken.fontStyle & FontStyle.Strikethrough);\n const isDecorated = token.fontStyle && (token.fontStyle & FontStyle.Underline || token.fontStyle & FontStyle.Strikethrough);\n if (!isPrevDecorated && !isDecorated && prevStyle === currentStyle) {\n prevToken.content += token.content;\n } else {\n newLine.push({ ...token });\n }\n }\n return newLine;\n });\n}\n\nconst hastToHtml = toHtml;\nfunction codeToHtml(internal, code, options) {\n const context = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options)\n };\n let result = hastToHtml(codeToHast(internal, code, options, context));\n for (const transformer of getTransformers(options))\n result = transformer.postprocess?.call(context, result, options) || result;\n return result;\n}\n\nconst VSCODE_FALLBACK_EDITOR_FG = { light: \"#333333\", dark: \"#bbbbbb\" };\nconst VSCODE_FALLBACK_EDITOR_BG = { light: \"#fffffe\", dark: \"#1e1e1e\" };\nconst RESOLVED_KEY = \"__shiki_resolved\";\nfunction normalizeTheme(rawTheme) {\n if (rawTheme?.[RESOLVED_KEY])\n return rawTheme;\n const theme = {\n ...rawTheme\n };\n if (theme.tokenColors && !theme.settings) {\n theme.settings = theme.tokenColors;\n delete theme.tokenColors;\n }\n theme.type ||= \"dark\";\n theme.colorReplacements = { ...theme.colorReplacements };\n theme.settings ||= [];\n let { bg, fg } = theme;\n if (!bg || !fg) {\n const globalSetting = theme.settings ? theme.settings.find((s) => !s.name && !s.scope) : void 0;\n if (globalSetting?.settings?.foreground)\n fg = globalSetting.settings.foreground;\n if (globalSetting?.settings?.background)\n bg = globalSetting.settings.background;\n if (!fg && theme?.colors?.[\"editor.foreground\"])\n fg = theme.colors[\"editor.foreground\"];\n if (!bg && theme?.colors?.[\"editor.background\"])\n bg = theme.colors[\"editor.background\"];\n if (!fg)\n fg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark;\n if (!bg)\n bg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark;\n theme.fg = fg;\n theme.bg = bg;\n }\n if (!(theme.settings[0] && theme.settings[0].settings && !theme.settings[0].scope)) {\n theme.settings.unshift({\n settings: {\n foreground: theme.fg,\n background: theme.bg\n }\n });\n }\n let replacementCount = 0;\n const replacementMap = /* @__PURE__ */ new Map();\n function getReplacementColor(value) {\n if (replacementMap.has(value))\n return replacementMap.get(value);\n replacementCount += 1;\n const hex = `#${replacementCount.toString(16).padStart(8, \"0\").toLowerCase()}`;\n if (theme.colorReplacements?.[`#${hex}`])\n return getReplacementColor(value);\n replacementMap.set(value, hex);\n return hex;\n }\n theme.settings = theme.settings.map((setting) => {\n const replaceFg = setting.settings?.foreground && !setting.settings.foreground.startsWith(\"#\");\n const replaceBg = setting.settings?.background && !setting.settings.background.startsWith(\"#\");\n if (!replaceFg && !replaceBg)\n return setting;\n const clone = {\n ...setting,\n settings: {\n ...setting.settings\n }\n };\n if (replaceFg) {\n const replacement = getReplacementColor(setting.settings.foreground);\n theme.colorReplacements[replacement] = setting.settings.foreground;\n clone.settings.foreground = replacement;\n }\n if (replaceBg) {\n const replacement = getReplacementColor(setting.settings.background);\n theme.colorReplacements[replacement] = setting.settings.background;\n clone.settings.background = replacement;\n }\n return clone;\n });\n for (const key of Object.keys(theme.colors || {})) {\n if (key === \"editor.foreground\" || key === \"editor.background\" || key.startsWith(\"terminal.ansi\")) {\n if (!theme.colors[key]?.startsWith(\"#\")) {\n const replacement = getReplacementColor(theme.colors[key]);\n theme.colorReplacements[replacement] = theme.colors[key];\n theme.colors[key] = replacement;\n }\n }\n }\n Object.defineProperty(theme, RESOLVED_KEY, {\n enumerable: false,\n writable: false,\n value: true\n });\n return theme;\n}\n\nasync function resolveLangs(langs) {\n return Array.from(new Set((await Promise.all(\n langs.filter((l) => !isSpecialLang(l)).map(async (lang) => await normalizeGetter(lang).then((r) => Array.isArray(r) ? r : [r]))\n )).flat()));\n}\nasync function resolveThemes(themes) {\n const resolved = await Promise.all(\n themes.map(\n async (theme) => isSpecialTheme(theme) ? null : normalizeTheme(await normalizeGetter(theme))\n )\n );\n return resolved.filter((i) => !!i);\n}\n\nlet _emitDeprecation = 3;\nlet _emitError = false;\nfunction enableDeprecationWarnings(emitDeprecation = true, emitError = false) {\n _emitDeprecation = emitDeprecation;\n _emitError = emitError;\n}\nfunction warnDeprecated(message, version = 3) {\n if (!_emitDeprecation)\n return;\n if (typeof _emitDeprecation === \"number\" && version > _emitDeprecation)\n return;\n if (_emitError) {\n throw new Error(`[SHIKI DEPRECATE]: ${message}`);\n } else {\n console.trace(`[SHIKI DEPRECATE]: ${message}`);\n }\n}\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ShikiError\";\n }\n}\n\nfunction resolveLangAlias(name, alias) {\n if (!alias)\n return name;\n if (alias[name]) {\n const resolved = /* @__PURE__ */ new Set([name]);\n while (alias[name]) {\n name = alias[name];\n if (resolved.has(name))\n throw new ShikiError(`Circular alias \\`${Array.from(resolved).join(\" -> \")} -> ${name}\\``);\n resolved.add(name);\n }\n }\n return name;\n}\n\nclass Registry extends Registry$1 {\n constructor(_resolver, _themes, _langs, _alias = {}) {\n super(_resolver);\n this._resolver = _resolver;\n this._themes = _themes;\n this._langs = _langs;\n this._alias = _alias;\n this._themes.map((t) => this.loadTheme(t));\n this.loadLanguages(this._langs);\n }\n _resolvedThemes = /* @__PURE__ */ new Map();\n _resolvedGrammars = /* @__PURE__ */ new Map();\n _langMap = /* @__PURE__ */ new Map();\n _langGraph = /* @__PURE__ */ new Map();\n _textmateThemeCache = /* @__PURE__ */ new WeakMap();\n _loadedThemesCache = null;\n _loadedLanguagesCache = null;\n getTheme(theme) {\n if (typeof theme === \"string\")\n return this._resolvedThemes.get(theme);\n else\n return this.loadTheme(theme);\n }\n loadTheme(theme) {\n const _theme = normalizeTheme(theme);\n if (_theme.name) {\n this._resolvedThemes.set(_theme.name, _theme);\n this._loadedThemesCache = null;\n }\n return _theme;\n }\n getLoadedThemes() {\n if (!this._loadedThemesCache)\n this._loadedThemesCache = [...this._resolvedThemes.keys()];\n return this._loadedThemesCache;\n }\n // Override and re-implement this method to cache the textmate themes as `TextMateTheme.createFromRawTheme`\n // is expensive. Themes can switch often especially for dual-theme support.\n //\n // The parent class also accepts `colorMap` as the second parameter, but since we don't use that,\n // we omit here so it's easier to cache the themes.\n setTheme(theme) {\n let textmateTheme = this._textmateThemeCache.get(theme);\n if (!textmateTheme) {\n textmateTheme = Theme.createFromRawTheme(theme);\n this._textmateThemeCache.set(theme, textmateTheme);\n }\n this._syncRegistry.setTheme(textmateTheme);\n }\n getGrammar(name) {\n name = resolveLangAlias(name, this._alias);\n return this._resolvedGrammars.get(name);\n }\n loadLanguage(lang) {\n if (this.getGrammar(lang.name))\n return;\n const embeddedLazilyBy = new Set(\n [...this._langMap.values()].filter((i) => i.embeddedLangsLazy?.includes(lang.name))\n );\n this._resolver.addLanguage(lang);\n const grammarConfig = {\n balancedBracketSelectors: lang.balancedBracketSelectors || [\"*\"],\n unbalancedBracketSelectors: lang.unbalancedBracketSelectors || []\n };\n this._syncRegistry._rawGrammars.set(lang.scopeName, lang);\n const g = this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig);\n g.name = lang.name;\n this._resolvedGrammars.set(lang.name, g);\n if (lang.aliases) {\n lang.aliases.forEach((alias) => {\n this._alias[alias] = lang.name;\n });\n }\n this._loadedLanguagesCache = null;\n if (embeddedLazilyBy.size) {\n for (const e of embeddedLazilyBy) {\n this._resolvedGrammars.delete(e.name);\n this._loadedLanguagesCache = null;\n this._syncRegistry?._injectionGrammars?.delete(e.scopeName);\n this._syncRegistry?._grammars?.delete(e.scopeName);\n this.loadLanguage(this._langMap.get(e.name));\n }\n }\n }\n dispose() {\n super.dispose();\n this._resolvedThemes.clear();\n this._resolvedGrammars.clear();\n this._langMap.clear();\n this._langGraph.clear();\n this._loadedThemesCache = null;\n }\n loadLanguages(langs) {\n for (const lang of langs)\n this.resolveEmbeddedLanguages(lang);\n const langsGraphArray = Array.from(this._langGraph.entries());\n const missingLangs = langsGraphArray.filter(([_, lang]) => !lang);\n if (missingLangs.length) {\n const dependents = langsGraphArray.filter(([_, lang]) => {\n if (!lang)\n return false;\n const embedded = lang.embeddedLanguages || lang.embeddedLangs;\n return embedded?.some((l) => missingLangs.map(([name]) => name).includes(l));\n }).filter((lang) => !missingLangs.includes(lang));\n throw new ShikiError(`Missing languages ${missingLangs.map(([name]) => `\\`${name}\\``).join(\", \")}, required by ${dependents.map(([name]) => `\\`${name}\\``).join(\", \")}`);\n }\n for (const [_, lang] of langsGraphArray)\n this._resolver.addLanguage(lang);\n for (const [_, lang] of langsGraphArray)\n this.loadLanguage(lang);\n }\n getLoadedLanguages() {\n if (!this._loadedLanguagesCache) {\n this._loadedLanguagesCache = [\n .../* @__PURE__ */ new Set([...this._resolvedGrammars.keys(), ...Object.keys(this._alias)])\n ];\n }\n return this._loadedLanguagesCache;\n }\n resolveEmbeddedLanguages(lang) {\n this._langMap.set(lang.name, lang);\n this._langGraph.set(lang.name, lang);\n const embedded = lang.embeddedLanguages ?? lang.embeddedLangs;\n if (embedded) {\n for (const embeddedLang of embedded)\n this._langGraph.set(embeddedLang, this._langMap.get(embeddedLang));\n }\n }\n}\n\nclass Resolver {\n _langs = /* @__PURE__ */ new Map();\n _scopeToLang = /* @__PURE__ */ new Map();\n _injections = /* @__PURE__ */ new Map();\n _onigLib;\n constructor(engine, langs) {\n this._onigLib = {\n createOnigScanner: (patterns) => engine.createScanner(patterns),\n createOnigString: (s) => engine.createString(s)\n };\n langs.forEach((i) => this.addLanguage(i));\n }\n get onigLib() {\n return this._onigLib;\n }\n getLangRegistration(langIdOrAlias) {\n return this._langs.get(langIdOrAlias);\n }\n loadGrammar(scopeName) {\n return this._scopeToLang.get(scopeName);\n }\n addLanguage(l) {\n this._langs.set(l.name, l);\n if (l.aliases) {\n l.aliases.forEach((a) => {\n this._langs.set(a, l);\n });\n }\n this._scopeToLang.set(l.scopeName, l);\n if (l.injectTo) {\n l.injectTo.forEach((i) => {\n if (!this._injections.get(i))\n this._injections.set(i, []);\n this._injections.get(i).push(l.scopeName);\n });\n }\n }\n getInjections(scopeName) {\n const scopeParts = scopeName.split(\".\");\n let injections = [];\n for (let i = 1; i <= scopeParts.length; i++) {\n const subScopeName = scopeParts.slice(0, i).join(\".\");\n injections = [...injections, ...this._injections.get(subScopeName) || []];\n }\n return injections;\n }\n}\n\nlet instancesCount = 0;\nfunction createShikiInternalSync(options) {\n instancesCount += 1;\n if (options.warnings !== false && instancesCount >= 10 && instancesCount % 10 === 0)\n console.warn(`[Shiki] ${instancesCount} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \\`highlighter.dispose()\\` to release unused instances.`);\n let isDisposed = false;\n if (!options.engine)\n throw new ShikiError(\"`engine` option is required for synchronous mode\");\n const langs = (options.langs || []).flat(1);\n const themes = (options.themes || []).flat(1).map(normalizeTheme);\n const resolver = new Resolver(options.engine, langs);\n const _registry = new Registry(resolver, themes, langs, options.langAlias);\n let _lastTheme;\n function resolveLangAlias$1(name) {\n return resolveLangAlias(name, options.langAlias);\n }\n function getLanguage(name) {\n ensureNotDisposed();\n const _lang = _registry.getGrammar(typeof name === \"string\" ? name : name.name);\n if (!_lang)\n throw new ShikiError(`Language \\`${name}\\` not found, you may need to load it first`);\n return _lang;\n }\n function getTheme(name) {\n if (name === \"none\")\n return { bg: \"\", fg: \"\", name: \"none\", settings: [], type: \"dark\" };\n ensureNotDisposed();\n const _theme = _registry.getTheme(name);\n if (!_theme)\n throw new ShikiError(`Theme \\`${name}\\` not found, you may need to load it first`);\n return _theme;\n }\n function setTheme(name) {\n ensureNotDisposed();\n const theme = getTheme(name);\n if (_lastTheme !== name) {\n _registry.setTheme(theme);\n _lastTheme = name;\n }\n const colorMap = _registry.getColorMap();\n return {\n theme,\n colorMap\n };\n }\n function getLoadedThemes() {\n ensureNotDisposed();\n return _registry.getLoadedThemes();\n }\n function getLoadedLanguages() {\n ensureNotDisposed();\n return _registry.getLoadedLanguages();\n }\n function loadLanguageSync(...langs2) {\n ensureNotDisposed();\n _registry.loadLanguages(langs2.flat(1));\n }\n async function loadLanguage(...langs2) {\n return loadLanguageSync(await resolveLangs(langs2));\n }\n function loadThemeSync(...themes2) {\n ensureNotDisposed();\n for (const theme of themes2.flat(1)) {\n _registry.loadTheme(theme);\n }\n }\n async function loadTheme(...themes2) {\n ensureNotDisposed();\n return loadThemeSync(await resolveThemes(themes2));\n }\n function ensureNotDisposed() {\n if (isDisposed)\n throw new ShikiError(\"Shiki instance has been disposed\");\n }\n function dispose() {\n if (isDisposed)\n return;\n isDisposed = true;\n _registry.dispose();\n instancesCount -= 1;\n }\n return {\n setTheme,\n getTheme,\n getLanguage,\n getLoadedThemes,\n getLoadedLanguages,\n resolveLangAlias: resolveLangAlias$1,\n loadLanguage,\n loadLanguageSync,\n loadTheme,\n loadThemeSync,\n dispose,\n [Symbol.dispose]: dispose\n };\n}\n\nasync function createShikiInternal(options) {\n if (!options.engine) {\n warnDeprecated(\"`engine` option is required. Use `createOnigurumaEngine` or `createJavaScriptRegexEngine` to create an engine.\");\n }\n const [\n themes,\n langs,\n engine\n ] = await Promise.all([\n resolveThemes(options.themes || []),\n resolveLangs(options.langs || []),\n options.engine\n ]);\n return createShikiInternalSync({\n ...options,\n themes,\n langs,\n engine\n });\n}\n\nasync function createHighlighterCore(options) {\n const internal = await createShikiInternal(options);\n return {\n getLastGrammarState: (...args) => getLastGrammarState(internal, ...args),\n codeToTokensBase: (code, options2) => codeToTokensBase(internal, code, options2),\n codeToTokensWithThemes: (code, options2) => codeToTokensWithThemes(internal, code, options2),\n codeToTokens: (code, options2) => codeToTokens(internal, code, options2),\n codeToHast: (code, options2) => codeToHast(internal, code, options2),\n codeToHtml: (code, options2) => codeToHtml(internal, code, options2),\n getBundledLanguages: () => ({}),\n getBundledThemes: () => ({}),\n ...internal,\n getInternalContext: () => internal\n };\n}\nfunction createHighlighterCoreSync(options) {\n const internal = createShikiInternalSync(options);\n return {\n getLastGrammarState: (...args) => getLastGrammarState(internal, ...args),\n codeToTokensBase: (code, options2) => codeToTokensBase(internal, code, options2),\n codeToTokensWithThemes: (code, options2) => codeToTokensWithThemes(internal, code, options2),\n codeToTokens: (code, options2) => codeToTokens(internal, code, options2),\n codeToHast: (code, options2) => codeToHast(internal, code, options2),\n codeToHtml: (code, options2) => codeToHtml(internal, code, options2),\n getBundledLanguages: () => ({}),\n getBundledThemes: () => ({}),\n ...internal,\n getInternalContext: () => internal\n };\n}\nfunction makeSingletonHighlighterCore(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighterCore2(options) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || []\n });\n return _shiki;\n } else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...options.themes || []),\n s.loadLanguage(...options.langs || [])\n ]);\n return s;\n }\n }\n return getSingletonHighlighterCore2;\n}\nconst getSingletonHighlighterCore = /* @__PURE__ */ makeSingletonHighlighterCore(createHighlighterCore);\n\nfunction createBundledHighlighter(options) {\n const bundledLanguages = options.langs;\n const bundledThemes = options.themes;\n const engine = options.engine;\n async function createHighlighter(options2) {\n function resolveLang(lang) {\n if (typeof lang === \"string\") {\n lang = options2.langAlias?.[lang] || lang;\n if (isSpecialLang(lang))\n return [];\n const bundle = bundledLanguages[lang];\n if (!bundle)\n throw new ShikiError$1(`Language \\`${lang}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return lang;\n }\n function resolveTheme(theme) {\n if (isSpecialTheme(theme))\n return \"none\";\n if (typeof theme === \"string\") {\n const bundle = bundledThemes[theme];\n if (!bundle)\n throw new ShikiError$1(`Theme \\`${theme}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return theme;\n }\n const _themes = (options2.themes ?? []).map((i) => resolveTheme(i));\n const langs = (options2.langs ?? []).map((i) => resolveLang(i));\n const core = await createHighlighterCore({\n engine: options2.engine ?? engine(),\n ...options2,\n themes: _themes,\n langs\n });\n return {\n ...core,\n loadLanguage(...langs2) {\n return core.loadLanguage(...langs2.map(resolveLang));\n },\n loadTheme(...themes) {\n return core.loadTheme(...themes.map(resolveTheme));\n },\n getBundledLanguages() {\n return bundledLanguages;\n },\n getBundledThemes() {\n return bundledThemes;\n }\n };\n }\n return createHighlighter;\n}\nfunction makeSingletonHighlighter(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighter(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: [],\n langs: []\n });\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...options.themes || []),\n s.loadLanguage(...options.langs || [])\n ]);\n return s;\n } else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...options.themes || []),\n s.loadLanguage(...options.langs || [])\n ]);\n return s;\n }\n }\n return getSingletonHighlighter;\n}\nfunction createSingletonShorthands(createHighlighter, config) {\n const getSingletonHighlighter = makeSingletonHighlighter(createHighlighter);\n async function get(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: \"theme\" in options ? [options.theme] : Object.values(options.themes)\n });\n const langs = await config?.guessEmbeddedLanguages?.(code, options.lang, shiki);\n if (langs) {\n await shiki.loadLanguage(...langs);\n }\n return shiki;\n }\n return {\n getSingletonHighlighter(options) {\n return getSingletonHighlighter(options);\n },\n async codeToHtml(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToHtml(code, options);\n },\n async codeToHast(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToHast(code, options);\n },\n async codeToTokens(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToTokens(code, options);\n },\n async codeToTokensBase(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToTokensBase(code, options);\n },\n async codeToTokensWithThemes(code, options) {\n const shiki = await get(code, options);\n return shiki.codeToTokensWithThemes(code, options);\n },\n async getLastGrammarState(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme]\n });\n return shiki.getLastGrammarState(code, options);\n }\n };\n}\nconst createdBundledHighlighter = createBundledHighlighter;\n\nfunction createCssVariablesTheme(options = {}) {\n const {\n name = \"css-variables\",\n variablePrefix = \"--shiki-\",\n fontStyle = true\n } = options;\n const variable = (name2) => {\n if (options.variableDefaults?.[name2])\n return `var(${variablePrefix}${name2}, ${options.variableDefaults[name2]})`;\n return `var(${variablePrefix}${name2})`;\n };\n const theme = {\n name,\n type: \"dark\",\n colors: {\n \"editor.foreground\": variable(\"foreground\"),\n \"editor.background\": variable(\"background\"),\n \"terminal.ansiBlack\": variable(\"ansi-black\"),\n \"terminal.ansiRed\": variable(\"ansi-red\"),\n \"terminal.ansiGreen\": variable(\"ansi-green\"),\n \"terminal.ansiYellow\": variable(\"ansi-yellow\"),\n \"terminal.ansiBlue\": variable(\"ansi-blue\"),\n \"terminal.ansiMagenta\": variable(\"ansi-magenta\"),\n \"terminal.ansiCyan\": variable(\"ansi-cyan\"),\n \"terminal.ansiWhite\": variable(\"ansi-white\"),\n \"terminal.ansiBrightBlack\": variable(\"ansi-bright-black\"),\n \"terminal.ansiBrightRed\": variable(\"ansi-bright-red\"),\n \"terminal.ansiBrightGreen\": variable(\"ansi-bright-green\"),\n \"terminal.ansiBrightYellow\": variable(\"ansi-bright-yellow\"),\n \"terminal.ansiBrightBlue\": variable(\"ansi-bright-blue\"),\n \"terminal.ansiBrightMagenta\": variable(\"ansi-bright-magenta\"),\n \"terminal.ansiBrightCyan\": variable(\"ansi-bright-cyan\"),\n \"terminal.ansiBrightWhite\": variable(\"ansi-bright-white\")\n },\n tokenColors: [\n {\n scope: [\n \"keyword.operator.accessor\",\n \"meta.group.braces.round.function.arguments\",\n \"meta.template.expression\",\n \"markup.fenced_code meta.embedded.block\"\n ],\n settings: {\n foreground: variable(\"foreground\")\n }\n },\n {\n scope: \"emphasis\",\n settings: {\n fontStyle: \"italic\"\n }\n },\n {\n scope: [\"strong\", \"markup.heading.markdown\", \"markup.bold.markdown\"],\n settings: {\n fontStyle: \"bold\"\n }\n },\n {\n scope: [\"markup.italic.markdown\"],\n settings: {\n fontStyle: \"italic\"\n }\n },\n {\n scope: \"meta.link.inline.markdown\",\n settings: {\n fontStyle: \"underline\",\n foreground: variable(\"token-link\")\n }\n },\n {\n scope: [\"string\", \"markup.fenced_code\", \"markup.inline\"],\n settings: {\n foreground: variable(\"token-string\")\n }\n },\n {\n scope: [\"comment\", \"string.quoted.docstring.multi\"],\n settings: {\n foreground: variable(\"token-comment\")\n }\n },\n {\n scope: [\n \"constant.numeric\",\n \"constant.language\",\n \"constant.other.placeholder\",\n \"constant.character.format.placeholder\",\n \"variable.language.this\",\n \"variable.other.object\",\n \"variable.other.class\",\n \"variable.other.constant\",\n \"meta.property-name\",\n \"meta.property-value\",\n \"support\"\n ],\n settings: {\n foreground: variable(\"token-constant\")\n }\n },\n {\n scope: [\n \"keyword\",\n \"storage.modifier\",\n \"storage.type\",\n \"storage.control.clojure\",\n \"entity.name.function.clojure\",\n \"entity.name.tag.yaml\",\n \"support.function.node\",\n \"support.type.property-name.json\",\n \"punctuation.separator.key-value\",\n \"punctuation.definition.template-expression\"\n ],\n settings: {\n foreground: variable(\"token-keyword\")\n }\n },\n {\n scope: \"variable.parameter.function\",\n settings: {\n foreground: variable(\"token-parameter\")\n }\n },\n {\n scope: [\n \"support.function\",\n \"entity.name.type\",\n \"entity.other.inherited-class\",\n \"meta.function-call\",\n \"meta.instance.constructor\",\n \"entity.other.attribute-name\",\n \"entity.name.function\",\n \"constant.keyword.clojure\"\n ],\n settings: {\n foreground: variable(\"token-function\")\n }\n },\n {\n scope: [\n \"entity.name.tag\",\n \"string.quoted\",\n \"string.regexp\",\n \"string.interpolated\",\n \"string.template\",\n \"string.unquoted.plain.out.yaml\",\n \"keyword.other.template\"\n ],\n settings: {\n foreground: variable(\"token-string-expression\")\n }\n },\n {\n scope: [\n \"punctuation.definition.arguments\",\n \"punctuation.definition.dict\",\n \"punctuation.separator\",\n \"meta.function-call.arguments\"\n ],\n settings: {\n foreground: variable(\"token-punctuation\")\n }\n },\n {\n // [Custom] Markdown links\n scope: [\n \"markup.underline.link\",\n \"punctuation.definition.metadata.markdown\"\n ],\n settings: {\n foreground: variable(\"token-link\")\n }\n },\n {\n // [Custom] Markdown list\n scope: [\"beginning.punctuation.definition.list.markdown\"],\n settings: {\n foreground: variable(\"token-string\")\n }\n },\n {\n // [Custom] Markdown punctuation definition brackets\n scope: [\n \"punctuation.definition.string.begin.markdown\",\n \"punctuation.definition.string.end.markdown\",\n \"string.other.link.title.markdown\",\n \"string.other.link.description.markdown\"\n ],\n settings: {\n foreground: variable(\"token-keyword\")\n }\n },\n {\n // [Custom] Diff\n scope: [\n \"markup.inserted\",\n \"meta.diff.header.to-file\",\n \"punctuation.definition.inserted\"\n ],\n settings: {\n foreground: variable(\"token-inserted\")\n }\n },\n {\n scope: [\n \"markup.deleted\",\n \"meta.diff.header.from-file\",\n \"punctuation.definition.deleted\"\n ],\n settings: {\n foreground: variable(\"token-deleted\")\n }\n },\n {\n scope: [\n \"markup.changed\",\n \"punctuation.definition.changed\"\n ],\n settings: {\n foreground: variable(\"token-changed\")\n }\n }\n ]\n };\n if (!fontStyle) {\n theme.tokenColors = theme.tokenColors?.map((tokenColor) => {\n if (tokenColor.settings?.fontStyle)\n delete tokenColor.settings.fontStyle;\n return tokenColor;\n });\n }\n return theme;\n}\n\nexport { addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createBundledHighlighter, createCssVariablesTheme, createHighlighterCore, createHighlighterCoreSync, createPositionConverter, createShikiInternal, createShikiInternalSync, createSingletonShorthands, createdBundledHighlighter, enableDeprecationWarnings, flatTokenVariants, getSingletonHighlighterCore, getTokenStyleObject, guessEmbeddedLanguages, hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeGetter, normalizeTheme, resolveColorReplacements, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations, warnDeprecated };\n","const bundledLanguagesInfo = [\n {\n \"id\": \"abap\",\n \"name\": \"ABAP\",\n \"import\": (() => import('@shikijs/langs/abap'))\n },\n {\n \"id\": \"actionscript-3\",\n \"name\": \"ActionScript\",\n \"import\": (() => import('@shikijs/langs/actionscript-3'))\n },\n {\n \"id\": \"ada\",\n \"name\": \"Ada\",\n \"import\": (() => import('@shikijs/langs/ada'))\n },\n {\n \"id\": \"angular-html\",\n \"name\": \"Angular HTML\",\n \"import\": (() => import('@shikijs/langs/angular-html'))\n },\n {\n \"id\": \"angular-ts\",\n \"name\": \"Angular TypeScript\",\n \"import\": (() => import('@shikijs/langs/angular-ts'))\n },\n {\n \"id\": \"apache\",\n \"name\": \"Apache Conf\",\n \"import\": (() => import('@shikijs/langs/apache'))\n },\n {\n \"id\": \"apex\",\n \"name\": \"Apex\",\n \"import\": (() => import('@shikijs/langs/apex'))\n },\n {\n \"id\": \"apl\",\n \"name\": \"APL\",\n \"import\": (() => import('@shikijs/langs/apl'))\n },\n {\n \"id\": \"applescript\",\n \"name\": \"AppleScript\",\n \"import\": (() => import('@shikijs/langs/applescript'))\n },\n {\n \"id\": \"ara\",\n \"name\": \"Ara\",\n \"import\": (() => import('@shikijs/langs/ara'))\n },\n {\n \"id\": \"asciidoc\",\n \"name\": \"AsciiDoc\",\n \"aliases\": [\n \"adoc\"\n ],\n \"import\": (() => import('@shikijs/langs/asciidoc'))\n },\n {\n \"id\": \"asm\",\n \"name\": \"Assembly\",\n \"import\": (() => import('@shikijs/langs/asm'))\n },\n {\n \"id\": \"astro\",\n \"name\": \"Astro\",\n \"import\": (() => import('@shikijs/langs/astro'))\n },\n {\n \"id\": \"awk\",\n \"name\": \"AWK\",\n \"import\": (() => import('@shikijs/langs/awk'))\n },\n {\n \"id\": \"ballerina\",\n \"name\": \"Ballerina\",\n \"import\": (() => import('@shikijs/langs/ballerina'))\n },\n {\n \"id\": \"bat\",\n \"name\": \"Batch File\",\n \"aliases\": [\n \"batch\"\n ],\n \"import\": (() => import('@shikijs/langs/bat'))\n },\n {\n \"id\": \"beancount\",\n \"name\": \"Beancount\",\n \"import\": (() => import('@shikijs/langs/beancount'))\n },\n {\n \"id\": \"berry\",\n \"name\": \"Berry\",\n \"aliases\": [\n \"be\"\n ],\n \"import\": (() => import('@shikijs/langs/berry'))\n },\n {\n \"id\": \"bibtex\",\n \"name\": \"BibTeX\",\n \"import\": (() => import('@shikijs/langs/bibtex'))\n },\n {\n \"id\": \"bicep\",\n \"name\": \"Bicep\",\n \"import\": (() => import('@shikijs/langs/bicep'))\n },\n {\n \"id\": \"blade\",\n \"name\": \"Blade\",\n \"import\": (() => import('@shikijs/langs/blade'))\n },\n {\n \"id\": \"bsl\",\n \"name\": \"1C (Enterprise)\",\n \"aliases\": [\n \"1c\"\n ],\n \"import\": (() => import('@shikijs/langs/bsl'))\n },\n {\n \"id\": \"c\",\n \"name\": \"C\",\n \"import\": (() => import('@shikijs/langs/c'))\n },\n {\n \"id\": \"c3\",\n \"name\": \"C3\",\n \"import\": (() => import('@shikijs/langs/c3'))\n },\n {\n \"id\": \"cadence\",\n \"name\": \"Cadence\",\n \"aliases\": [\n \"cdc\"\n ],\n \"import\": (() => import('@shikijs/langs/cadence'))\n },\n {\n \"id\": \"cairo\",\n \"name\": \"Cairo\",\n \"import\": (() => import('@shikijs/langs/cairo'))\n },\n {\n \"id\": \"clarity\",\n \"name\": \"Clarity\",\n \"import\": (() => import('@shikijs/langs/clarity'))\n },\n {\n \"id\": \"clojure\",\n \"name\": \"Clojure\",\n \"aliases\": [\n \"clj\"\n ],\n \"import\": (() => import('@shikijs/langs/clojure'))\n },\n {\n \"id\": \"cmake\",\n \"name\": \"CMake\",\n \"import\": (() => import('@shikijs/langs/cmake'))\n },\n {\n \"id\": \"cobol\",\n \"name\": \"COBOL\",\n \"import\": (() => import('@shikijs/langs/cobol'))\n },\n {\n \"id\": \"codeowners\",\n \"name\": \"CODEOWNERS\",\n \"import\": (() => import('@shikijs/langs/codeowners'))\n },\n {\n \"id\": \"codeql\",\n \"name\": \"CodeQL\",\n \"aliases\": [\n \"ql\"\n ],\n \"import\": (() => import('@shikijs/langs/codeql'))\n },\n {\n \"id\": \"coffee\",\n \"name\": \"CoffeeScript\",\n \"aliases\": [\n \"coffeescript\"\n ],\n \"import\": (() => import('@shikijs/langs/coffee'))\n },\n {\n \"id\": \"common-lisp\",\n \"name\": \"Common Lisp\",\n \"aliases\": [\n \"lisp\"\n ],\n \"import\": (() => import('@shikijs/langs/common-lisp'))\n },\n {\n \"id\": \"coq\",\n \"name\": \"Coq\",\n \"import\": (() => import('@shikijs/langs/coq'))\n },\n {\n \"id\": \"cpp\",\n \"name\": \"C++\",\n \"aliases\": [\n \"c++\"\n ],\n \"import\": (() => import('@shikijs/langs/cpp'))\n },\n {\n \"id\": \"crystal\",\n \"name\": \"Crystal\",\n \"import\": (() => import('@shikijs/langs/crystal'))\n },\n {\n \"id\": \"csharp\",\n \"name\": \"C#\",\n \"aliases\": [\n \"c#\",\n \"cs\"\n ],\n \"import\": (() => import('@shikijs/langs/csharp'))\n },\n {\n \"id\": \"css\",\n \"name\": \"CSS\",\n \"import\": (() => import('@shikijs/langs/css'))\n },\n {\n \"id\": \"csv\",\n \"name\": \"CSV\",\n \"import\": (() => import('@shikijs/langs/csv'))\n },\n {\n \"id\": \"cue\",\n \"name\": \"CUE\",\n \"import\": (() => import('@shikijs/langs/cue'))\n },\n {\n \"id\": \"cypher\",\n \"name\": \"Cypher\",\n \"aliases\": [\n \"cql\"\n ],\n \"import\": (() => import('@shikijs/langs/cypher'))\n },\n {\n \"id\": \"d\",\n \"name\": \"D\",\n \"import\": (() => import('@shikijs/langs/d'))\n },\n {\n \"id\": \"dart\",\n \"name\": \"Dart\",\n \"import\": (() => import('@shikijs/langs/dart'))\n },\n {\n \"id\": \"dax\",\n \"name\": \"DAX\",\n \"import\": (() => import('@shikijs/langs/dax'))\n },\n {\n \"id\": \"desktop\",\n \"name\": \"Desktop\",\n \"import\": (() => import('@shikijs/langs/desktop'))\n },\n {\n \"id\": \"diff\",\n \"name\": \"Diff\",\n \"import\": (() => import('@shikijs/langs/diff'))\n },\n {\n \"id\": \"docker\",\n \"name\": \"Dockerfile\",\n \"aliases\": [\n \"dockerfile\"\n ],\n \"import\": (() => import('@shikijs/langs/docker'))\n },\n {\n \"id\": \"dotenv\",\n \"name\": \"dotEnv\",\n \"import\": (() => import('@shikijs/langs/dotenv'))\n },\n {\n \"id\": \"dream-maker\",\n \"name\": \"Dream Maker\",\n \"import\": (() => import('@shikijs/langs/dream-maker'))\n },\n {\n \"id\": \"edge\",\n \"name\": \"Edge\",\n \"import\": (() => import('@shikijs/langs/edge'))\n },\n {\n \"id\": \"elixir\",\n \"name\": \"Elixir\",\n \"import\": (() => import('@shikijs/langs/elixir'))\n },\n {\n \"id\": \"elm\",\n \"name\": \"Elm\",\n \"import\": (() => import('@shikijs/langs/elm'))\n },\n {\n \"id\": \"emacs-lisp\",\n \"name\": \"Emacs Lisp\",\n \"aliases\": [\n \"elisp\"\n ],\n \"import\": (() => import('@shikijs/langs/emacs-lisp'))\n },\n {\n \"id\": \"erb\",\n \"name\": \"ERB\",\n \"import\": (() => import('@shikijs/langs/erb'))\n },\n {\n \"id\": \"erlang\",\n \"name\": \"Erlang\",\n \"aliases\": [\n \"erl\"\n ],\n \"import\": (() => import('@shikijs/langs/erlang'))\n },\n {\n \"id\": \"fennel\",\n \"name\": \"Fennel\",\n \"import\": (() => import('@shikijs/langs/fennel'))\n },\n {\n \"id\": \"fish\",\n \"name\": \"Fish\",\n \"import\": (() => import('@shikijs/langs/fish'))\n },\n {\n \"id\": \"fluent\",\n \"name\": \"Fluent\",\n \"aliases\": [\n \"ftl\"\n ],\n \"import\": (() => import('@shikijs/langs/fluent'))\n },\n {\n \"id\": \"fortran-fixed-form\",\n \"name\": \"Fortran (Fixed Form)\",\n \"aliases\": [\n \"f\",\n \"for\",\n \"f77\"\n ],\n \"import\": (() => import('@shikijs/langs/fortran-fixed-form'))\n },\n {\n \"id\": \"fortran-free-form\",\n \"name\": \"Fortran (Free Form)\",\n \"aliases\": [\n \"f90\",\n \"f95\",\n \"f03\",\n \"f08\",\n \"f18\"\n ],\n \"import\": (() => import('@shikijs/langs/fortran-free-form'))\n },\n {\n \"id\": \"fsharp\",\n \"name\": \"F#\",\n \"aliases\": [\n \"f#\",\n \"fs\"\n ],\n \"import\": (() => import('@shikijs/langs/fsharp'))\n },\n {\n \"id\": \"gdresource\",\n \"name\": \"GDResource\",\n \"import\": (() => import('@shikijs/langs/gdresource'))\n },\n {\n \"id\": \"gdscript\",\n \"name\": \"GDScript\",\n \"import\": (() => import('@shikijs/langs/gdscript'))\n },\n {\n \"id\": \"gdshader\",\n \"name\": \"GDShader\",\n \"import\": (() => import('@shikijs/langs/gdshader'))\n },\n {\n \"id\": \"genie\",\n \"name\": \"Genie\",\n \"import\": (() => import('@shikijs/langs/genie'))\n },\n {\n \"id\": \"gherkin\",\n \"name\": \"Gherkin\",\n \"import\": (() => import('@shikijs/langs/gherkin'))\n },\n {\n \"id\": \"git-commit\",\n \"name\": \"Git Commit Message\",\n \"import\": (() => import('@shikijs/langs/git-commit'))\n },\n {\n \"id\": \"git-rebase\",\n \"name\": \"Git Rebase Message\",\n \"import\": (() => import('@shikijs/langs/git-rebase'))\n },\n {\n \"id\": \"gleam\",\n \"name\": \"Gleam\",\n \"import\": (() => import('@shikijs/langs/gleam'))\n },\n {\n \"id\": \"glimmer-js\",\n \"name\": \"Glimmer JS\",\n \"aliases\": [\n \"gjs\"\n ],\n \"import\": (() => import('@shikijs/langs/glimmer-js'))\n },\n {\n \"id\": \"glimmer-ts\",\n \"name\": \"Glimmer TS\",\n \"aliases\": [\n \"gts\"\n ],\n \"import\": (() => import('@shikijs/langs/glimmer-ts'))\n },\n {\n \"id\": \"glsl\",\n \"name\": \"GLSL\",\n \"import\": (() => import('@shikijs/langs/glsl'))\n },\n {\n \"id\": \"gn\",\n \"name\": \"GN\",\n \"import\": (() => import('@shikijs/langs/gn'))\n },\n {\n \"id\": \"gnuplot\",\n \"name\": \"Gnuplot\",\n \"import\": (() => import('@shikijs/langs/gnuplot'))\n },\n {\n \"id\": \"go\",\n \"name\": \"Go\",\n \"import\": (() => import('@shikijs/langs/go'))\n },\n {\n \"id\": \"graphql\",\n \"name\": \"GraphQL\",\n \"aliases\": [\n \"gql\"\n ],\n \"import\": (() => import('@shikijs/langs/graphql'))\n },\n {\n \"id\": \"groovy\",\n \"name\": \"Groovy\",\n \"import\": (() => import('@shikijs/langs/groovy'))\n },\n {\n \"id\": \"hack\",\n \"name\": \"Hack\",\n \"import\": (() => import('@shikijs/langs/hack'))\n },\n {\n \"id\": \"haml\",\n \"name\": \"Ruby Haml\",\n \"import\": (() => import('@shikijs/langs/haml'))\n },\n {\n \"id\": \"handlebars\",\n \"name\": \"Handlebars\",\n \"aliases\": [\n \"hbs\"\n ],\n \"import\": (() => import('@shikijs/langs/handlebars'))\n },\n {\n \"id\": \"haskell\",\n \"name\": \"Haskell\",\n \"aliases\": [\n \"hs\"\n ],\n \"import\": (() => import('@shikijs/langs/haskell'))\n },\n {\n \"id\": \"haxe\",\n \"name\": \"Haxe\",\n \"import\": (() => import('@shikijs/langs/haxe'))\n },\n {\n \"id\": \"hcl\",\n \"name\": \"HashiCorp HCL\",\n \"import\": (() => import('@shikijs/langs/hcl'))\n },\n {\n \"id\": \"hjson\",\n \"name\": \"Hjson\",\n \"import\": (() => import('@shikijs/langs/hjson'))\n },\n {\n \"id\": \"hlsl\",\n \"name\": \"HLSL\",\n \"import\": (() => import('@shikijs/langs/hlsl'))\n },\n {\n \"id\": \"html\",\n \"name\": \"HTML\",\n \"import\": (() => import('@shikijs/langs/html'))\n },\n {\n \"id\": \"html-derivative\",\n \"name\": \"HTML (Derivative)\",\n \"import\": (() => import('@shikijs/langs/html-derivative'))\n },\n {\n \"id\": \"http\",\n \"name\": \"HTTP\",\n \"import\": (() => import('@shikijs/langs/http'))\n },\n {\n \"id\": \"hurl\",\n \"name\": \"Hurl\",\n \"import\": (() => import('@shikijs/langs/hurl'))\n },\n {\n \"id\": \"hxml\",\n \"name\": \"HXML\",\n \"import\": (() => import('@shikijs/langs/hxml'))\n },\n {\n \"id\": \"hy\",\n \"name\": \"Hy\",\n \"import\": (() => import('@shikijs/langs/hy'))\n },\n {\n \"id\": \"imba\",\n \"name\": \"Imba\",\n \"import\": (() => import('@shikijs/langs/imba'))\n },\n {\n \"id\": \"ini\",\n \"name\": \"INI\",\n \"aliases\": [\n \"properties\"\n ],\n \"import\": (() => import('@shikijs/langs/ini'))\n },\n {\n \"id\": \"java\",\n \"name\": \"Java\",\n \"import\": (() => import('@shikijs/langs/java'))\n },\n {\n \"id\": \"javascript\",\n \"name\": \"JavaScript\",\n \"aliases\": [\n \"js\",\n \"cjs\",\n \"mjs\"\n ],\n \"import\": (() => import('@shikijs/langs/javascript'))\n },\n {\n \"id\": \"jinja\",\n \"name\": \"Jinja\",\n \"import\": (() => import('@shikijs/langs/jinja'))\n },\n {\n \"id\": \"jison\",\n \"name\": \"Jison\",\n \"import\": (() => import('@shikijs/langs/jison'))\n },\n {\n \"id\": \"json\",\n \"name\": \"JSON\",\n \"import\": (() => import('@shikijs/langs/json'))\n },\n {\n \"id\": \"json5\",\n \"name\": \"JSON5\",\n \"import\": (() => import('@shikijs/langs/json5'))\n },\n {\n \"id\": \"jsonc\",\n \"name\": \"JSON with Comments\",\n \"import\": (() => import('@shikijs/langs/jsonc'))\n },\n {\n \"id\": \"jsonl\",\n \"name\": \"JSON Lines\",\n \"import\": (() => import('@shikijs/langs/jsonl'))\n },\n {\n \"id\": \"jsonnet\",\n \"name\": \"Jsonnet\",\n \"import\": (() => import('@shikijs/langs/jsonnet'))\n },\n {\n \"id\": \"jssm\",\n \"name\": \"JSSM\",\n \"aliases\": [\n \"fsl\"\n ],\n \"import\": (() => import('@shikijs/langs/jssm'))\n },\n {\n \"id\": \"jsx\",\n \"name\": \"JSX\",\n \"import\": (() => import('@shikijs/langs/jsx'))\n },\n {\n \"id\": \"julia\",\n \"name\": \"Julia\",\n \"aliases\": [\n \"jl\"\n ],\n \"import\": (() => import('@shikijs/langs/julia'))\n },\n {\n \"id\": \"kdl\",\n \"name\": \"KDL\",\n \"import\": (() => import('@shikijs/langs/kdl'))\n },\n {\n \"id\": \"kotlin\",\n \"name\": \"Kotlin\",\n \"aliases\": [\n \"kt\",\n \"kts\"\n ],\n \"import\": (() => import('@shikijs/langs/kotlin'))\n },\n {\n \"id\": \"kusto\",\n \"name\": \"Kusto\",\n \"aliases\": [\n \"kql\"\n ],\n \"import\": (() => import('@shikijs/langs/kusto'))\n },\n {\n \"id\": \"latex\",\n \"name\": \"LaTeX\",\n \"import\": (() => import('@shikijs/langs/latex'))\n },\n {\n \"id\": \"lean\",\n \"name\": \"Lean 4\",\n \"aliases\": [\n \"lean4\"\n ],\n \"import\": (() => import('@shikijs/langs/lean'))\n },\n {\n \"id\": \"less\",\n \"name\": \"Less\",\n \"import\": (() => import('@shikijs/langs/less'))\n },\n {\n \"id\": \"liquid\",\n \"name\": \"Liquid\",\n \"import\": (() => import('@shikijs/langs/liquid'))\n },\n {\n \"id\": \"llvm\",\n \"name\": \"LLVM IR\",\n \"import\": (() => import('@shikijs/langs/llvm'))\n },\n {\n \"id\": \"log\",\n \"name\": \"Log file\",\n \"import\": (() => import('@shikijs/langs/log'))\n },\n {\n \"id\": \"logo\",\n \"name\": \"Logo\",\n \"import\": (() => import('@shikijs/langs/logo'))\n },\n {\n \"id\": \"lua\",\n \"name\": \"Lua\",\n \"import\": (() => import('@shikijs/langs/lua'))\n },\n {\n \"id\": \"luau\",\n \"name\": \"Luau\",\n \"import\": (() => import('@shikijs/langs/luau'))\n },\n {\n \"id\": \"make\",\n \"name\": \"Makefile\",\n \"aliases\": [\n \"makefile\"\n ],\n \"import\": (() => import('@shikijs/langs/make'))\n },\n {\n \"id\": \"markdown\",\n \"name\": \"Markdown\",\n \"aliases\": [\n \"md\"\n ],\n \"import\": (() => import('@shikijs/langs/markdown'))\n },\n {\n \"id\": \"marko\",\n \"name\": \"Marko\",\n \"import\": (() => import('@shikijs/langs/marko'))\n },\n {\n \"id\": \"matlab\",\n \"name\": \"MATLAB\",\n \"import\": (() => import('@shikijs/langs/matlab'))\n },\n {\n \"id\": \"mdc\",\n \"name\": \"MDC\",\n \"import\": (() => import('@shikijs/langs/mdc'))\n },\n {\n \"id\": \"mdx\",\n \"name\": \"MDX\",\n \"import\": (() => import('@shikijs/langs/mdx'))\n },\n {\n \"id\": \"mermaid\",\n \"name\": \"Mermaid\",\n \"aliases\": [\n \"mmd\"\n ],\n \"import\": (() => import('@shikijs/langs/mermaid'))\n },\n {\n \"id\": \"mipsasm\",\n \"name\": \"MIPS Assembly\",\n \"aliases\": [\n \"mips\"\n ],\n \"import\": (() => import('@shikijs/langs/mipsasm'))\n },\n {\n \"id\": \"mojo\",\n \"name\": \"Mojo\",\n \"import\": (() => import('@shikijs/langs/mojo'))\n },\n {\n \"id\": \"moonbit\",\n \"name\": \"MoonBit\",\n \"aliases\": [\n \"mbt\",\n \"mbti\"\n ],\n \"import\": (() => import('@shikijs/langs/moonbit'))\n },\n {\n \"id\": \"move\",\n \"name\": \"Move\",\n \"import\": (() => import('@shikijs/langs/move'))\n },\n {\n \"id\": \"narrat\",\n \"name\": \"Narrat Language\",\n \"aliases\": [\n \"nar\"\n ],\n \"import\": (() => import('@shikijs/langs/narrat'))\n },\n {\n \"id\": \"nextflow\",\n \"name\": \"Nextflow\",\n \"aliases\": [\n \"nf\"\n ],\n \"import\": (() => import('@shikijs/langs/nextflow'))\n },\n {\n \"id\": \"nginx\",\n \"name\": \"Nginx\",\n \"import\": (() => import('@shikijs/langs/nginx'))\n },\n {\n \"id\": \"nim\",\n \"name\": \"Nim\",\n \"import\": (() => import('@shikijs/langs/nim'))\n },\n {\n \"id\": \"nix\",\n \"name\": \"Nix\",\n \"import\": (() => import('@shikijs/langs/nix'))\n },\n {\n \"id\": \"nushell\",\n \"name\": \"nushell\",\n \"aliases\": [\n \"nu\"\n ],\n \"import\": (() => import('@shikijs/langs/nushell'))\n },\n {\n \"id\": \"objective-c\",\n \"name\": \"Objective-C\",\n \"aliases\": [\n \"objc\"\n ],\n \"import\": (() => import('@shikijs/langs/objective-c'))\n },\n {\n \"id\": \"objective-cpp\",\n \"name\": \"Objective-C++\",\n \"import\": (() => import('@shikijs/langs/objective-cpp'))\n },\n {\n \"id\": \"ocaml\",\n \"name\": \"OCaml\",\n \"import\": (() => import('@shikijs/langs/ocaml'))\n },\n {\n \"id\": \"openscad\",\n \"name\": \"OpenSCAD\",\n \"aliases\": [\n \"scad\"\n ],\n \"import\": (() => import('@shikijs/langs/openscad'))\n },\n {\n \"id\": \"pascal\",\n \"name\": \"Pascal\",\n \"import\": (() => import('@shikijs/langs/pascal'))\n },\n {\n \"id\": \"perl\",\n \"name\": \"Perl\",\n \"import\": (() => import('@shikijs/langs/perl'))\n },\n {\n \"id\": \"php\",\n \"name\": \"PHP\",\n \"import\": (() => import('@shikijs/langs/php'))\n },\n {\n \"id\": \"pkl\",\n \"name\": \"Pkl\",\n \"import\": (() => import('@shikijs/langs/pkl'))\n },\n {\n \"id\": \"plsql\",\n \"name\": \"PL/SQL\",\n \"import\": (() => import('@shikijs/langs/plsql'))\n },\n {\n \"id\": \"po\",\n \"name\": \"Gettext PO\",\n \"aliases\": [\n \"pot\",\n \"potx\"\n ],\n \"import\": (() => import('@shikijs/langs/po'))\n },\n {\n \"id\": \"polar\",\n \"name\": \"Polar\",\n \"import\": (() => import('@shikijs/langs/polar'))\n },\n {\n \"id\": \"postcss\",\n \"name\": \"PostCSS\",\n \"import\": (() => import('@shikijs/langs/postcss'))\n },\n {\n \"id\": \"powerquery\",\n \"name\": \"PowerQuery\",\n \"import\": (() => import('@shikijs/langs/powerquery'))\n },\n {\n \"id\": \"powershell\",\n \"name\": \"PowerShell\",\n \"aliases\": [\n \"ps\",\n \"ps1\"\n ],\n \"import\": (() => import('@shikijs/langs/powershell'))\n },\n {\n \"id\": \"prisma\",\n \"name\": \"Prisma\",\n \"import\": (() => import('@shikijs/langs/prisma'))\n },\n {\n \"id\": \"prolog\",\n \"name\": \"Prolog\",\n \"import\": (() => import('@shikijs/langs/prolog'))\n },\n {\n \"id\": \"proto\",\n \"name\": \"Protocol Buffer 3\",\n \"aliases\": [\n \"protobuf\"\n ],\n \"import\": (() => import('@shikijs/langs/proto'))\n },\n {\n \"id\": \"pug\",\n \"name\": \"Pug\",\n \"aliases\": [\n \"jade\"\n ],\n \"import\": (() => import('@shikijs/langs/pug'))\n },\n {\n \"id\": \"puppet\",\n \"name\": \"Puppet\",\n \"import\": (() => import('@shikijs/langs/puppet'))\n },\n {\n \"id\": \"purescript\",\n \"name\": \"PureScript\",\n \"import\": (() => import('@shikijs/langs/purescript'))\n },\n {\n \"id\": \"python\",\n \"name\": \"Python\",\n \"aliases\": [\n \"py\"\n ],\n \"import\": (() => import('@shikijs/langs/python'))\n },\n {\n \"id\": \"qml\",\n \"name\": \"QML\",\n \"import\": (() => import('@shikijs/langs/qml'))\n },\n {\n \"id\": \"qmldir\",\n \"name\": \"QML Directory\",\n \"import\": (() => import('@shikijs/langs/qmldir'))\n },\n {\n \"id\": \"qss\",\n \"name\": \"Qt Style Sheets\",\n \"import\": (() => import('@shikijs/langs/qss'))\n },\n {\n \"id\": \"r\",\n \"name\": \"R\",\n \"import\": (() => import('@shikijs/langs/r'))\n },\n {\n \"id\": \"racket\",\n \"name\": \"Racket\",\n \"import\": (() => import('@shikijs/langs/racket'))\n },\n {\n \"id\": \"raku\",\n \"name\": \"Raku\",\n \"aliases\": [\n \"perl6\"\n ],\n \"import\": (() => import('@shikijs/langs/raku'))\n },\n {\n \"id\": \"razor\",\n \"name\": \"ASP.NET Razor\",\n \"import\": (() => import('@shikijs/langs/razor'))\n },\n {\n \"id\": \"reg\",\n \"name\": \"Windows Registry Script\",\n \"import\": (() => import('@shikijs/langs/reg'))\n },\n {\n \"id\": \"regexp\",\n \"name\": \"RegExp\",\n \"aliases\": [\n \"regex\"\n ],\n \"import\": (() => import('@shikijs/langs/regexp'))\n },\n {\n \"id\": \"rel\",\n \"name\": \"Rel\",\n \"import\": (() => import('@shikijs/langs/rel'))\n },\n {\n \"id\": \"riscv\",\n \"name\": \"RISC-V\",\n \"import\": (() => import('@shikijs/langs/riscv'))\n },\n {\n \"id\": \"rosmsg\",\n \"name\": \"ROS Interface\",\n \"import\": (() => import('@shikijs/langs/rosmsg'))\n },\n {\n \"id\": \"rst\",\n \"name\": \"reStructuredText\",\n \"import\": (() => import('@shikijs/langs/rst'))\n },\n {\n \"id\": \"ruby\",\n \"name\": \"Ruby\",\n \"aliases\": [\n \"rb\"\n ],\n \"import\": (() => import('@shikijs/langs/ruby'))\n },\n {\n \"id\": \"rust\",\n \"name\": \"Rust\",\n \"aliases\": [\n \"rs\"\n ],\n \"import\": (() => import('@shikijs/langs/rust'))\n },\n {\n \"id\": \"sas\",\n \"name\": \"SAS\",\n \"import\": (() => import('@shikijs/langs/sas'))\n },\n {\n \"id\": \"sass\",\n \"name\": \"Sass\",\n \"import\": (() => import('@shikijs/langs/sass'))\n },\n {\n \"id\": \"scala\",\n \"name\": \"Scala\",\n \"import\": (() => import('@shikijs/langs/scala'))\n },\n {\n \"id\": \"scheme\",\n \"name\": \"Scheme\",\n \"import\": (() => import('@shikijs/langs/scheme'))\n },\n {\n \"id\": \"scss\",\n \"name\": \"SCSS\",\n \"import\": (() => import('@shikijs/langs/scss'))\n },\n {\n \"id\": \"sdbl\",\n \"name\": \"1C (Query)\",\n \"aliases\": [\n \"1c-query\"\n ],\n \"import\": (() => import('@shikijs/langs/sdbl'))\n },\n {\n \"id\": \"shaderlab\",\n \"name\": \"ShaderLab\",\n \"aliases\": [\n \"shader\"\n ],\n \"import\": (() => import('@shikijs/langs/shaderlab'))\n },\n {\n \"id\": \"shellscript\",\n \"name\": \"Shell\",\n \"aliases\": [\n \"bash\",\n \"sh\",\n \"shell\",\n \"zsh\"\n ],\n \"import\": (() => import('@shikijs/langs/shellscript'))\n },\n {\n \"id\": \"shellsession\",\n \"name\": \"Shell Session\",\n \"aliases\": [\n \"console\"\n ],\n \"import\": (() => import('@shikijs/langs/shellsession'))\n },\n {\n \"id\": \"smalltalk\",\n \"name\": \"Smalltalk\",\n \"import\": (() => import('@shikijs/langs/smalltalk'))\n },\n {\n \"id\": \"solidity\",\n \"name\": \"Solidity\",\n \"import\": (() => import('@shikijs/langs/solidity'))\n },\n {\n \"id\": \"soy\",\n \"name\": \"Closure Templates\",\n \"aliases\": [\n \"closure-templates\"\n ],\n \"import\": (() => import('@shikijs/langs/soy'))\n },\n {\n \"id\": \"sparql\",\n \"name\": \"SPARQL\",\n \"import\": (() => import('@shikijs/langs/sparql'))\n },\n {\n \"id\": \"splunk\",\n \"name\": \"Splunk Query Language\",\n \"aliases\": [\n \"spl\"\n ],\n \"import\": (() => import('@shikijs/langs/splunk'))\n },\n {\n \"id\": \"sql\",\n \"name\": \"SQL\",\n \"import\": (() => import('@shikijs/langs/sql'))\n },\n {\n \"id\": \"ssh-config\",\n \"name\": \"SSH Config\",\n \"import\": (() => import('@shikijs/langs/ssh-config'))\n },\n {\n \"id\": \"stata\",\n \"name\": \"Stata\",\n \"import\": (() => import('@shikijs/langs/stata'))\n },\n {\n \"id\": \"stylus\",\n \"name\": \"Stylus\",\n \"aliases\": [\n \"styl\"\n ],\n \"import\": (() => import('@shikijs/langs/stylus'))\n },\n {\n \"id\": \"svelte\",\n \"name\": \"Svelte\",\n \"import\": (() => import('@shikijs/langs/svelte'))\n },\n {\n \"id\": \"swift\",\n \"name\": \"Swift\",\n \"import\": (() => import('@shikijs/langs/swift'))\n },\n {\n \"id\": \"system-verilog\",\n \"name\": \"SystemVerilog\",\n \"import\": (() => import('@shikijs/langs/system-verilog'))\n },\n {\n \"id\": \"systemd\",\n \"name\": \"Systemd Units\",\n \"import\": (() => import('@shikijs/langs/systemd'))\n },\n {\n \"id\": \"talonscript\",\n \"name\": \"TalonScript\",\n \"aliases\": [\n \"talon\"\n ],\n \"import\": (() => import('@shikijs/langs/talonscript'))\n },\n {\n \"id\": \"tasl\",\n \"name\": \"Tasl\",\n \"import\": (() => import('@shikijs/langs/tasl'))\n },\n {\n \"id\": \"tcl\",\n \"name\": \"Tcl\",\n \"import\": (() => import('@shikijs/langs/tcl'))\n },\n {\n \"id\": \"templ\",\n \"name\": \"Templ\",\n \"import\": (() => import('@shikijs/langs/templ'))\n },\n {\n \"id\": \"terraform\",\n \"name\": \"Terraform\",\n \"aliases\": [\n \"tf\",\n \"tfvars\"\n ],\n \"import\": (() => import('@shikijs/langs/terraform'))\n },\n {\n \"id\": \"tex\",\n \"name\": \"TeX\",\n \"import\": (() => import('@shikijs/langs/tex'))\n },\n {\n \"id\": \"toml\",\n \"name\": \"TOML\",\n \"import\": (() => import('@shikijs/langs/toml'))\n },\n {\n \"id\": \"ts-tags\",\n \"name\": \"TypeScript with Tags\",\n \"aliases\": [\n \"lit\"\n ],\n \"import\": (() => import('@shikijs/langs/ts-tags'))\n },\n {\n \"id\": \"tsv\",\n \"name\": \"TSV\",\n \"import\": (() => import('@shikijs/langs/tsv'))\n },\n {\n \"id\": \"tsx\",\n \"name\": \"TSX\",\n \"import\": (() => import('@shikijs/langs/tsx'))\n },\n {\n \"id\": \"turtle\",\n \"name\": \"Turtle\",\n \"import\": (() => import('@shikijs/langs/turtle'))\n },\n {\n \"id\": \"twig\",\n \"name\": \"Twig\",\n \"import\": (() => import('@shikijs/langs/twig'))\n },\n {\n \"id\": \"typescript\",\n \"name\": \"TypeScript\",\n \"aliases\": [\n \"ts\",\n \"cts\",\n \"mts\"\n ],\n \"import\": (() => import('@shikijs/langs/typescript'))\n },\n {\n \"id\": \"typespec\",\n \"name\": \"TypeSpec\",\n \"aliases\": [\n \"tsp\"\n ],\n \"import\": (() => import('@shikijs/langs/typespec'))\n },\n {\n \"id\": \"typst\",\n \"name\": \"Typst\",\n \"aliases\": [\n \"typ\"\n ],\n \"import\": (() => import('@shikijs/langs/typst'))\n },\n {\n \"id\": \"v\",\n \"name\": \"V\",\n \"import\": (() => import('@shikijs/langs/v'))\n },\n {\n \"id\": \"vala\",\n \"name\": \"Vala\",\n \"import\": (() => import('@shikijs/langs/vala'))\n },\n {\n \"id\": \"vb\",\n \"name\": \"Visual Basic\",\n \"aliases\": [\n \"cmd\"\n ],\n \"import\": (() => import('@shikijs/langs/vb'))\n },\n {\n \"id\": \"verilog\",\n \"name\": \"Verilog\",\n \"import\": (() => import('@shikijs/langs/verilog'))\n },\n {\n \"id\": \"vhdl\",\n \"name\": \"VHDL\",\n \"import\": (() => import('@shikijs/langs/vhdl'))\n },\n {\n \"id\": \"viml\",\n \"name\": \"Vim Script\",\n \"aliases\": [\n \"vim\",\n \"vimscript\"\n ],\n \"import\": (() => import('@shikijs/langs/viml'))\n },\n {\n \"id\": \"vue\",\n \"name\": \"Vue\",\n \"import\": (() => import('@shikijs/langs/vue'))\n },\n {\n \"id\": \"vue-html\",\n \"name\": \"Vue HTML\",\n \"import\": (() => import('@shikijs/langs/vue-html'))\n },\n {\n \"id\": \"vue-vine\",\n \"name\": \"Vue Vine\",\n \"import\": (() => import('@shikijs/langs/vue-vine'))\n },\n {\n \"id\": \"vyper\",\n \"name\": \"Vyper\",\n \"aliases\": [\n \"vy\"\n ],\n \"import\": (() => import('@shikijs/langs/vyper'))\n },\n {\n \"id\": \"wasm\",\n \"name\": \"WebAssembly\",\n \"import\": (() => import('@shikijs/langs/wasm'))\n },\n {\n \"id\": \"wenyan\",\n \"name\": \"Wenyan\",\n \"aliases\": [\n \"\\u6587\\u8A00\"\n ],\n \"import\": (() => import('@shikijs/langs/wenyan'))\n },\n {\n \"id\": \"wgsl\",\n \"name\": \"WGSL\",\n \"import\": (() => import('@shikijs/langs/wgsl'))\n },\n {\n \"id\": \"wikitext\",\n \"name\": \"Wikitext\",\n \"aliases\": [\n \"mediawiki\",\n \"wiki\"\n ],\n \"import\": (() => import('@shikijs/langs/wikitext'))\n },\n {\n \"id\": \"wit\",\n \"name\": \"WebAssembly Interface Types\",\n \"import\": (() => import('@shikijs/langs/wit'))\n },\n {\n \"id\": \"wolfram\",\n \"name\": \"Wolfram\",\n \"aliases\": [\n \"wl\"\n ],\n \"import\": (() => import('@shikijs/langs/wolfram'))\n },\n {\n \"id\": \"xml\",\n \"name\": \"XML\",\n \"import\": (() => import('@shikijs/langs/xml'))\n },\n {\n \"id\": \"xsl\",\n \"name\": \"XSL\",\n \"import\": (() => import('@shikijs/langs/xsl'))\n },\n {\n \"id\": \"yaml\",\n \"name\": \"YAML\",\n \"aliases\": [\n \"yml\"\n ],\n \"import\": (() => import('@shikijs/langs/yaml'))\n },\n {\n \"id\": \"zenscript\",\n \"name\": \"ZenScript\",\n \"import\": (() => import('@shikijs/langs/zenscript'))\n },\n {\n \"id\": \"zig\",\n \"name\": \"Zig\",\n \"import\": (() => import('@shikijs/langs/zig'))\n }\n];\nconst bundledLanguagesBase = Object.fromEntries(bundledLanguagesInfo.map((i) => [i.id, i.import]));\nconst bundledLanguagesAlias = Object.fromEntries(bundledLanguagesInfo.flatMap((i) => i.aliases?.map((a) => [a, i.import]) || []));\nconst bundledLanguages = {\n ...bundledLanguagesBase,\n ...bundledLanguagesAlias\n};\n\nexport { bundledLanguages, bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo };\n","const bundledThemesInfo = [\n {\n \"id\": \"andromeeda\",\n \"displayName\": \"Andromeeda\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/andromeeda'))\n },\n {\n \"id\": \"aurora-x\",\n \"displayName\": \"Aurora X\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/aurora-x'))\n },\n {\n \"id\": \"ayu-dark\",\n \"displayName\": \"Ayu Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/ayu-dark'))\n },\n {\n \"id\": \"catppuccin-frappe\",\n \"displayName\": \"Catppuccin Frapp\\xE9\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/catppuccin-frappe'))\n },\n {\n \"id\": \"catppuccin-latte\",\n \"displayName\": \"Catppuccin Latte\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/catppuccin-latte'))\n },\n {\n \"id\": \"catppuccin-macchiato\",\n \"displayName\": \"Catppuccin Macchiato\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/catppuccin-macchiato'))\n },\n {\n \"id\": \"catppuccin-mocha\",\n \"displayName\": \"Catppuccin Mocha\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/catppuccin-mocha'))\n },\n {\n \"id\": \"dark-plus\",\n \"displayName\": \"Dark Plus\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/dark-plus'))\n },\n {\n \"id\": \"dracula\",\n \"displayName\": \"Dracula Theme\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/dracula'))\n },\n {\n \"id\": \"dracula-soft\",\n \"displayName\": \"Dracula Theme Soft\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/dracula-soft'))\n },\n {\n \"id\": \"everforest-dark\",\n \"displayName\": \"Everforest Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/everforest-dark'))\n },\n {\n \"id\": \"everforest-light\",\n \"displayName\": \"Everforest Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/everforest-light'))\n },\n {\n \"id\": \"github-dark\",\n \"displayName\": \"GitHub Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/github-dark'))\n },\n {\n \"id\": \"github-dark-default\",\n \"displayName\": \"GitHub Dark Default\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/github-dark-default'))\n },\n {\n \"id\": \"github-dark-dimmed\",\n \"displayName\": \"GitHub Dark Dimmed\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/github-dark-dimmed'))\n },\n {\n \"id\": \"github-dark-high-contrast\",\n \"displayName\": \"GitHub Dark High Contrast\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/github-dark-high-contrast'))\n },\n {\n \"id\": \"github-light\",\n \"displayName\": \"GitHub Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/github-light'))\n },\n {\n \"id\": \"github-light-default\",\n \"displayName\": \"GitHub Light Default\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/github-light-default'))\n },\n {\n \"id\": \"github-light-high-contrast\",\n \"displayName\": \"GitHub Light High Contrast\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/github-light-high-contrast'))\n },\n {\n \"id\": \"gruvbox-dark-hard\",\n \"displayName\": \"Gruvbox Dark Hard\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/gruvbox-dark-hard'))\n },\n {\n \"id\": \"gruvbox-dark-medium\",\n \"displayName\": \"Gruvbox Dark Medium\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/gruvbox-dark-medium'))\n },\n {\n \"id\": \"gruvbox-dark-soft\",\n \"displayName\": \"Gruvbox Dark Soft\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/gruvbox-dark-soft'))\n },\n {\n \"id\": \"gruvbox-light-hard\",\n \"displayName\": \"Gruvbox Light Hard\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/gruvbox-light-hard'))\n },\n {\n \"id\": \"gruvbox-light-medium\",\n \"displayName\": \"Gruvbox Light Medium\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/gruvbox-light-medium'))\n },\n {\n \"id\": \"gruvbox-light-soft\",\n \"displayName\": \"Gruvbox Light Soft\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/gruvbox-light-soft'))\n },\n {\n \"id\": \"houston\",\n \"displayName\": \"Houston\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/houston'))\n },\n {\n \"id\": \"kanagawa-dragon\",\n \"displayName\": \"Kanagawa Dragon\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/kanagawa-dragon'))\n },\n {\n \"id\": \"kanagawa-lotus\",\n \"displayName\": \"Kanagawa Lotus\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/kanagawa-lotus'))\n },\n {\n \"id\": \"kanagawa-wave\",\n \"displayName\": \"Kanagawa Wave\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/kanagawa-wave'))\n },\n {\n \"id\": \"laserwave\",\n \"displayName\": \"LaserWave\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/laserwave'))\n },\n {\n \"id\": \"light-plus\",\n \"displayName\": \"Light Plus\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/light-plus'))\n },\n {\n \"id\": \"material-theme\",\n \"displayName\": \"Material Theme\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/material-theme'))\n },\n {\n \"id\": \"material-theme-darker\",\n \"displayName\": \"Material Theme Darker\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/material-theme-darker'))\n },\n {\n \"id\": \"material-theme-lighter\",\n \"displayName\": \"Material Theme Lighter\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/material-theme-lighter'))\n },\n {\n \"id\": \"material-theme-ocean\",\n \"displayName\": \"Material Theme Ocean\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/material-theme-ocean'))\n },\n {\n \"id\": \"material-theme-palenight\",\n \"displayName\": \"Material Theme Palenight\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/material-theme-palenight'))\n },\n {\n \"id\": \"min-dark\",\n \"displayName\": \"Min Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/min-dark'))\n },\n {\n \"id\": \"min-light\",\n \"displayName\": \"Min Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/min-light'))\n },\n {\n \"id\": \"monokai\",\n \"displayName\": \"Monokai\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/monokai'))\n },\n {\n \"id\": \"night-owl\",\n \"displayName\": \"Night Owl\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/night-owl'))\n },\n {\n \"id\": \"nord\",\n \"displayName\": \"Nord\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/nord'))\n },\n {\n \"id\": \"one-dark-pro\",\n \"displayName\": \"One Dark Pro\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/one-dark-pro'))\n },\n {\n \"id\": \"one-light\",\n \"displayName\": \"One Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/one-light'))\n },\n {\n \"id\": \"plastic\",\n \"displayName\": \"Plastic\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/plastic'))\n },\n {\n \"id\": \"poimandres\",\n \"displayName\": \"Poimandres\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/poimandres'))\n },\n {\n \"id\": \"red\",\n \"displayName\": \"Red\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/red'))\n },\n {\n \"id\": \"rose-pine\",\n \"displayName\": \"Ros\\xE9 Pine\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/rose-pine'))\n },\n {\n \"id\": \"rose-pine-dawn\",\n \"displayName\": \"Ros\\xE9 Pine Dawn\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/rose-pine-dawn'))\n },\n {\n \"id\": \"rose-pine-moon\",\n \"displayName\": \"Ros\\xE9 Pine Moon\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/rose-pine-moon'))\n },\n {\n \"id\": \"slack-dark\",\n \"displayName\": \"Slack Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/slack-dark'))\n },\n {\n \"id\": \"slack-ochin\",\n \"displayName\": \"Slack Ochin\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/slack-ochin'))\n },\n {\n \"id\": \"snazzy-light\",\n \"displayName\": \"Snazzy Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/snazzy-light'))\n },\n {\n \"id\": \"solarized-dark\",\n \"displayName\": \"Solarized Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/solarized-dark'))\n },\n {\n \"id\": \"solarized-light\",\n \"displayName\": \"Solarized Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/solarized-light'))\n },\n {\n \"id\": \"synthwave-84\",\n \"displayName\": \"Synthwave '84\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/synthwave-84'))\n },\n {\n \"id\": \"tokyo-night\",\n \"displayName\": \"Tokyo Night\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/tokyo-night'))\n },\n {\n \"id\": \"vesper\",\n \"displayName\": \"Vesper\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/vesper'))\n },\n {\n \"id\": \"vitesse-black\",\n \"displayName\": \"Vitesse Black\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/vitesse-black'))\n },\n {\n \"id\": \"vitesse-dark\",\n \"displayName\": \"Vitesse Dark\",\n \"type\": \"dark\",\n \"import\": (() => import('@shikijs/themes/vitesse-dark'))\n },\n {\n \"id\": \"vitesse-light\",\n \"displayName\": \"Vitesse Light\",\n \"type\": \"light\",\n \"import\": (() => import('@shikijs/themes/vitesse-light'))\n }\n];\nconst bundledThemes = Object.fromEntries(bundledThemesInfo.map((i) => [i.id, i.import]));\n\nexport { bundledThemes, bundledThemesInfo };\n","class ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ShikiError\";\n }\n}\n\nfunction getHeapMax() {\n return 2147483648;\n}\nfunction _emscripten_get_now() {\n return typeof performance !== \"undefined\" ? performance.now() : Date.now();\n}\nconst alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;\nasync function main(init) {\n let wasmMemory;\n let buffer;\n const binding = {};\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n binding.HEAPU8 = new Uint8Array(buf);\n binding.HEAPU32 = new Uint32Array(buf);\n }\n function _emscripten_memcpy_big(dest, src, num) {\n binding.HEAPU8.copyWithin(dest, src, src + num);\n }\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n } catch {\n }\n }\n function _emscripten_resize_heap(requestedSize) {\n const oldSize = binding.HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n const maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize)\n return false;\n for (let cutDown = 1; cutDown <= 4; cutDown *= 2) {\n let overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n const newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n const replacement = emscripten_realloc_buffer(newSize);\n if (replacement)\n return true;\n }\n return false;\n }\n const UTF8Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : void 0;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead = 1024) {\n const endIdx = idx + maxBytesToRead;\n let endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n let str = \"\";\n while (idx < endPtr) {\n let u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n const u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) === 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n const u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) === 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n const ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(binding.HEAPU8, ptr, maxBytesToRead) : \"\";\n }\n const asmLibraryArg = {\n emscripten_get_now: _emscripten_get_now,\n emscripten_memcpy_big: _emscripten_memcpy_big,\n emscripten_resize_heap: _emscripten_resize_heap,\n fd_write: () => 0\n };\n async function createWasm() {\n const info = {\n env: asmLibraryArg,\n wasi_snapshot_preview1: asmLibraryArg\n };\n const exports$1 = await init(info);\n wasmMemory = exports$1.memory;\n updateGlobalBufferAndViews(wasmMemory.buffer);\n Object.assign(binding, exports$1);\n binding.UTF8ToString = UTF8ToString;\n }\n await createWasm();\n return binding;\n}\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nlet onigBinding = null;\nfunction throwLastOnigError(onigBinding2) {\n throw new ShikiError(onigBinding2.UTF8ToString(onigBinding2.getLastOnigError()));\n}\nclass UtfString {\n constructor(str) {\n __publicField(this, \"utf16Length\");\n __publicField(this, \"utf8Length\");\n __publicField(this, \"utf16Value\");\n __publicField(this, \"utf8Value\");\n __publicField(this, \"utf16OffsetToUtf8\");\n __publicField(this, \"utf8OffsetToUtf16\");\n const utf16Length = str.length;\n const utf8Length = UtfString._utf8ByteLength(str);\n const computeIndicesMapping = utf8Length !== utf16Length;\n const utf16OffsetToUtf8 = computeIndicesMapping ? new Uint32Array(utf16Length + 1) : null;\n if (computeIndicesMapping)\n utf16OffsetToUtf8[utf16Length] = utf8Length;\n const utf8OffsetToUtf16 = computeIndicesMapping ? new Uint32Array(utf8Length + 1) : null;\n if (computeIndicesMapping)\n utf8OffsetToUtf16[utf8Length] = utf16Length;\n const utf8Value = new Uint8Array(utf8Length);\n let i8 = 0;\n for (let i16 = 0; i16 < utf16Length; i16++) {\n const charCode = str.charCodeAt(i16);\n let codePoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 55296 && charCode <= 56319) {\n if (i16 + 1 < utf16Length) {\n const nextCharCode = str.charCodeAt(i16 + 1);\n if (nextCharCode >= 56320 && nextCharCode <= 57343) {\n codePoint = (charCode - 55296 << 10) + 65536 | nextCharCode - 56320;\n wasSurrogatePair = true;\n }\n }\n }\n if (computeIndicesMapping) {\n utf16OffsetToUtf8[i16] = i8;\n if (wasSurrogatePair)\n utf16OffsetToUtf8[i16 + 1] = i8;\n if (codePoint <= 127) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n } else if (codePoint <= 2047) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n } else if (codePoint <= 65535) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n } else {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n utf8OffsetToUtf16[i8 + 3] = i16;\n }\n }\n if (codePoint <= 127) {\n utf8Value[i8++] = codePoint;\n } else if (codePoint <= 2047) {\n utf8Value[i8++] = 192 | (codePoint & 1984) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n } else if (codePoint <= 65535) {\n utf8Value[i8++] = 224 | (codePoint & 61440) >>> 12;\n utf8Value[i8++] = 128 | (codePoint & 4032) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n } else {\n utf8Value[i8++] = 240 | (codePoint & 1835008) >>> 18;\n utf8Value[i8++] = 128 | (codePoint & 258048) >>> 12;\n utf8Value[i8++] = 128 | (codePoint & 4032) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n }\n if (wasSurrogatePair)\n i16++;\n }\n this.utf16Length = utf16Length;\n this.utf8Length = utf8Length;\n this.utf16Value = str;\n this.utf8Value = utf8Value;\n this.utf16OffsetToUtf8 = utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utf8OffsetToUtf16;\n }\n static _utf8ByteLength(str) {\n let result = 0;\n for (let i = 0, len = str.length; i < len; i++) {\n const charCode = str.charCodeAt(i);\n let codepoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 55296 && charCode <= 56319) {\n if (i + 1 < len) {\n const nextCharCode = str.charCodeAt(i + 1);\n if (nextCharCode >= 56320 && nextCharCode <= 57343) {\n codepoint = (charCode - 55296 << 10) + 65536 | nextCharCode - 56320;\n wasSurrogatePair = true;\n }\n }\n }\n if (codepoint <= 127)\n result += 1;\n else if (codepoint <= 2047)\n result += 2;\n else if (codepoint <= 65535)\n result += 3;\n else\n result += 4;\n if (wasSurrogatePair)\n i++;\n }\n return result;\n }\n createString(onigBinding2) {\n const result = onigBinding2.omalloc(this.utf8Length);\n onigBinding2.HEAPU8.set(this.utf8Value, result);\n return result;\n }\n}\nconst _OnigString = class _OnigString {\n constructor(str) {\n __publicField(this, \"id\", ++_OnigString.LAST_ID);\n __publicField(this, \"_onigBinding\");\n __publicField(this, \"content\");\n __publicField(this, \"utf16Length\");\n __publicField(this, \"utf8Length\");\n __publicField(this, \"utf16OffsetToUtf8\");\n __publicField(this, \"utf8OffsetToUtf16\");\n __publicField(this, \"ptr\");\n if (!onigBinding)\n throw new ShikiError(\"Must invoke loadWasm first.\");\n this._onigBinding = onigBinding;\n this.content = str;\n const utfString = new UtfString(str);\n this.utf16Length = utfString.utf16Length;\n this.utf8Length = utfString.utf8Length;\n this.utf16OffsetToUtf8 = utfString.utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utfString.utf8OffsetToUtf16;\n if (this.utf8Length < 1e4 && !_OnigString._sharedPtrInUse) {\n if (!_OnigString._sharedPtr)\n _OnigString._sharedPtr = onigBinding.omalloc(1e4);\n _OnigString._sharedPtrInUse = true;\n onigBinding.HEAPU8.set(utfString.utf8Value, _OnigString._sharedPtr);\n this.ptr = _OnigString._sharedPtr;\n } else {\n this.ptr = utfString.createString(onigBinding);\n }\n }\n convertUtf8OffsetToUtf16(utf8Offset) {\n if (this.utf8OffsetToUtf16) {\n if (utf8Offset < 0)\n return 0;\n if (utf8Offset > this.utf8Length)\n return this.utf16Length;\n return this.utf8OffsetToUtf16[utf8Offset];\n }\n return utf8Offset;\n }\n convertUtf16OffsetToUtf8(utf16Offset) {\n if (this.utf16OffsetToUtf8) {\n if (utf16Offset < 0)\n return 0;\n if (utf16Offset > this.utf16Length)\n return this.utf8Length;\n return this.utf16OffsetToUtf8[utf16Offset];\n }\n return utf16Offset;\n }\n dispose() {\n if (this.ptr === _OnigString._sharedPtr)\n _OnigString._sharedPtrInUse = false;\n else\n this._onigBinding.ofree(this.ptr);\n }\n};\n__publicField(_OnigString, \"LAST_ID\", 0);\n__publicField(_OnigString, \"_sharedPtr\", 0);\n// a pointer to a string of 10000 bytes\n__publicField(_OnigString, \"_sharedPtrInUse\", false);\nlet OnigString = _OnigString;\nclass OnigScanner {\n constructor(patterns) {\n __publicField(this, \"_onigBinding\");\n __publicField(this, \"_ptr\");\n if (!onigBinding)\n throw new ShikiError(\"Must invoke loadWasm first.\");\n const strPtrsArr = [];\n const strLenArr = [];\n for (let i = 0, len = patterns.length; i < len; i++) {\n const utfString = new UtfString(patterns[i]);\n strPtrsArr[i] = utfString.createString(onigBinding);\n strLenArr[i] = utfString.utf8Length;\n }\n const strPtrsPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strPtrsArr, strPtrsPtr / 4);\n const strLenPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strLenArr, strLenPtr / 4);\n const scannerPtr = onigBinding.createOnigScanner(strPtrsPtr, strLenPtr, patterns.length);\n for (let i = 0, len = patterns.length; i < len; i++)\n onigBinding.ofree(strPtrsArr[i]);\n onigBinding.ofree(strLenPtr);\n onigBinding.ofree(strPtrsPtr);\n if (scannerPtr === 0)\n throwLastOnigError(onigBinding);\n this._onigBinding = onigBinding;\n this._ptr = scannerPtr;\n }\n dispose() {\n this._onigBinding.freeOnigScanner(this._ptr);\n }\n findNextMatchSync(string, startPosition, arg) {\n let options = 0 /* None */;\n if (typeof arg === \"number\") {\n options = arg;\n }\n if (typeof string === \"string\") {\n string = new OnigString(string);\n const result = this._findNextMatchSync(string, startPosition, false, options);\n string.dispose();\n return result;\n }\n return this._findNextMatchSync(string, startPosition, false, options);\n }\n _findNextMatchSync(string, startPosition, debugCall, options) {\n const onigBinding2 = this._onigBinding;\n const resultPtr = onigBinding2.findNextOnigScannerMatch(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n if (resultPtr === 0) {\n return null;\n }\n const HEAPU32 = onigBinding2.HEAPU32;\n let offset = resultPtr / 4;\n const index = HEAPU32[offset++];\n const count = HEAPU32[offset++];\n const captureIndices = [];\n for (let i = 0; i < count; i++) {\n const beg = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n const end = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n captureIndices[i] = {\n start: beg,\n end,\n length: end - beg\n };\n }\n return {\n index,\n captureIndices\n };\n }\n}\nfunction isInstantiatorOptionsObject(dataOrOptions) {\n return typeof dataOrOptions.instantiator === \"function\";\n}\nfunction isInstantiatorModule(dataOrOptions) {\n return typeof dataOrOptions.default === \"function\";\n}\nfunction isDataOptionsObject(dataOrOptions) {\n return typeof dataOrOptions.data !== \"undefined\";\n}\nfunction isResponse(dataOrOptions) {\n return typeof Response !== \"undefined\" && dataOrOptions instanceof Response;\n}\nfunction isArrayBuffer(data) {\n return typeof ArrayBuffer !== \"undefined\" && (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) || typeof Buffer !== \"undefined\" && Buffer.isBuffer?.(data) || typeof SharedArrayBuffer !== \"undefined\" && data instanceof SharedArrayBuffer || typeof Uint32Array !== \"undefined\" && data instanceof Uint32Array;\n}\nlet initPromise;\nfunction loadWasm(options) {\n if (initPromise)\n return initPromise;\n async function _load() {\n onigBinding = await main(async (info) => {\n let instance = options;\n instance = await instance;\n if (typeof instance === \"function\")\n instance = await instance(info);\n if (typeof instance === \"function\")\n instance = await instance(info);\n if (isInstantiatorOptionsObject(instance)) {\n instance = await instance.instantiator(info);\n } else if (isInstantiatorModule(instance)) {\n instance = await instance.default(info);\n } else {\n if (isDataOptionsObject(instance))\n instance = instance.data;\n if (isResponse(instance)) {\n if (typeof WebAssembly.instantiateStreaming === \"function\")\n instance = await _makeResponseStreamingLoader(instance)(info);\n else\n instance = await _makeResponseNonStreamingLoader(instance)(info);\n } else if (isArrayBuffer(instance)) {\n instance = await _makeArrayBufferLoader(instance)(info);\n } else if (instance instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance)(info);\n } else if (\"default\" in instance && instance.default instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance.default)(info);\n }\n }\n if (\"instance\" in instance)\n instance = instance.instance;\n if (\"exports\" in instance)\n instance = instance.exports;\n return instance;\n });\n }\n initPromise = _load();\n return initPromise;\n}\nfunction _makeArrayBufferLoader(data) {\n return (importObject) => WebAssembly.instantiate(data, importObject);\n}\nfunction _makeResponseStreamingLoader(data) {\n return (importObject) => WebAssembly.instantiateStreaming(data, importObject);\n}\nfunction _makeResponseNonStreamingLoader(data) {\n return async (importObject) => {\n const arrayBuffer = await data.arrayBuffer();\n return WebAssembly.instantiate(arrayBuffer, importObject);\n };\n}\n\nlet _defaultWasmLoader;\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\nfunction getDefaultWasmLoader() {\n return _defaultWasmLoader;\n}\nasync function createOnigurumaEngine(options) {\n if (options)\n await loadWasm(options);\n return {\n createScanner(patterns) {\n return new OnigScanner(patterns.map((p) => typeof p === \"string\" ? p : p.source));\n },\n createString(s) {\n return new OnigString(s);\n }\n };\n}\n\nexport { createOnigurumaEngine, getDefaultWasmLoader, loadWasm, setDefaultWasmLoader };\n","import { createSingletonShorthands, createBundledHighlighter, guessEmbeddedLanguages } from '@shikijs/core';\nexport * from '@shikijs/core';\nimport { bundledLanguages } from './langs.mjs';\nexport { bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo } from './langs.mjs';\nimport { bundledThemes } from './themes.mjs';\nexport { bundledThemesInfo } from './themes.mjs';\nimport { createOnigurumaEngine } from '@shikijs/engine-oniguruma';\n\nconst createHighlighter = /* @__PURE__ */ createBundledHighlighter({\n langs: bundledLanguages,\n themes: bundledThemes,\n engine: () => createOnigurumaEngine(import('shiki/wasm'))\n});\nconst {\n codeToHtml,\n codeToHast,\n codeToTokens,\n codeToTokensBase,\n codeToTokensWithThemes,\n getSingletonHighlighter,\n getLastGrammarState\n} = /* @__PURE__ */ createSingletonShorthands(\n createHighlighter,\n { guessEmbeddedLanguages }\n);\n\nexport { bundledLanguages, bundledThemes, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighter, getLastGrammarState, getSingletonHighlighter };\n","\"use client\";\n\nimport type {Element} from \"hast\";\nimport type {Config as DOMPurifyConfig, DOMPurify as DOMPurifyInstance} from \"dompurify\";\nimport {type BundledLanguage, codeToHtml, type ShikiTransformer} from \"shiki\";\n\nconst lineNumberTransformer: ShikiTransformer = {\n name: \"line-numbers\",\n line(node: Element, line: number) {\n node.children.unshift({\n type: \"element\",\n tagName: \"span\",\n properties: {\n className: [\n \"inline-block\",\n \"min-w-10\",\n \"mr-4\",\n \"text-right\",\n \"select-none\",\n \"text-muted-foreground\",\n ],\n },\n children: [{type: \"text\", value: String(line)}],\n });\n },\n};\n\nconst SANITIZE_CONFIG: DOMPurifyConfig = {\n ALLOWED_TAGS: [\"pre\", \"code\", \"span\", \"div\"],\n ALLOWED_ATTR: [\"class\", \"style\", \"data-line\"],\n FORBID_TAGS: [\"script\", \"iframe\", \"object\", \"embed\", \"link\"],\n FORBID_ATTR: [\"onerror\", \"onload\", \"onclick\", \"onmouseover\"],\n};\n\n// Lazy-load DOMPurify so the sanitizer code stays out of the initial bundle.\nlet domPurifyInstance: DOMPurifyInstance | null = null;\n\nconst loadDomPurify = async (): Promise<DOMPurifyInstance> => {\n if (domPurifyInstance) {\n return domPurifyInstance;\n }\n\n const mod = (await import(\"isomorphic-dompurify\")) as {\n default: DOMPurifyInstance;\n };\n\n domPurifyInstance = mod.default;\n\n return domPurifyInstance;\n};\n\nexport async function highlightCode(\n code: string,\n language: BundledLanguage,\n showLineNumbers = false\n) {\n const transformers: ShikiTransformer[] = showLineNumbers\n ? [lineNumberTransformer]\n : [];\n\n const [lightHtml, darkHtml] = await Promise.all([\n codeToHtml(code, {\n lang: language,\n theme: \"one-light\",\n transformers,\n }),\n codeToHtml(code, {\n lang: language,\n theme: \"one-dark-pro\",\n transformers,\n }),\n ]);\n\n // Sanitize HTML to prevent XSS and React2Shell attacks\n // We use a strict configuration that only allows safe HTML tags\n const domPurify = await loadDomPurify();\n\n return [\n domPurify.sanitize(lightHtml, SANITIZE_CONFIG),\n domPurify.sanitize(darkHtml, SANITIZE_CONFIG),\n ];\n}\n"],"names":["message","clone","something","doClone","cloneArray","cloneObj","arr","r","i","len","obj","key","mergeObjects","target","sources","source","basename","path","idx","CAPTURING_REGEX_SOURCE","RegexSource","regexSource","captureSource","captureIndices","match","index","commandIndex","command","capture","result","strcmp","a","b","strArrCmp","len1","len2","res","isValidHexColor","hex","escapeRegExpCharacters","value","CachedFn","fn","__publicField","Theme","_colorMap","_defaults","_root","scopeName","colorMap","parseTheme","resolveParsedThemeRules","scopePath","effectiveRule","v","_scopePathMatchesParentScopes","StyleAttributes","ScopeStack","_ScopeStack","parent","scopeNames","name","segments","item","other","base","parentScopes","scopePattern","scopeMustMatch","_matchesScope","fontStyle","foregroundId","backgroundId","settings","resultLen","entry","scopes","_scope","j","lenJ","foreground","background","scope","ParsedThemeRule","FontStyle","FontStyle2","parsedThemeRules","defaultFontStyle","defaultForeground","defaultBackground","incomingDefaults","ColorMap","defaults","root","ThemeTrieElement","ThemeTrieElementRule","rule","color","emptyParentScopes","_ThemeTrieElementRule","scopeDepth","_ThemeTrieElement","_mainRule","rulesWithParentScopes","_children","aParentIndex","bParentIndex","parentScopeLengthDiff","dotIndex","head","tail","rules","child","EncodedTokenMetadata","_EncodedTokenMetadata","encodedTokenAttributes","languageId","tokenType","containsBalancedBrackets","_languageId","_tokenType","_containsBalancedBracketsBit","_fontStyle","_foreground","_background","createMatchers","selector","matchesName","results","tokenizer","newTokenizer","token","priority","matcher","parseConjunction","parseOperand","expressionToNegate","matcherInput","expressionInParents","parseInnerExpression","isIdentifier","identifiers","matchers","matcher2","input","regex","disposeOnigString","str","TopLevelRuleReference","TopLevelRepositoryRuleReference","ruleName","ExternalReferenceCollector","reference","ScopeDependencyProcessor","repo","initialScopeName","q","deps","dep","collectReferencesOfReference","baseGrammarScopeName","selfGrammar","baseGrammar","collectExternalReferencesInTopLevelRule","collectExternalReferencesInTopLevelRepositoryRule","injections","injection","context","collectExternalReferencesInRules","patternRepository","include","parseInclude","newContext","BaseReference","SelfReference","RelativeReference","TopLevelReference","TopLevelRepositoryReference","indexOfSharp","HAS_BACK_REFERENCES","BACK_REFERENCING_END","endRuleId","whileRuleId","Rule","$location","id","contentName","location","lineText","CaptureRule","retokenizeCapturedWithRuleId","grammar","out","endRegexSource","allowA","allowG","MatchRule","captures","RegExpSource","RegExpSourceList","IncludeOnlyRule","patterns","pattern","BeginEndRule","begin","beginCaptures","end","endCaptures","applyEndPatternLast","BeginWhileRule","_while","whileCaptures","RuleFactory","_RuleFactory","helper","desc","repository","maximumCaptureId","captureId","numericCaptureId","ruleId","localIncludedRule","externalGrammarName","externalGrammarInclude","externalGrammar","externalIncludedRule","skipRule","_RegExpSource","regExpSource","lastPushedPos","output","hasAnchor","pos","nextCh","newSource","capturedValues","g1","A0_G0_result","A0_G1_result","A1_G0_result","A1_G1_result","ch","onigLib","regExps","e","CompiledRule","string","startPosition","options","BasicScopeAttributes","BasicScopeAttributesProvider","_a","initialLanguageId","embeddedLanguages","standardTokenType","ScopeMatcher","m","values","escapedScopes","TokenizeStringResult","stack","stoppedEarly","_tokenizeString","isFirstLine","linePos","lineTokens","checkWhileConditions","timeLimit","lineLength","STOP","anchorPosition","whileCheckResult","_checkWhileConditions","startTime","scanNext","matchRuleOrInjections","matchedRuleId","hasAdvanced","poppedRule","handleCaptures","popped","_rule","beforePush","nameScopesList","pushedRule","contentNameScopesList","whileRules","node","nodeRule","whileRule","ruleScanner","findOptions","prepareRuleWhileSearch","matchResult","matchRule","injectionResult","matchInjections","matchResultScore","injectionResultScore","prepareRuleSearch","bestMatchRating","bestMatchCaptureIndices","bestMatchRuleId","bestMatchResultPriority","matchRating","lineTextContent","localStack","maxEnd","captureRule","captureIndex","stackClone","onigSubStr","captureRuleScopeName","captureRuleScopesList","LocalStackElement","endPos","createGrammar","initialLanguage","tokenTypes","balancedBracketSelectors","grammarRepository","Grammar","collectInjections","ruleFactoryHelper","nameMatcher","identifers","lastIndex","identifier","scopesAreMatching","thisScopeName","_rootScopeName","_onigLib","initGrammar","scopeName2","rawInjections","expression","injectionScopeNames","injectionScopeName","injectionGrammar","i1","i2","factory","rawIncludedGrammar","prevState","emitBinaryTokens","StateStackImpl","rawDefaultMetadata","defaultStyle","defaultMetadata","rootScopeName","scopeList","AttributedScopeStack","onigLineText","LineTokens","_AttributedScopeStack","tokenAttributes","namesScopeList","current","frame","rawRootMetadata","rootStyle","resolvedTokenAttributes","existingTokenAttributes","basicScopeAttributes","styleAttributes","rawMetadata","newPath","scopeThemeMatchResult","metadata","self","enterPos","anchorPos","beginRuleCapturedEOL","endRule","el","outIndex","_b","contentNameScopeStack","_c","BalancedBracketSelectors","balancedBracketScopes","unbalancedBracketScopes","excluder","includer","tokenTypeOverrides","endIndex","scopesList","scopes2","SyncRegistry","theme","targetScope","rawGrammar","Registry","configuration","dependencyProcessor","request","INITIAL","resolveColorReplacements","replacements","themeName","applyColorReplacements","toArray","x","normalizeGetter","p","isPlainLang","lang","isSpecialLang","isNoneTheme","isSpecialTheme","addClassToHast","className","targets","c","splitLines","code","preserveEnding","parts","lines","line","createPositionConverter","indexToPos","character","posToIndex","guessEmbeddedLanguages","_lang","highlighter","langs","fullType","bundle","l","DEFAULT_COLOR_LIGHT_DARK","COLOR_KEYS","splitToken","offsets","lastOffset","tokens","offset","splitTokens","breakpoints","sorted","breakpointsInToken","flatTokenVariants","merged","variantsOrder","cssVariablePrefix","defaultColor","colorsRendering","styles","t","getTokenStyleObject","styleKeys","mergedStyles","varKey","keyName","cur","lightIndex","darkIndex","ShikiError$1","lightValue","darkValue","decorations","stringifyTokenStyle","_grammarStateMap","setLastGrammarStateToMap","keys","state","getLastGrammarStateFromMap","GrammarState","args","stacksMap","themes","getScopes","visited","pushScope","stack2","getGrammarStack","transformerDecorations","map","getContext","shiki","normalizePosition","converter","d","verifyIntersections","codeEl","ctx","applyLineSection","start","decoration","lineEl","text","startIndex","stringify","children","applyDecoration","wrapper","applyLine","type","properties","transform","lineApplies","items","foo","bar","isFooHasBarStart","isFooHasBarEnd","isBarHasFooStart","isBarHasFooEnd","builtInTransformers","getTransformers","transformers","sortTransformersByEnforcement","pre","post","normal","transformer","namedColors","findSequence","position","nextEscape","nextClose","parseColor","sequence","colorMode","rgb","parseSequence","commands","codeInt","createAnsiSequenceParser","decorations2","findResult","styleToken","defaultNamedColorsMap","createColorPalette","namedColorsMap","namedColor","rgbColor","colorTable","getColorTable","levels","g","level","tableColor","defaultAnsiColors","tokenizeAnsiWithTheme","fileContents","colorReplacements","ansiPalette","themeColor","colorPalette","parser","bgColor","dimColor","hexMatch","alpha","cssVarMatch","codeToTokensBase","internal","_grammar","tokenizeWithTheme","getLastGrammarState","_tokenizeWithTheme","grammarState","tokenizeMaxLineLength","tokenizeTimeLimit","stateStack","actual","final","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","tokensLength","nextStartIndex","themeSettingsSelectors","setting","selectors","tokenWithScopes","tokenWithScopesText","explainThemeScopesNameOnly","explainThemeScopesFull","themeSelectors","explainThemeScope","matchesOne","matches","selectorParentIndex","parentIndex","selectorPieces","codeToTokensWithThemes","themedTokens","tokens2","syncThemesTokenization","mergedTokens","lineIdx","_token","tokenIdx","mergedToken","themeIdx","_","__","___","mergedGrammarState","s","outThemes","count","outLines","indexes","minLength","n","codeToTokens","bg","fg","themeTokens","themeRegs","themesOrder","themeColorReplacements","mapThemeColors","_theme","property","cssVar","t2","codeToHast","transformerContext","_code","_options","mergeWhitespaces","mergeSameStyleTokens","mergeWhitespaceTokens","splitWhitespaceTokens","mergeAdjacentStyledTokens","contextSource","tokensToHast","structure","tabindex","preNode","codeNode","lineNodes","lineNode","col","tokenNode","style","syntheticLines","currentLine","transformedCode","_d","newLine","carryOnContent","firstOffset","couldMerge","leading","content","trailing","expanded","prevToken","prevStyle","currentStyle","isPrevDecorated","isDecorated","hastToHtml","toHtml","codeToHtml","VSCODE_FALLBACK_EDITOR_FG","VSCODE_FALLBACK_EDITOR_BG","RESOLVED_KEY","normalizeTheme","rawTheme","globalSetting","replacementCount","replacementMap","getReplacementColor","replaceFg","replaceBg","replacement","_e","resolveLangs","resolveThemes","_emitDeprecation","warnDeprecated","version","resolveLangAlias","alias","resolved","ShikiError","Registry$1","_resolver","_themes","_langs","_alias","textmateTheme","embeddedLazilyBy","grammarConfig","langsGraphArray","missingLangs","dependents","embedded","embeddedLang","Resolver","engine","langIdOrAlias","scopeParts","subScopeName","instancesCount","createShikiInternalSync","isDisposed","resolver","_registry","_lastTheme","resolveLangAlias$1","getLanguage","ensureNotDisposed","getTheme","setTheme","getLoadedThemes","getLoadedLanguages","loadLanguageSync","langs2","loadLanguage","loadThemeSync","themes2","loadTheme","dispose","createShikiInternal","createHighlighterCore","options2","createBundledHighlighter","bundledLanguages","bundledThemes","createHighlighter","resolveLang","resolveTheme","core","makeSingletonHighlighter","_shiki","getSingletonHighlighter","createSingletonShorthands","config","get","bundledLanguagesInfo","bundledLanguagesBase","bundledLanguagesAlias","bundledThemesInfo","getHeapMax","_emscripten_get_now","alignUp","multiple","main","init","wasmMemory","buffer","binding","updateGlobalBufferAndViews","buf","_emscripten_memcpy_big","dest","src","num","emscripten_realloc_buffer","size","_emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","newSize","UTF8Decoder","UTF8ArrayToString","heapOrArray","maxBytesToRead","endIdx","endPtr","u0","u1","u2","UTF8ToString","ptr","asmLibraryArg","createWasm","exports$1","__defProp","__defNormalProp","onigBinding","throwLastOnigError","onigBinding2","UtfString","utf16Length","utf8Length","computeIndicesMapping","utf16OffsetToUtf8","utf8OffsetToUtf16","utf8Value","i8","i16","charCode","codePoint","wasSurrogatePair","nextCharCode","codepoint","_OnigString","utfString","utf8Offset","utf16Offset","OnigString","OnigScanner","strPtrsArr","strLenArr","strPtrsPtr","strLenPtr","scannerPtr","arg","debugCall","resultPtr","HEAPU32","beg","isInstantiatorOptionsObject","dataOrOptions","isInstantiatorModule","isDataOptionsObject","isResponse","isArrayBuffer","data","initPromise","loadWasm","_load","info","instance","_makeResponseStreamingLoader","_makeResponseNonStreamingLoader","_makeArrayBufferLoader","importObject","arrayBuffer","createOnigurumaEngine","lineNumberTransformer","SANITIZE_CONFIG","domPurifyInstance","loadDomPurify","highlightCode","language","showLineNumbers","lightHtml","darkHtml","domPurify"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|