@aquera/nile-elements 0.0.92 → 0.0.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/demo/variables.css +1 -0
- package/demo/variables_v2.css +1 -0
- package/dist/{angular-ts-da0fd838.cjs.js → angular-ts-a95c67aa.cjs.js} +2 -2
- package/dist/{angular-ts-da0fd838.cjs.js.map → angular-ts-a95c67aa.cjs.js.map} +1 -1
- package/dist/{asciidoc-de6540f7.esm.js → asciidoc-b8046ce8.esm.js} +1 -1
- package/dist/{asciidoc-b383cc2e.cjs.js → asciidoc-c0ae04c3.cjs.js} +2 -2
- package/dist/{asciidoc-b383cc2e.cjs.js.map → asciidoc-c0ae04c3.cjs.js.map} +1 -1
- package/dist/{astro-05e2da78.cjs.js → astro-97602850.cjs.js} +2 -2
- package/dist/{astro-05e2da78.cjs.js.map → astro-97602850.cjs.js.map} +1 -1
- package/dist/{astro-1223c814.esm.js → astro-de938e80.esm.js} +1 -1
- package/dist/{crystal-00fdf85b.esm.js → crystal-5e351a7d.esm.js} +1 -1
- package/dist/{crystal-ae510520.cjs.js → crystal-bfe435a1.cjs.js} +2 -2
- package/dist/{crystal-ae510520.cjs.js.map → crystal-bfe435a1.cjs.js.map} +1 -1
- package/dist/dotenv-2978380a.esm.js +1 -0
- package/dist/dotenv-6a845f3d.cjs.js +2 -0
- package/dist/dotenv-6a845f3d.cjs.js.map +1 -0
- package/dist/{edge-9983b50e.cjs.js → edge-f122fee4.cjs.js} +2 -2
- package/dist/{edge-9983b50e.cjs.js.map → edge-f122fee4.cjs.js.map} +1 -1
- package/dist/{erb-6afdf0fc.cjs.js → erb-4ff167eb.cjs.js} +2 -2
- package/dist/{erb-6afdf0fc.cjs.js.map → erb-4ff167eb.cjs.js.map} +1 -1
- package/dist/{erb-e26dd182.esm.js → erb-baff1e72.esm.js} +1 -1
- package/dist/everforest-dark-0ddfeebd.cjs.js +2 -0
- package/dist/everforest-dark-0ddfeebd.cjs.js.map +1 -0
- package/dist/everforest-dark-c8bfaab7.esm.js +1 -0
- package/dist/everforest-light-d4dc4485.esm.js +1 -0
- package/dist/everforest-light-eee329e3.cjs.js +2 -0
- package/dist/everforest-light-eee329e3.cjs.js.map +1 -0
- package/dist/{fortran-fixed-form-dc511aa4.cjs.js → fortran-fixed-form-48ce1631.cjs.js} +2 -2
- package/dist/{fortran-fixed-form-dc511aa4.cjs.js.map → fortran-fixed-form-48ce1631.cjs.js.map} +1 -1
- package/dist/{fsharp-33f71ce3.esm.js → fsharp-941d0410.esm.js} +1 -1
- package/dist/{fsharp-2716dc4e.cjs.js → fsharp-9f65d045.cjs.js} +2 -2
- package/dist/{fsharp-2716dc4e.cjs.js.map → fsharp-9f65d045.cjs.js.map} +1 -1
- package/dist/{gdresource-10e5a92c.cjs.js → gdresource-f69c4269.cjs.js} +2 -2
- package/dist/{gdresource-10e5a92c.cjs.js.map → gdresource-f69c4269.cjs.js.map} +1 -1
- package/dist/{git-rebase-3af101f6.esm.js → git-rebase-a164f4f3.esm.js} +1 -1
- package/dist/{git-rebase-6c8a29e3.cjs.js → git-rebase-d4b1bf1e.cjs.js} +2 -2
- package/dist/{git-rebase-6c8a29e3.cjs.js.map → git-rebase-d4b1bf1e.cjs.js.map} +1 -1
- package/dist/{haml-0a4f1779.esm.js → haml-2548eb67.esm.js} +1 -1
- package/dist/{haml-9562b9cb.cjs.js → haml-a62722ee.cjs.js} +2 -2
- package/dist/{haml-9562b9cb.cjs.js.map → haml-a62722ee.cjs.js.map} +1 -1
- package/dist/{http-fbb08279.cjs.js → http-243ce707.cjs.js} +2 -2
- package/dist/{http-fbb08279.cjs.js.map → http-243ce707.cjs.js.map} +1 -1
- package/dist/{http-93fe835e.esm.js → http-5eea627d.esm.js} +1 -1
- package/dist/{hxml-84e30280.cjs.js → hxml-36e954b2.cjs.js} +2 -2
- package/dist/{hxml-84e30280.cjs.js.map → hxml-36e954b2.cjs.js.map} +1 -1
- package/dist/julia-289248e3.esm.js +1 -0
- package/dist/julia-e6d02a84.cjs.js +2 -0
- package/dist/julia-e6d02a84.cjs.js.map +1 -0
- package/dist/kotlin-0426de90.cjs.js +2 -0
- package/dist/kotlin-0426de90.cjs.js.map +1 -0
- package/dist/kotlin-9232cba2.esm.js +1 -0
- package/dist/latex-1732805a.cjs.js +2 -0
- package/dist/latex-1732805a.cjs.js.map +1 -0
- package/dist/latex-d31ca0af.esm.js +1 -0
- package/dist/less-263f5e43.esm.js +1 -0
- package/dist/less-d05a73ab.cjs.js +2 -0
- package/dist/less-d05a73ab.cjs.js.map +1 -0
- package/dist/{marko-6fdf941d.cjs.js → marko-5bdb0e54.cjs.js} +2 -2
- package/dist/{marko-6fdf941d.cjs.js.map → marko-5bdb0e54.cjs.js.map} +1 -1
- package/dist/{marko-f6122312.esm.js → marko-b0214c2c.esm.js} +1 -1
- package/dist/{mdc-34a9ac72.cjs.js → mdc-a3ab9285.cjs.js} +2 -2
- package/dist/{mdc-34a9ac72.cjs.js.map → mdc-a3ab9285.cjs.js.map} +1 -1
- package/dist/nile-code-editor/extensionSetup.cjs.js +2 -2
- package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
- package/dist/nile-highlighter/nile-highlighter.cjs.js +1 -1
- package/dist/nile-highlighter/nile-highlighter.cjs.js.map +1 -1
- package/dist/nile-highlighter/nile-highlighter.esm.js +1 -1
- package/dist/nile-menu/index.cjs.js +1 -1
- package/dist/nile-menu/index.esm.js +1 -1
- package/dist/nile-menu/nile-menu.cjs.js +1 -1
- package/dist/nile-menu/nile-menu.cjs.js.map +1 -1
- package/dist/nile-menu/nile-menu.css.cjs.js +1 -1
- package/dist/nile-menu/nile-menu.css.cjs.js.map +1 -1
- package/dist/nile-menu/nile-menu.css.esm.js +24 -2
- package/dist/nile-menu/nile-menu.esm.js +7 -3
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.esm.js +2 -2
- package/dist/nile-stepper/nile-stepper.cjs.js +1 -1
- package/dist/nile-stepper/nile-stepper.cjs.js.map +1 -1
- package/dist/nile-stepper/nile-stepper.esm.js +3 -3
- package/dist/{nim-808435cb.cjs.js → nim-df5f9efe.cjs.js} +2 -2
- package/dist/{nim-808435cb.cjs.js.map → nim-df5f9efe.cjs.js.map} +1 -1
- package/dist/{rst-98199db8.esm.js → rst-32451dee.esm.js} +1 -1
- package/dist/{rst-a41b2bdd.cjs.js → rst-64e995dc.cjs.js} +2 -2
- package/dist/{rst-a41b2bdd.cjs.js.map → rst-64e995dc.cjs.js.map} +1 -1
- package/dist/{ruby-44a4045d.cjs.js → ruby-82bc8c10.cjs.js} +2 -2
- package/dist/{ruby-44a4045d.cjs.js.map → ruby-82bc8c10.cjs.js.map} +1 -1
- package/dist/{ruby-ed20df8b.esm.js → ruby-b8bcac40.esm.js} +1 -1
- package/dist/{shaderlab-75efb6b5.cjs.js → shaderlab-8f7349ac.cjs.js} +2 -2
- package/dist/{shaderlab-75efb6b5.cjs.js.map → shaderlab-8f7349ac.cjs.js.map} +1 -1
- package/dist/{shellscript-95a6b265.esm.js → shellscript-9a12df8f.esm.js} +1 -1
- package/dist/{shellscript-ada948c5.cjs.js → shellscript-9c815bf4.cjs.js} +2 -2
- package/dist/shellscript-9c815bf4.cjs.js.map +1 -0
- package/dist/{shellsession-c69f0eea.esm.js → shellsession-a931a3f3.esm.js} +1 -1
- package/dist/{shellsession-c26f94d1.cjs.js → shellsession-c07da9ea.cjs.js} +2 -2
- package/dist/{shellsession-c26f94d1.cjs.js.map → shellsession-c07da9ea.cjs.js.map} +1 -1
- package/dist/{sparql-933afbfc.cjs.js → sparql-cd3386f5.cjs.js} +2 -2
- package/dist/{sparql-933afbfc.cjs.js.map → sparql-cd3386f5.cjs.js.map} +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.d.ts +9 -9
- package/dist/src/nile-code-editor/nile-code-editor.js +49 -50
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-menu/nile-menu.css.js +22 -0
- package/dist/src/nile-menu/nile-menu.css.js.map +1 -1
- package/dist/src/nile-menu/nile-menu.d.ts +1 -0
- package/dist/src/nile-menu/nile-menu.js +9 -3
- package/dist/src/nile-menu/nile-menu.js.map +1 -1
- package/dist/src/nile-select/nile-select.d.ts +1 -0
- package/dist/src/nile-select/nile-select.js +18 -0
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-stepper/nile-stepper.js +4 -4
- package/dist/src/nile-stepper/nile-stepper.js.map +1 -1
- package/dist/{svelte-03aa9546.esm.js → svelte-00ac1b62.esm.js} +1 -1
- package/dist/{svelte-4fa7ff17.cjs.js → svelte-eaee6dea.cjs.js} +2 -2
- package/dist/{svelte-4fa7ff17.cjs.js.map → svelte-eaee6dea.cjs.js.map} +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/{twig-78fca8e5.esm.js → twig-25cabcad.esm.js} +1 -1
- package/dist/{twig-585d978b.cjs.js → twig-ef3a2f8e.cjs.js} +2 -2
- package/dist/{twig-585d978b.cjs.js.map → twig-ef3a2f8e.cjs.js.map} +1 -1
- package/dist/{vue-29da39c3.esm.js → vue-711d75a4.esm.js} +1 -1
- package/dist/{vue-0e328a24.cjs.js → vue-d4c63178.cjs.js} +2 -2
- package/dist/{vue-0e328a24.cjs.js.map → vue-d4c63178.cjs.js.map} +1 -1
- package/dist/{vue-html-fa1c51e6.cjs.js → vue-html-13711be2.cjs.js} +2 -2
- package/dist/{vue-html-fa1c51e6.cjs.js.map → vue-html-13711be2.cjs.js.map} +1 -1
- package/dist/{vue-html-c781b090.esm.js → vue-html-b805e078.esm.js} +1 -1
- package/dist/{wikitext-4b6b7007.esm.js → wikitext-724303c6.esm.js} +1 -1
- package/dist/{wikitext-6feef894.cjs.js → wikitext-d4ad7e43.cjs.js} +2 -2
- package/dist/{wikitext-6feef894.cjs.js.map → wikitext-d4ad7e43.cjs.js.map} +1 -1
- package/package.json +1 -2
- package/src/nile-code-editor/nile-code-editor.ts +71 -65
- package/src/nile-menu/nile-menu.css.ts +22 -0
- package/src/nile-menu/nile-menu.ts +14 -3
- package/src/nile-select/nile-select.ts +17 -1
- package/src/nile-stepper/nile-stepper.ts +4 -4
- package/dist/julia-1cad9870.esm.js +0 -1
- package/dist/julia-b0cea839.cjs.js +0 -2
- package/dist/julia-b0cea839.cjs.js.map +0 -1
- package/dist/kotlin-6283300f.esm.js +0 -1
- package/dist/kotlin-a0fd9eaf.cjs.js +0 -2
- package/dist/kotlin-a0fd9eaf.cjs.js.map +0 -1
- package/dist/latex-90a1da91.cjs.js +0 -2
- package/dist/latex-90a1da91.cjs.js.map +0 -1
- package/dist/latex-9439b9a5.esm.js +0 -1
- package/dist/less-cab2de0f.cjs.js +0 -2
- package/dist/less-cab2de0f.cjs.js.map +0 -1
- package/dist/less-fa4eebf7.esm.js +0 -1
- package/dist/shellscript-ada948c5.cjs.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-highlighter.cjs.js","sources":["../../../../node_modules/@shikijs/core/dist/textmate.mjs","../../../../node_modules/@shikijs/core/dist/index.mjs","../../../../node_modules/shiki/dist/bundle-full.mjs","../../../../node_modules/shiki/dist/langs.mjs","../../../../node_modules/shiki/dist/chunks/wasm-dynamic.mjs","../../../../node_modules/shiki/dist/themes.mjs","../../../../node_modules/@shikijs/core/dist/types.mjs","../../../src/nile-highlighter/nile-highlighter.ts"],"sourcesContent":["import { FontStyle } from './types.mjs';\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n({\n InDebugMode: (typeof process !== 'undefined' && !!process.env['VSCODE_TEXTMATE_DEBUG'])\n});\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nvar EncodedTokenAttributes;\n(function (EncodedTokenAttributes) {\n function toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n EncodedTokenAttributes.toBinaryStr = toBinaryStr;\n function print(encodedTokenAttributes) {\n const languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n const tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n const fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n const foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n const background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n console.log({\n languageId: languageId,\n tokenType: tokenType,\n fontStyle: fontStyle,\n foreground: foreground,\n background: background,\n });\n }\n EncodedTokenAttributes.print = print;\n function getLanguageId(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 255 /* EncodedTokenDataConsts.LANGUAGEID_MASK */) >>>\n 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */);\n }\n EncodedTokenAttributes.getLanguageId = getLanguageId;\n function getTokenType(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 768 /* EncodedTokenDataConsts.TOKEN_TYPE_MASK */) >>>\n 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */);\n }\n EncodedTokenAttributes.getTokenType = getTokenType;\n function containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* EncodedTokenDataConsts.BALANCED_BRACKETS_MASK */) !== 0;\n }\n EncodedTokenAttributes.containsBalancedBrackets = containsBalancedBrackets;\n function getFontStyle(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 30720 /* EncodedTokenDataConsts.FONT_STYLE_MASK */) >>>\n 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */);\n }\n EncodedTokenAttributes.getFontStyle = getFontStyle;\n function getForeground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 16744448 /* EncodedTokenDataConsts.FOREGROUND_MASK */) >>>\n 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getForeground = getForeground;\n function getBackground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 4278190080 /* EncodedTokenDataConsts.BACKGROUND_MASK */) >>>\n 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getBackground = getBackground;\n /**\n * Updates the fields in `metadata`.\n * A value of `0`, `NotSet` or `null` indicates that the corresponding field should be left as is.\n */\n function set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n let _tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = EncodedTokenAttributes.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n let _foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n let _background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* OptionalStandardTokenType.NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* FontStyle.NotSet */) {\n _fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n _foreground = foreground;\n }\n if (background !== 0) {\n _background = background;\n }\n return (((_languageId << 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */) |\n (_tokenType << 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */) |\n (_containsBalancedBracketsBit <<\n 10 /* EncodedTokenDataConsts.BALANCED_BRACKETS_OFFSET */) |\n (_fontStyle << 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */) |\n (_foreground << 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */) |\n (_background << 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */)) >>>\n 0);\n }\n EncodedTokenAttributes.set = set;\n})(EncodedTokenAttributes || (EncodedTokenAttributes = {}));\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createMatchers(selector, matchesName) {\n const results = [];\n const tokenizer = newTokenizer(selector);\n let token = tokenizer.next();\n while (token !== null) {\n let priority = 0;\n if (token.length === 2 && token.charAt(1) === ':') {\n switch (token.charAt(0)) {\n case 'R':\n priority = 1;\n break;\n case 'L':\n priority = -1;\n break;\n default:\n console.log(`Unknown priority ${token} in scope selector`);\n }\n token = tokenizer.next();\n }\n let matcher = parseConjunction();\n results.push({ matcher, priority });\n if (token !== ',') {\n break;\n }\n token = tokenizer.next();\n }\n return results;\n function parseOperand() {\n if (token === '-') {\n token = tokenizer.next();\n const expressionToNegate = parseOperand();\n return matcherInput => !!expressionToNegate && !expressionToNegate(matcherInput);\n }\n if (token === '(') {\n token = tokenizer.next();\n const expressionInParents = parseInnerExpression();\n if (token === ')') {\n token = tokenizer.next();\n }\n return expressionInParents;\n }\n if (isIdentifier(token)) {\n const identifiers = [];\n do {\n identifiers.push(token);\n token = tokenizer.next();\n } while (isIdentifier(token));\n return matcherInput => matchesName(identifiers, matcherInput);\n }\n return null;\n }\n function parseConjunction() {\n const matchers = [];\n let matcher = parseOperand();\n while (matcher) {\n matchers.push(matcher);\n matcher = parseOperand();\n }\n return matcherInput => matchers.every(matcher => matcher(matcherInput)); // and\n }\n function parseInnerExpression() {\n const matchers = [];\n let matcher = parseConjunction();\n while (matcher) {\n matchers.push(matcher);\n if (token === '|' || token === ',') {\n do {\n token = tokenizer.next();\n } while (token === '|' || token === ','); // ignore subsequent commas\n }\n else {\n break;\n }\n matcher = parseConjunction();\n }\n return matcherInput => matchers.some(matcher => matcher(matcherInput)); // or\n }\n}\nfunction isIdentifier(token) {\n return !!token && !!token.match(/[\\w\\.:]+/);\n}\nfunction newTokenizer(input) {\n let regex = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g;\n let match = regex.exec(input);\n return {\n next: () => {\n if (!match) {\n return null;\n }\n const res = match[0];\n match = regex.exec(input);\n return res;\n }\n };\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction disposeOnigString(str) {\n if (typeof str.dispose === 'function') {\n str.dispose();\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction clone(something) {\n return doClone(something);\n}\nfunction doClone(something) {\n if (Array.isArray(something)) {\n return cloneArray(something);\n }\n if (typeof something === 'object') {\n return cloneObj(something);\n }\n return something;\n}\nfunction cloneArray(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = doClone(arr[i]);\n }\n return r;\n}\nfunction cloneObj(obj) {\n let r = {};\n for (let key in obj) {\n r[key] = doClone(obj[key]);\n }\n return r;\n}\nfunction mergeObjects(target, ...sources) {\n sources.forEach(source => {\n for (let key in source) {\n target[key] = source[key];\n }\n });\n return target;\n}\nfunction basename(path) {\n const idx = ~path.lastIndexOf('/') || ~path.lastIndexOf('\\\\');\n if (idx === 0) {\n return path;\n }\n else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n }\n else {\n return path.substr(~idx + 1);\n }\n}\nlet CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nclass RegexSource {\n static hasCaptures(regexSource) {\n if (regexSource === null) {\n return false;\n }\n CAPTURING_REGEX_SOURCE.lastIndex = 0;\n return CAPTURING_REGEX_SOURCE.test(regexSource);\n }\n static replaceCaptures(regexSource, captureSource, captureIndices) {\n return regexSource.replace(CAPTURING_REGEX_SOURCE, (match, index, commandIndex, command) => {\n let capture = captureIndices[parseInt(index || commandIndex, 10)];\n if (capture) {\n let result = captureSource.substring(capture.start, capture.end);\n // Remove leading dots that would make the selector invalid\n while (result[0] === '.') {\n result = result.substring(1);\n }\n switch (command) {\n case 'downcase':\n return result.toLowerCase();\n case 'upcase':\n return result.toUpperCase();\n default:\n return result;\n }\n }\n else {\n return match;\n }\n });\n }\n}\nfunction strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nfunction strArrCmp(a, b) {\n if (a === null && b === null) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n let len1 = a.length;\n let len2 = b.length;\n if (len1 === len2) {\n for (let i = 0; i < len1; i++) {\n let res = strcmp(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n }\n return len1 - len2;\n}\nfunction isValidHexColor(hex) {\n if (/^#[0-9a-f]{6}$/i.test(hex)) {\n // #rrggbb\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n // #rrggbbaa\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n // #rgb\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n // #rgba\n return true;\n }\n return false;\n}\n/**\n * Escapes regular expression characters in a given string\n */\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&');\n}\nclass CachedFn {\n fn;\n cache = new Map();\n constructor(fn) {\n this.fn = fn;\n }\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const value = this.fn(key);\n this.cache.set(key, value);\n return value;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * References the top level rule of a grammar with the given scope name.\n*/\nclass TopLevelRuleReference {\n scopeName;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n}\n/**\n * References a rule of a grammar in the top level repository section with the given name.\n*/\nclass TopLevelRepositoryRuleReference {\n scopeName;\n ruleName;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n}\nclass ExternalReferenceCollector {\n _references = [];\n _seenReferenceKeys = new Set();\n get references() {\n return this._references;\n }\n visitedRule = new Set();\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n}\nclass ScopeDependencyProcessor {\n repo;\n initialScopeName;\n seenFullScopeRequests = new Set();\n seenPartialScopeRequests = new Set();\n Q;\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n processQueue() {\n const q = this.Q;\n this.Q = [];\n const deps = new ExternalReferenceCollector();\n for (const dep of q) {\n collectReferencesOfReference(dep, this.initialScopeName, this.repo, deps);\n }\n for (const dep of deps.references) {\n if (dep instanceof TopLevelRuleReference) {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n }\n else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed in full\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n // already processed\n continue;\n }\n this.seenPartialScopeRequests.add(dep.toKey());\n this.Q.push(dep);\n }\n }\n }\n}\nfunction collectReferencesOfReference(reference, baseGrammarScopeName, repo, result) {\n const selfGrammar = repo.lookup(reference.scopeName);\n if (!selfGrammar) {\n if (reference.scopeName === baseGrammarScopeName) {\n throw new Error(`No grammar provided for <${baseGrammarScopeName}>`);\n }\n return;\n }\n const baseGrammar = repo.lookup(baseGrammarScopeName);\n if (reference instanceof TopLevelRuleReference) {\n collectExternalReferencesInTopLevelRule({ baseGrammar, selfGrammar }, result);\n }\n else {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { baseGrammar, selfGrammar, repository: selfGrammar.repository }, result);\n }\n const injections = repo.injections(reference.scopeName);\n if (injections) {\n for (const injection of injections) {\n result.add(new TopLevelRuleReference(injection));\n }\n }\n}\nfunction collectExternalReferencesInTopLevelRepositoryRule(ruleName, context, result) {\n if (context.repository && context.repository[ruleName]) {\n const rule = context.repository[ruleName];\n collectExternalReferencesInRules([rule], context, result);\n }\n}\nfunction collectExternalReferencesInTopLevelRule(context, result) {\n if (context.selfGrammar.patterns && Array.isArray(context.selfGrammar.patterns)) {\n collectExternalReferencesInRules(context.selfGrammar.patterns, { ...context, repository: context.selfGrammar.repository }, result);\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(Object.values(context.selfGrammar.injections), { ...context, repository: context.selfGrammar.repository }, result);\n }\n}\nfunction collectExternalReferencesInRules(rules, context, result) {\n for (const rule of rules) {\n if (result.visitedRule.has(rule)) {\n continue;\n }\n result.visitedRule.add(rule);\n const patternRepository = rule.repository ? mergeObjects({}, context.repository, rule.repository) : context.repository;\n if (Array.isArray(rule.patterns)) {\n collectExternalReferencesInRules(rule.patterns, { ...context, repository: patternRepository }, result);\n }\n const include = rule.include;\n if (!include) {\n continue;\n }\n const reference = parseInclude(include);\n switch (reference.kind) {\n case 0 /* IncludeReferenceKind.Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* IncludeReferenceKind.Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName\n ? context.selfGrammar\n : reference.scopeName === context.baseGrammar.scopeName\n ? context.baseGrammar\n : undefined;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n }\n else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n }\n else {\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n }\n else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nclass BaseReference {\n kind = 0 /* IncludeReferenceKind.Base */;\n}\nclass SelfReference {\n kind = 1 /* IncludeReferenceKind.Self */;\n}\nclass RelativeReference {\n ruleName;\n kind = 2 /* IncludeReferenceKind.RelativeReference */;\n constructor(ruleName) {\n this.ruleName = ruleName;\n }\n}\nclass TopLevelReference {\n scopeName;\n kind = 3 /* IncludeReferenceKind.TopLevelReference */;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n}\nclass TopLevelRepositoryReference {\n scopeName;\n ruleName;\n kind = 4 /* IncludeReferenceKind.TopLevelRepositoryReference */;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n}\nfunction parseInclude(include) {\n if (include === '$base') {\n return new BaseReference();\n }\n else if (include === '$self') {\n return new SelfReference();\n }\n const indexOfSharp = include.indexOf(\"#\");\n if (indexOfSharp === -1) {\n return new TopLevelReference(include);\n }\n else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n }\n else {\n const scopeName = include.substring(0, indexOfSharp);\n const ruleName = include.substring(indexOfSharp + 1);\n return new TopLevelRepositoryReference(scopeName, ruleName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nconst HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nconst BACK_REFERENCING_END = /\\\\(\\d+)/g;\n// This is a special constant to indicate that the end regexp matched.\nconst endRuleId = -1;\n// This is a special constant to indicate that the while regexp matched.\nconst whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nclass Rule {\n $location;\n id;\n _nameIsCapturing;\n _name;\n _contentNameIsCapturing;\n _contentName;\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : 'unknown';\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n}\nclass CaptureRule extends Rule {\n retokenizeCapturedWithRuleId;\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n // nothing to dispose\n }\n collectPatterns(grammar, out) {\n throw new Error('Not supported!');\n }\n compile(grammar, endRegexSource) {\n throw new Error('Not supported!');\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n throw new Error('Not supported!');\n }\n}\nclass MatchRule extends Rule {\n _match;\n captures;\n _cachedCompiledPatterns;\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass IncludeOnlyRule extends Rule {\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginEndRule extends Rule {\n _begin;\n beginCaptures;\n _end;\n endHasBackReferences;\n endCaptures;\n applyEndPatternLast;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : '\\uFFFF', -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n else {\n this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n }\n if (this._end.hasBackReferences) {\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length() - 1, endRegexSource);\n }\n else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginWhileRule extends Rule {\n _begin;\n beginCaptures;\n whileCaptures;\n _while;\n whileHasBackReferences;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n _cachedCompiledWhilePatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : '\\uFFFF');\n }\n return this._cachedCompiledWhilePatterns;\n }\n}\nclass RuleFactory {\n static createCaptureRule(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {\n return helper.registerRule((id) => {\n return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);\n });\n }\n static getCompiledRuleId(desc, helper, repository) {\n if (!desc.id) {\n helper.registerRule((id) => {\n desc.id = id;\n if (desc.match) {\n return new MatchRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.match, RuleFactory._compileCaptures(desc.captures, helper, repository));\n }\n if (typeof desc.begin === 'undefined') {\n if (desc.repository) {\n repository = mergeObjects({}, repository, desc.repository);\n }\n let patterns = desc.patterns;\n if (typeof patterns === 'undefined' && desc.include) {\n patterns = [{ include: desc.include }];\n }\n return new IncludeOnlyRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, RuleFactory._compilePatterns(patterns, helper, repository));\n }\n if (desc.while) {\n return new BeginWhileRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.while, RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository), RuleFactory._compilePatterns(desc.patterns, helper, repository));\n }\n return new BeginEndRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.end, RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository), desc.applyEndPatternLast, RuleFactory._compilePatterns(desc.patterns, helper, repository));\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n // Find the maximum capture id\n let maximumCaptureId = 0;\n for (const captureId in captures) {\n if (captureId === '$vscodeTextmateLocation') {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n if (numericCaptureId > maximumCaptureId) {\n maximumCaptureId = numericCaptureId;\n }\n }\n // Initialize result\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n // Fill out result\n for (const captureId in captures) {\n if (captureId === '$vscodeTextmateLocation') {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n let retokenizeCapturedWithRuleId = 0;\n if (captures[captureId].patterns) {\n retokenizeCapturedWithRuleId = RuleFactory.getCompiledRuleId(captures[captureId], helper, repository);\n }\n r[numericCaptureId] = RuleFactory.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);\n }\n }\n return r;\n }\n static _compilePatterns(patterns, helper, repository) {\n let r = [];\n if (patterns) {\n for (let i = 0, len = patterns.length; i < len; i++) {\n const pattern = patterns[i];\n let ruleId = -1;\n if (pattern.include) {\n const reference = parseInclude(pattern.include);\n switch (reference.kind) {\n case 0 /* IncludeReferenceKind.Base */:\n case 1 /* IncludeReferenceKind.Self */:\n ruleId = RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n // Local include found in `repository`\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n }\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */\n ? reference.ruleName\n : null;\n // External include\n const externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);\n if (externalGrammar) {\n if (externalGrammarInclude) {\n let externalIncludedRule = externalGrammar.repository[externalGrammarInclude];\n if (externalIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);\n }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n }\n break;\n }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(pattern, helper, repository);\n }\n if (ruleId !== -1) {\n const rule = helper.getRule(ruleId);\n let skipRule = false;\n if (rule instanceof IncludeOnlyRule || rule instanceof BeginEndRule || rule instanceof BeginWhileRule) {\n if (rule.hasMissingPatterns && rule.patterns.length === 0) {\n skipRule = true;\n }\n }\n if (skipRule) {\n // console.log('REMOVING RULE ENTIRELY DUE TO EMPTY PATTERNS THAT ARE MISSING');\n continue;\n }\n r.push(ruleId);\n }\n }\n }\n return {\n patterns: r,\n hasMissingPatterns: ((patterns ? patterns.length : 0) !== r.length)\n };\n }\n}\nclass RegExpSource {\n source;\n ruleId;\n hasAnchor;\n hasBackReferences;\n _anchorCache;\n constructor(regExpSource, ruleId) {\n if (regExpSource) {\n const len = regExpSource.length;\n let lastPushedPos = 0;\n let output = [];\n let hasAnchor = false;\n for (let pos = 0; pos < len; pos++) {\n const ch = regExpSource.charAt(pos);\n if (ch === '\\\\') {\n if (pos + 1 < len) {\n const nextCh = regExpSource.charAt(pos + 1);\n if (nextCh === 'z') {\n output.push(regExpSource.substring(lastPushedPos, pos));\n output.push('$(?!\\\\n)(?<!\\\\n)');\n lastPushedPos = pos + 2;\n }\n else if (nextCh === 'A' || nextCh === 'G') {\n hasAnchor = true;\n }\n pos++;\n }\n }\n }\n this.hasAnchor = hasAnchor;\n if (lastPushedPos === 0) {\n // No \\z hit\n this.source = regExpSource;\n }\n else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join('');\n }\n }\n else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n // console.log('input: ' + regExpSource + ' => ' + this.source + ', ' + this.hasAnchor);\n }\n clone() {\n return new RegExpSource(this.source, this.ruleId);\n }\n setSource(newSource) {\n if (this.source === newSource) {\n return;\n }\n this.source = newSource;\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n }\n resolveBackReferences(lineText, captureIndices) {\n let capturedValues = captureIndices.map((capture) => {\n return lineText.substring(capture.start, capture.end);\n });\n BACK_REFERENCING_END.lastIndex = 0;\n return this.source.replace(BACK_REFERENCING_END, (match, g1) => {\n return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || '');\n });\n }\n _buildAnchorCache() {\n let A0_G0_result = [];\n let A0_G1_result = [];\n let A1_G0_result = [];\n let A1_G1_result = [];\n let pos, len, ch, nextCh;\n for (pos = 0, len = this.source.length; pos < len; pos++) {\n ch = this.source.charAt(pos);\n A0_G0_result[pos] = ch;\n A0_G1_result[pos] = ch;\n A1_G0_result[pos] = ch;\n A1_G1_result[pos] = ch;\n if (ch === '\\\\') {\n if (pos + 1 < len) {\n nextCh = this.source.charAt(pos + 1);\n if (nextCh === 'A') {\n A0_G0_result[pos + 1] = '\\uFFFF';\n A0_G1_result[pos + 1] = '\\uFFFF';\n A1_G0_result[pos + 1] = 'A';\n A1_G1_result[pos + 1] = 'A';\n }\n else if (nextCh === 'G') {\n A0_G0_result[pos + 1] = '\\uFFFF';\n A0_G1_result[pos + 1] = 'G';\n A1_G0_result[pos + 1] = '\\uFFFF';\n A1_G1_result[pos + 1] = 'G';\n }\n else {\n A0_G0_result[pos + 1] = nextCh;\n A0_G1_result[pos + 1] = nextCh;\n A1_G0_result[pos + 1] = nextCh;\n A1_G1_result[pos + 1] = nextCh;\n }\n pos++;\n }\n }\n }\n return {\n A0_G0: A0_G0_result.join(''),\n A0_G1: A0_G1_result.join(''),\n A1_G0: A1_G0_result.join(''),\n A1_G1: A1_G1_result.join('')\n };\n }\n resolveAnchors(allowA, allowG) {\n if (!this.hasAnchor || !this._anchorCache) {\n return this.source;\n }\n if (allowA) {\n if (allowG) {\n return this._anchorCache.A1_G1;\n }\n else {\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n }\n else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n}\nclass RegExpSourceList {\n _items;\n _hasAnchors;\n _cached;\n _anchorCache;\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n // bust the cache\n this._disposeCaches();\n this._items[index].setSource(newSource);\n }\n }\n compile(onigLib) {\n if (!this._cached) {\n let regExps = this._items.map(e => e.source);\n this._cached = new CompiledRule(onigLib, regExps, this._items.map(e => e.ruleId));\n }\n return this._cached;\n }\n compileAG(onigLib, allowA, allowG) {\n if (!this._hasAnchors) {\n return this.compile(onigLib);\n }\n else {\n if (allowA) {\n if (allowG) {\n if (!this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G1;\n }\n else {\n if (!this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n if (!this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G1;\n }\n else {\n if (!this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G0;\n }\n }\n }\n }\n _resolveAnchors(onigLib, allowA, allowG) {\n let regExps = this._items.map(e => e.resolveAnchors(allowA, allowG));\n return new CompiledRule(onigLib, regExps, this._items.map(e => e.ruleId));\n }\n}\nclass CompiledRule {\n regExps;\n rules;\n scanner;\n constructor(onigLib, regExps, rules) {\n this.regExps = regExps;\n this.rules = rules;\n this.scanner = onigLib.createOnigScanner(regExps);\n }\n dispose() {\n if (typeof this.scanner.dispose === \"function\") {\n this.scanner.dispose();\n }\n }\n toString() {\n const r = [];\n for (let i = 0, len = this.rules.length; i < len; i++) {\n r.push(\" - \" + this.rules[i] + \": \" + this.regExps[i]);\n }\n return r.join(\"\\n\");\n }\n findNextMatchSync(string, startPosition, options) {\n const result = this.scanner.findNextMatchSync(string, startPosition, options);\n if (!result) {\n return null;\n }\n return {\n ruleId: this.rules[result.index],\n captureIndices: result.captureIndices,\n };\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass Theme {\n _colorMap;\n _defaults;\n _root;\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n _cachedMatchRoot = new CachedFn((scopeName) => this._root.match(scopeName));\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\n }\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n getDefaults() {\n return this._defaults;\n }\n match(scopePath) {\n if (scopePath === null) {\n return this._defaults;\n }\n const scopeName = scopePath.scopeName;\n const matchingTrieElements = this._cachedMatchRoot.get(scopeName);\n const effectiveRule = matchingTrieElements.find((v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes));\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(effectiveRule.fontStyle, effectiveRule.foreground, effectiveRule.background);\n }\n}\nclass ScopeStack {\n parent;\n scopeName;\n static push(path, scopeNames) {\n for (const name of scopeNames) {\n path = new ScopeStack(path, name);\n }\n return path;\n }\n static from(...segments) {\n let result = null;\n for (let i = 0; i < segments.length; i++) {\n result = new ScopeStack(result, segments[i]);\n }\n return result;\n }\n constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\n }\n push(scopeName) {\n return new ScopeStack(this, scopeName);\n }\n getSegments() {\n let item = this;\n const result = [];\n while (item) {\n result.push(item.scopeName);\n item = item.parent;\n }\n result.reverse();\n return result;\n }\n toString() {\n return this.getSegments().join(' ');\n }\n extends(other) {\n if (this === other) {\n return true;\n }\n if (this.parent === null) {\n return false;\n }\n return this.parent.extends(other);\n }\n getExtensionIfDefined(base) {\n const result = [];\n let item = this;\n while (item && item !== base) {\n result.push(item.scopeName);\n item = item.parent;\n }\n return item === base ? result.reverse() : undefined;\n }\n}\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes === null) {\n return true;\n }\n let index = 0;\n let scopePattern = parentScopes[index];\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n index++;\n if (index === parentScopes.length) {\n return true;\n }\n scopePattern = parentScopes[index];\n }\n scopePath = scopePath.parent;\n }\n return false;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || (scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === '.');\n}\nclass StyleAttributes {\n fontStyle;\n foregroundId;\n backgroundId;\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n}\n/**\n * Parse a raw theme into rules.\n */\nfunction parseTheme(source) {\n if (!source) {\n return [];\n }\n if (!source.settings || !Array.isArray(source.settings)) {\n return [];\n }\n let settings = source.settings;\n let result = [], resultLen = 0;\n for (let i = 0, len = settings.length; i < len; i++) {\n let entry = settings[i];\n if (!entry.settings) {\n continue;\n }\n let scopes;\n if (typeof entry.scope === 'string') {\n let _scope = entry.scope;\n // remove leading commas\n _scope = _scope.replace(/^[,]+/, '');\n // remove trailing commans\n _scope = _scope.replace(/[,]+$/, '');\n scopes = _scope.split(',');\n }\n else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n }\n else {\n scopes = [''];\n }\n let fontStyle = -1 /* FontStyle.NotSet */;\n if (typeof entry.settings.fontStyle === 'string') {\n fontStyle = 0 /* FontStyle.None */;\n let segments = entry.settings.fontStyle.split(' ');\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n let segment = segments[j];\n switch (segment) {\n case 'italic':\n fontStyle = fontStyle | 1 /* FontStyle.Italic */;\n break;\n case 'bold':\n fontStyle = fontStyle | 2 /* FontStyle.Bold */;\n break;\n case 'underline':\n fontStyle = fontStyle | 4 /* FontStyle.Underline */;\n break;\n case 'strikethrough':\n fontStyle = fontStyle | 8 /* FontStyle.Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.settings.foreground === 'string' && isValidHexColor(entry.settings.foreground)) {\n foreground = entry.settings.foreground;\n }\n let background = null;\n if (typeof entry.settings.background === 'string' && isValidHexColor(entry.settings.background)) {\n background = entry.settings.background;\n }\n for (let j = 0, lenJ = scopes.length; j < lenJ; j++) {\n let _scope = scopes[j].trim();\n let segments = _scope.split(' ');\n let scope = segments[segments.length - 1];\n let parentScopes = null;\n if (segments.length > 1) {\n parentScopes = segments.slice(0, segments.length - 1);\n parentScopes.reverse();\n }\n result[resultLen++] = new ParsedThemeRule(scope, parentScopes, i, fontStyle, foreground, background);\n }\n }\n return result;\n}\nclass ParsedThemeRule {\n scope;\n parentScopes;\n index;\n fontStyle;\n foreground;\n background;\n constructor(scope, parentScopes, index, fontStyle, foreground, background) {\n this.scope = scope;\n this.parentScopes = parentScopes;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n}\n/**\n * Resolve rules (i.e. inheritance).\n */\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n // Sort rules lexicographically, and then by index if necessary\n parsedThemeRules.sort((a, b) => {\n let r = strcmp(a.scope, b.scope);\n if (r !== 0) {\n return r;\n }\n r = strArrCmp(a.parentScopes, b.parentScopes);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n // Determine defaults\n let defaultFontStyle = 0 /* FontStyle.None */;\n let defaultForeground = '#000000';\n let defaultBackground = '#ffffff';\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === '') {\n let incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* FontStyle.NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n let colorMap = new ColorMap(_colorMap);\n let defaults = new StyleAttributes(defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));\n let root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1 /* FontStyle.NotSet */, 0, 0), []);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n let rule = parsedThemeRules[i];\n root.insert(0, rule.scope, rule.parentScopes, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new Theme(colorMap, defaults, root);\n}\nclass ColorMap {\n _isFrozen;\n _lastColorId;\n _id2color;\n _color2id;\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = Object.create(null);\n if (Array.isArray(_colorMap)) {\n this._isFrozen = true;\n for (let i = 0, len = _colorMap.length; i < len; i++) {\n this._color2id[_colorMap[i]] = i;\n this._id2color[i] = _colorMap[i];\n }\n }\n else {\n this._isFrozen = false;\n }\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n color = color.toUpperCase();\n let value = this._color2id[color];\n if (value) {\n return value;\n }\n if (this._isFrozen) {\n throw new Error(`Missing color in color map - ${color}`);\n }\n value = ++this._lastColorId;\n this._color2id[color] = value;\n this._id2color[value] = color;\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n}\nclass ThemeTrieElementRule {\n scopeDepth;\n parentScopes;\n fontStyle;\n foreground;\n background;\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n clone() {\n return new ThemeTrieElementRule(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }\n static cloneArr(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = arr[i].clone();\n }\n return r;\n }\n acceptOverwrite(scopeDepth, fontStyle, foreground, background) {\n if (this.scopeDepth > scopeDepth) {\n console.log('how did this happen?');\n }\n else {\n this.scopeDepth = scopeDepth;\n }\n // console.log('TODO -> my depth: ' + this.scopeDepth + ', overwriting depth: ' + scopeDepth);\n if (fontStyle !== -1 /* FontStyle.NotSet */) {\n this.fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n this.foreground = foreground;\n }\n if (background !== 0) {\n this.background = background;\n }\n }\n}\nclass ThemeTrieElement {\n _mainRule;\n _children;\n _rulesWithParentScopes;\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n static _sortBySpecificity(arr) {\n if (arr.length === 1) {\n return arr;\n }\n arr.sort(this._cmpBySpecificity);\n return arr;\n }\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth === b.scopeDepth) {\n const aParentScopes = a.parentScopes;\n const bParentScopes = b.parentScopes;\n let aParentScopesLen = aParentScopes === null ? 0 : aParentScopes.length;\n let bParentScopesLen = bParentScopes === null ? 0 : bParentScopes.length;\n if (aParentScopesLen === bParentScopesLen) {\n for (let i = 0; i < aParentScopesLen; i++) {\n const aLen = aParentScopes[i].length;\n const bLen = bParentScopes[i].length;\n if (aLen !== bLen) {\n return bLen - aLen;\n }\n }\n }\n return bParentScopesLen - aParentScopesLen;\n }\n return b.scopeDepth - a.scopeDepth;\n }\n match(scope) {\n if (scope === '') {\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\n else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n if (this._children.hasOwnProperty(head)) {\n return this._children[head].match(tail);\n }\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n insert(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {\n if (scope === '') {\n this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);\n return;\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\n else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n let child;\n if (this._children.hasOwnProperty(head)) {\n child = this._children[head];\n }\n else {\n child = new ThemeTrieElement(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));\n this._children[head] = child;\n }\n child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);\n }\n _doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background) {\n if (parentScopes === null) {\n // Merge into the main rule\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n // Try to merge into existing rule\n for (let i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {\n let rule = this._rulesWithParentScopes[i];\n if (strArrCmp(rule.parentScopes, parentScopes) === 0) {\n // bingo! => we get to merge this into an existing one\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n // Must add a new rule\n // Inherit from main rule\n if (fontStyle === -1 /* FontStyle.NotSet */) {\n fontStyle = this._mainRule.fontStyle;\n }\n if (foreground === 0) {\n foreground = this._mainRule.foreground;\n }\n if (background === 0) {\n background = this._mainRule.background;\n }\n this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass BasicScopeAttributes {\n languageId;\n tokenType;\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n}\nclass BasicScopeAttributesProvider {\n _defaultAttributes;\n _embeddedLanguagesMatcher;\n constructor(initialLanguageId, embeddedLanguages) {\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* OptionalStandardTokenType.NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n static _NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n _getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* OptionalStandardTokenType.NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* OptionalStandardTokenType.Comment */;\n case \"string\":\n return 2 /* OptionalStandardTokenType.String */;\n case \"regex\":\n return 3 /* OptionalStandardTokenType.RegEx */;\n case \"meta.embedded\":\n return 0 /* OptionalStandardTokenType.Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n static STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\n}\nclass ScopeMatcher {\n values;\n scopesRegExp;\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n }\n else {\n this.values = new Map(values);\n // create the regex\n const escapedScopes = values.map(([scopeName, value]) => escapeRegExpCharacters(scopeName));\n escapedScopes.sort();\n escapedScopes.reverse(); // Longest scope first\n this.scopesRegExp = new RegExp(`^((${escapedScopes.join(\")|(\")}))($|\\\\.)`, \"\");\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return undefined;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n // no scopes matched\n return undefined;\n }\n return this.values.get(m[1]);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass TokenizeStringResult {\n stack;\n stoppedEarly;\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n}\n/**\n * Tokenize a string\n * @param grammar\n * @param lineText\n * @param isFirstLine\n * @param linePos\n * @param stack\n * @param lineTokens\n * @param checkWhileConditions\n * @param timeLimit Use `0` to indicate no time limit\n * @returns the StackElement or StackElement.TIME_LIMIT_REACHED if the time limit has been reached\n */\nfunction _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTokens, checkWhileConditions, timeLimit) {\n const lineLength = lineText.content.length;\n let STOP = false;\n let anchorPosition = -1;\n if (checkWhileConditions) {\n const whileCheckResult = _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens);\n stack = whileCheckResult.stack;\n linePos = whileCheckResult.linePos;\n isFirstLine = whileCheckResult.isFirstLine;\n anchorPosition = whileCheckResult.anchorPosition;\n }\n const startTime = Date.now();\n while (!STOP) {\n if (timeLimit !== 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime > timeLimit) {\n return new TokenizeStringResult(stack, true);\n }\n }\n scanNext(); // potentially modifies linePos && anchorPosition\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n const r = matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!r) {\n // No match\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n const captureIndices = r.captureIndices;\n const matchedRuleId = r.matchedRuleId;\n const hasAdvanced = captureIndices && captureIndices.length > 0\n ? captureIndices[0].end > linePos\n : false;\n if (matchedRuleId === endRuleId) {\n // We matched the `end` for this rule => pop it\n const poppedRule = stack.getRule(grammar);\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, poppedRule.endCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n // See https://github.com/Microsoft/vscode-textmate/issues/12\n // Let's assume this was a mistake by the grammar author and the intent was to continue in this state\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n // We matched a rule!\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n // push it on the stack rule\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n stack = stack.push(matchedRuleId, linePos, anchorPosition, captureIndices[0].end === lineLength, null, nameScopesList, nameScopesList);\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getEndWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getWhileWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n const matchingRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, matchingRule.captures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop rule immediately since it is a MatchRule\n stack = stack.pop();\n if (!hasAdvanced) {\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n // Advance stream\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\n/**\n * Walk the stack from bottom to top, and check each while condition in this order.\n * If any fails, cut off the entire stack above the failed while condition. While conditions\n * may also advance the linePosition.\n */\nfunction _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens) {\n let anchorPosition = (stack.beginRuleCapturedEOL ? 0 : -1);\n const whileRules = [];\n for (let node = stack; node; node = node.pop()) {\n const nodeRule = node.getRule(grammar);\n if (nodeRule instanceof BeginWhileRule) {\n whileRules.push({\n rule: nodeRule,\n stack: node\n });\n }\n }\n for (let whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {\n const { ruleScanner, findOptions } = prepareRuleWhileSearch(whileRule.rule, grammar, whileRule.stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n // we shouldn't end up here\n stack = whileRule.stack.pop();\n break;\n }\n if (r.captureIndices && r.captureIndices.length) {\n lineTokens.produce(whileRule.stack, r.captureIndices[0].start);\n handleCaptures(grammar, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);\n lineTokens.produce(whileRule.stack, r.captureIndices[0].end);\n anchorPosition = r.captureIndices[0].end;\n if (r.captureIndices[0].end > linePos) {\n linePos = r.captureIndices[0].end;\n isFirstLine = false;\n }\n }\n }\n else {\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack: stack, linePos: linePos, anchorPosition: anchorPosition, isFirstLine: isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // Look for normal grammar rule\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n // Look for injected rules\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n // No injections whatsoever => early return\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n // No injections matched => early return\n return matchResult;\n }\n if (!matchResult) {\n // Only injections matched => early return\n return injectionResult;\n }\n // Decide if `matchResult` or `injectionResult` should win\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || (injectionResult.priorityMatch && injectionResultScore === matchResultScore)) {\n // injection won!\n return injectionResult;\n }\n return matchResult;\n}\nfunction matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const rule = stack.getRule(grammar);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n return {\n captureIndices: r.captureIndices,\n matchedRuleId: r.ruleId\n };\n }\n return null;\n}\nfunction matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // The lower the better\n let bestMatchRating = Number.MAX_VALUE;\n let bestMatchCaptureIndices = null;\n let bestMatchRuleId;\n let bestMatchResultPriority = 0;\n const scopes = stack.contentNameScopesList.getScopeNames();\n for (let i = 0, len = injections.length; i < len; i++) {\n const injection = injections[i];\n if (!injection.matcher(scopes)) {\n // injection selector doesn't match stack\n continue;\n }\n const rule = grammar.getRule(injection.ruleId);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, null, isFirstLine, linePos === anchorPosition);\n const matchResult = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (!matchResult) {\n continue;\n }\n const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n // Injections are sorted by priority, so the previous injection had a better or equal priority\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n // No more need to look at the rest of the injections.\n break;\n }\n }\n if (bestMatchCaptureIndices) {\n return {\n priorityMatch: bestMatchResultPriority === -1,\n captureIndices: bestMatchCaptureIndices,\n matchedRuleId: bestMatchRuleId\n };\n }\n return null;\n}\nfunction prepareRuleSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {\n if (captures.length === 0) {\n return;\n }\n const lineTextContent = lineText.content;\n const len = Math.min(captures.length, captureIndices.length);\n const localStack = [];\n const maxEnd = captureIndices[0].end;\n for (let i = 0; i < len; i++) {\n const captureRule = captures[i];\n if (captureRule === null) {\n // Not interested\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n // Nothing really captured\n continue;\n }\n if (captureIndex.start > maxEnd) {\n // Capture going beyond consumed string\n break;\n }\n // pop captures while needed\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n if (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);\n }\n else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n // the capture requires additional matching\n const scopeName = captureRule.getName(lineTextContent, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n const contentName = captureRule.getContentName(lineTextContent, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n const stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, -1, false, null, nameScopesList, contentNameScopesList);\n const onigSubStr = grammar.createOnigString(lineTextContent.substring(0, captureIndex.end));\n _tokenizeString(grammar, onigSubStr, (isFirstLine && captureIndex.start === 0), captureIndex.start, stackClone, lineTokens, false, /* no time limit */ 0);\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n // push\n const base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;\n const captureRuleScopesList = base.pushAttributed(captureRuleScopeName, grammar);\n localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));\n }\n }\n while (localStack.length > 0) {\n // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nclass LocalStackElement {\n scopes;\n endPos;\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib); //TODO\n}\nfunction collectInjections(result, selector, rule, ruleFactoryHelper, grammar) {\n const matchers = createMatchers(selector, nameMatcher);\n const ruleId = RuleFactory.getCompiledRuleId(rule, ruleFactoryHelper, grammar.repository);\n for (const matcher of matchers) {\n result.push({\n debugSelector: selector,\n matcher: matcher.matcher,\n ruleId: ruleId,\n grammar: grammar,\n priority: matcher.priority\n });\n }\n}\nfunction nameMatcher(identifers, scopes) {\n if (scopes.length < identifers.length) {\n return false;\n }\n let lastIndex = 0;\n return identifers.every(identifier => {\n for (let i = lastIndex; i < scopes.length; i++) {\n if (scopesAreMatching(scopes[i], identifier)) {\n lastIndex = i + 1;\n return true;\n }\n }\n return false;\n });\n}\nfunction scopesAreMatching(thisScopeName, scopeName) {\n if (!thisScopeName) {\n return false;\n }\n if (thisScopeName === scopeName) {\n return true;\n }\n const len = scopeName.length;\n return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === '.';\n}\nclass Grammar {\n _rootScopeName;\n balancedBracketSelectors;\n _onigLib;\n _rootId;\n _lastRuleId;\n _ruleId2desc;\n _includedGrammars;\n _grammarRepository;\n _grammar;\n _injections;\n _basicScopeAttributesProvider;\n _tokenTypeMatchers;\n get themeProvider() { return this._grammarRepository; }\n constructor(_rootScopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, _onigLib) {\n this._rootScopeName = _rootScopeName;\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._onigLib = _onigLib;\n this._basicScopeAttributesProvider = new BasicScopeAttributesProvider(initialLanguage, embeddedLanguages);\n this._rootId = -1;\n this._lastRuleId = 0;\n this._ruleId2desc = [null];\n this._includedGrammars = {};\n this._grammarRepository = grammarRepository;\n this._grammar = initGrammar(grammar, null);\n this._injections = null;\n this._tokenTypeMatchers = [];\n if (tokenTypes) {\n for (const selector of Object.keys(tokenTypes)) {\n const matchers = createMatchers(selector, nameMatcher);\n for (const matcher of matchers) {\n this._tokenTypeMatchers.push({\n matcher: matcher.matcher,\n type: tokenTypes[selector],\n });\n }\n }\n }\n }\n dispose() {\n for (const rule of this._ruleId2desc) {\n if (rule) {\n rule.dispose();\n }\n }\n }\n createOnigScanner(sources) {\n return this._onigLib.createOnigScanner(sources);\n }\n createOnigString(sources) {\n return this._onigLib.createOnigString(sources);\n }\n getMetadataForScope(scope) {\n return this._basicScopeAttributesProvider.getBasicScopeAttributes(scope);\n }\n _collectInjections() {\n const grammarRepository = {\n lookup: (scopeName) => {\n if (scopeName === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName);\n },\n injections: (scopeName) => {\n return this._grammarRepository.injections(scopeName);\n },\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n // add injections from the current grammar\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(result, expression, rawInjections[expression], this, grammar);\n }\n }\n // add injection grammars contributed for the current scope\n const injectionScopeNames = this._grammarRepository.injections(scopeName);\n if (injectionScopeNames) {\n injectionScopeNames.forEach((injectionScopeName) => {\n const injectionGrammar = this.getExternalGrammar(injectionScopeName);\n if (injectionGrammar) {\n const selector = injectionGrammar.injectionSelector;\n if (selector) {\n collectInjections(result, selector, injectionGrammar, this, injectionGrammar);\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority); // sort by priority\n return result;\n }\n getInjections() {\n if (this._injections === null) {\n this._injections = this._collectInjections();\n }\n return this._injections;\n }\n registerRule(factory) {\n const id = ++this._lastRuleId;\n const result = factory(ruleIdFromNumber(id));\n this._ruleId2desc[id] = result;\n return result;\n }\n getRule(ruleId) {\n return this._ruleId2desc[ruleIdToNumber(ruleId)];\n }\n getExternalGrammar(scopeName, repository) {\n if (this._includedGrammars[scopeName]) {\n return this._includedGrammars[scopeName];\n }\n else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n // console.log('LOADED GRAMMAR ' + pattern.include);\n this._includedGrammars[scopeName] = initGrammar(rawIncludedGrammar, repository && repository.$base);\n return this._includedGrammars[scopeName];\n }\n }\n return undefined;\n }\n tokenizeLine(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, false, timeLimit);\n return {\n tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n tokenizeLine2(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, true, timeLimit);\n return {\n tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n _tokenize(lineText, prevState, emitBinaryTokens, timeLimit) {\n if (this._rootId === -1) {\n this._rootId = RuleFactory.getCompiledRuleId(this._grammar.repository.$self, this, this._grammar.repository);\n // This ensures ids are deterministic, and thus equal in renderer and webworker.\n this.getInjections();\n }\n let isFirstLine;\n if (!prevState || prevState === StateStackImpl.NULL) {\n isFirstLine = true;\n const rawDefaultMetadata = this._basicScopeAttributesProvider.getDefaultAttributes();\n const defaultStyle = this.themeProvider.getDefaults();\n const defaultMetadata = EncodedTokenAttributes.set(0, rawDefaultMetadata.languageId, rawDefaultMetadata.tokenType, null, defaultStyle.fontStyle, defaultStyle.foregroundId, defaultStyle.backgroundId);\n const rootScopeName = this.getRule(this._rootId).getName(null, null);\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(rootScopeName, defaultMetadata, this);\n }\n else {\n scopeList = AttributedScopeStack.createRoot(\"unknown\", defaultMetadata);\n }\n prevState = new StateStackImpl(null, this._rootId, -1, -1, false, null, scopeList, scopeList);\n }\n else {\n isFirstLine = false;\n prevState.reset();\n }\n lineText = lineText + \"\\n\";\n const onigLineText = this.createOnigString(lineText);\n const lineLength = onigLineText.content.length;\n const lineTokens = new LineTokens(emitBinaryTokens, lineText, this._tokenTypeMatchers, this.balancedBracketSelectors);\n const r = _tokenizeString(this, onigLineText, isFirstLine, 0, prevState, lineTokens, true, timeLimit);\n disposeOnigString(onigLineText);\n return {\n lineLength: lineLength,\n lineTokens: lineTokens,\n ruleStack: r.stack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n}\nfunction initGrammar(grammar, base) {\n grammar = clone(grammar);\n grammar.repository = grammar.repository || {};\n grammar.repository.$self = {\n $vscodeTextmateLocation: grammar.$vscodeTextmateLocation,\n patterns: grammar.patterns,\n name: grammar.scopeName\n };\n grammar.repository.$base = base || grammar.repository.$self;\n return grammar;\n}\nclass AttributedScopeStack {\n parent;\n scopePath;\n tokenAttributes;\n static fromExtension(namesScopeList, contentNameScopesList) {\n let current = namesScopeList;\n let scopeNames = namesScopeList?.scopePath ?? null;\n for (const frame of contentNameScopesList) {\n scopeNames = ScopeStack.push(scopeNames, frame.scopeNames);\n current = new AttributedScopeStack(current, scopeNames, frame.encodedTokenAttributes);\n }\n return current;\n }\n static createRoot(scopeName, tokenAttributes) {\n return new AttributedScopeStack(null, new ScopeStack(null, scopeName), tokenAttributes);\n }\n static createRootAndLookUpScopeName(scopeName, tokenAttributes, grammar) {\n const rawRootMetadata = grammar.getMetadataForScope(scopeName);\n const scopePath = new ScopeStack(null, scopeName);\n const rootStyle = grammar.themeProvider.themeMatch(scopePath);\n const resolvedTokenAttributes = AttributedScopeStack.mergeAttributes(tokenAttributes, rawRootMetadata, rootStyle);\n return new AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() { return this.scopePath.scopeName; }\n /**\n * Invariant:\n * ```\n * if (parent && !scopePath.extends(parent.scopePath)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, scopePath, tokenAttributes) {\n this.parent = parent;\n this.scopePath = scopePath;\n this.tokenAttributes = tokenAttributes;\n }\n toString() {\n return this.getScopeNames().join(' ');\n }\n equals(other) {\n return AttributedScopeStack.equals(this, other);\n }\n static equals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* FontStyle.NotSet */;\n let foreground = 0;\n let background = 0;\n if (styleAttributes !== null) {\n fontStyle = styleAttributes.fontStyle;\n foreground = styleAttributes.foregroundId;\n background = styleAttributes.backgroundId;\n }\n return EncodedTokenAttributes.set(existingTokenAttributes, basicScopeAttributes.languageId, basicScopeAttributes.tokenType, null, fontStyle, foreground, background);\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(' ') === -1) {\n // This is the common case and much faster\n return AttributedScopeStack._pushAttributed(this, scopePath, grammar);\n }\n const scopes = scopePath.split(/ /g);\n let result = this;\n for (const scope of scopes) {\n result = AttributedScopeStack._pushAttributed(result, scope, grammar);\n }\n return result;\n }\n static _pushAttributed(target, scopeName, grammar) {\n const rawMetadata = grammar.getMetadataForScope(scopeName);\n const newPath = target.scopePath.push(scopeName);\n const scopeThemeMatchResult = grammar.themeProvider.themeMatch(newPath);\n const metadata = AttributedScopeStack.mergeAttributes(target.tokenAttributes, rawMetadata, scopeThemeMatchResult);\n return new AttributedScopeStack(target, newPath, metadata);\n }\n getScopeNames() {\n return this.scopePath.getSegments();\n }\n getExtensionIfDefined(base) {\n const result = [];\n let self = this;\n while (self && self !== base) {\n result.push({\n encodedTokenAttributes: self.tokenAttributes,\n scopeNames: self.scopePath.getExtensionIfDefined(self.parent?.scopePath ?? null),\n });\n self = self.parent;\n }\n return self === base ? result.reverse() : undefined;\n }\n}\n/**\n * Represents a \"pushed\" state on the stack (as a linked list element).\n */\nclass StateStackImpl {\n parent;\n ruleId;\n beginRuleCapturedEOL;\n endRule;\n nameScopesList;\n contentNameScopesList;\n _stackElementBrand = undefined;\n // TODO remove me\n static NULL = new StateStackImpl(null, 0, 0, 0, false, null, null, null);\n /**\n * The position on the current line where this state was pushed.\n * This is relevant only while tokenizing a line, to detect endless loops.\n * Its value is meaningless across lines.\n */\n _enterPos;\n /**\n * The captured anchor position when this stack element was pushed.\n * This is relevant only while tokenizing a line, to restore the anchor position when popping.\n * Its value is meaningless across lines.\n */\n _anchorPos;\n /**\n * The depth of the stack.\n */\n depth;\n /**\n * Invariant:\n * ```\n * if (contentNameScopesList !== nameScopesList && contentNameScopesList?.parent !== nameScopesList) {\n * \tthrow new Error();\n * }\n * if (this.parent && !nameScopesList.extends(this.parent.contentNameScopesList)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(\n /**\n * The previous state on the stack (or null for the root state).\n */\n parent, \n /**\n * The state (rule) that this element represents.\n */\n ruleId, enterPos, anchorPos, \n /**\n * The state has entered and captured \\n. This means that the next line should have an anchorPosition of 0.\n */\n beginRuleCapturedEOL, \n /**\n * The \"pop\" (end) condition for this state in case that it was dynamically generated through captured text.\n */\n endRule, \n /**\n * The list of scopes containing the \"name\" for this state.\n */\n nameScopesList, \n /**\n * The list of scopes containing the \"contentName\" (besides \"name\") for this state.\n * This list **must** contain as an element `scopeName`.\n */\n contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n equals(other) {\n if (other === null) {\n return false;\n }\n return StateStackImpl._equals(this, other);\n }\n static _equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!this._structuralEquals(a, b)) {\n return false;\n }\n return AttributedScopeStack.equals(a.contentNameScopesList, b.contentNameScopesList);\n }\n /**\n * A structural equals check. Does not take into account `scopes`.\n */\n static _structuralEquals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.depth !== b.depth ||\n a.ruleId !== b.ruleId ||\n a.endRule !== b.endRule) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n clone() {\n return this;\n }\n static _reset(el) {\n while (el) {\n el._enterPos = -1;\n el._anchorPos = -1;\n el = el.parent;\n }\n }\n reset() {\n StateStackImpl._reset(this);\n }\n pop() {\n return this.parent;\n }\n safePop() {\n if (this.parent) {\n return this.parent;\n }\n return this;\n }\n push(ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n return new StateStackImpl(this, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList);\n }\n getEnterPos() {\n return this._enterPos;\n }\n getAnchorPos() {\n return this._anchorPos;\n }\n getRule(grammar) {\n return grammar.getRule(this.ruleId);\n }\n toString() {\n const r = [];\n this._writeString(r, 0);\n return \"[\" + r.join(\",\") + \"]\";\n }\n _writeString(res, outIndex) {\n if (this.parent) {\n outIndex = this.parent._writeString(res, outIndex);\n }\n res[outIndex++] = `(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`;\n return outIndex;\n }\n withContentNameScopesList(contentNameScopeStack) {\n if (this.contentNameScopesList === contentNameScopeStack) {\n return this;\n }\n return this.parent.push(this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, this.endRule, this.nameScopesList, contentNameScopeStack);\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new StateStackImpl(this.parent, this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, endRule, this.nameScopesList, this.contentNameScopesList);\n }\n // Used to warn of endless loops\n hasSameRuleAs(other) {\n let el = this;\n while (el && el._enterPos === other._enterPos) {\n if (el.ruleId === other.ruleId) {\n return true;\n }\n el = el.parent;\n }\n return false;\n }\n toStateStackFrame() {\n return {\n ruleId: ruleIdToNumber(this.ruleId),\n beginRuleCapturedEOL: this.beginRuleCapturedEOL,\n endRule: this.endRule,\n nameScopesList: this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList ?? null) ?? [],\n contentNameScopesList: this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList) ?? [],\n };\n }\n static pushFrame(self, frame) {\n const namesScopeList = AttributedScopeStack.fromExtension(self?.nameScopesList ?? null, frame.nameScopesList);\n return new StateStackImpl(self, ruleIdFromNumber(frame.ruleId), frame.enterPos ?? -1, frame.anchorPos ?? -1, frame.beginRuleCapturedEOL, frame.endRule, namesScopeList, AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList));\n }\n}\nclass BalancedBracketSelectors {\n balancedBracketScopes;\n unbalancedBracketScopes;\n allowAny = false;\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.balancedBracketScopes = balancedBracketScopes.flatMap((selector) => {\n if (selector === '*') {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n });\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap((selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher));\n }\n get matchesAlways() {\n return this.allowAny && this.unbalancedBracketScopes.length === 0;\n }\n get matchesNever() {\n return this.balancedBracketScopes.length === 0 && !this.allowAny;\n }\n match(scopes) {\n for (const excluder of this.unbalancedBracketScopes) {\n if (excluder(scopes)) {\n return false;\n }\n }\n for (const includer of this.balancedBracketScopes) {\n if (includer(scopes)) {\n return true;\n }\n }\n return this.allowAny;\n }\n}\nclass LineTokens {\n balancedBracketSelectors;\n _emitBinaryTokens;\n /**\n * defined only if `false`.\n */\n _lineText;\n /**\n * used only if `_emitBinaryTokens` is false.\n */\n _tokens;\n /**\n * used only if `_emitBinaryTokens` is true.\n */\n _binaryTokens;\n _lastTokenEndIndex;\n _tokenTypeOverrides;\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n {\n this._lineText = null;\n }\n this._tokens = [];\n this._binaryTokens = [];\n this._lastTokenEndIndex = 0;\n }\n produce(stack, endIndex) {\n this.produceFromScopes(stack.contentNameScopesList, endIndex);\n }\n produceFromScopes(scopesList, endIndex) {\n if (this._lastTokenEndIndex >= endIndex) {\n return;\n }\n if (this._emitBinaryTokens) {\n let metadata = scopesList?.tokenAttributes ?? 0;\n let containsBalancedBrackets = false;\n if (this.balancedBracketSelectors?.matchesAlways) {\n containsBalancedBrackets = true;\n }\n if (this._tokenTypeOverrides.length > 0 || (this.balancedBracketSelectors && !this.balancedBracketSelectors.matchesAlways && !this.balancedBracketSelectors.matchesNever)) {\n // Only generate scope array when required to improve performance\n const scopes = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes)) {\n metadata = EncodedTokenAttributes.set(metadata, 0, toOptionalTokenType(tokenType.type), null, -1 /* FontStyle.NotSet */, 0, 0);\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenAttributes.set(metadata, 0, 8 /* OptionalStandardTokenType.NotSet */, containsBalancedBrackets, -1 /* FontStyle.NotSet */, 0, 0);\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n // no need to push a token with the same metadata\n this._lastTokenEndIndex = endIndex;\n return;\n }\n this._binaryTokens.push(this._lastTokenEndIndex);\n this._binaryTokens.push(metadata);\n this._lastTokenEndIndex = endIndex;\n return;\n }\n const scopes = scopesList?.getScopeNames() ?? [];\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex: endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes: scopes\n });\n this._lastTokenEndIndex = endIndex;\n }\n getResult(stack, lineLength) {\n if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {\n // pop produced token for newline\n this._tokens.pop();\n }\n if (this._tokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._tokens[this._tokens.length - 1].startIndex = 0;\n }\n return this._tokens;\n }\n getBinaryResult(stack, lineLength) {\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {\n // pop produced token for newline\n this._binaryTokens.pop();\n this._binaryTokens.pop();\n }\n if (this._binaryTokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._binaryTokens[this._binaryTokens.length - 2] = 0;\n }\n const result = new Uint32Array(this._binaryTokens.length);\n for (let i = 0, len = this._binaryTokens.length; i < len; i++) {\n result[i] = this._binaryTokens[i];\n }\n return result;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass SyncRegistry {\n _onigLibPromise;\n _grammars = new Map();\n _rawGrammars = new Map();\n _injectionGrammars = new Map();\n _theme;\n constructor(theme, _onigLibPromise) {\n this._onigLibPromise = _onigLibPromise;\n this._theme = theme;\n }\n dispose() {\n for (const grammar of this._grammars.values()) {\n grammar.dispose();\n }\n }\n setTheme(theme) {\n this._theme = theme;\n }\n getColorMap() {\n return this._theme.getColorMap();\n }\n /**\n * Add `grammar` to registry and return a list of referenced scope names\n */\n addGrammar(grammar, injectionScopeNames) {\n this._rawGrammars.set(grammar.scopeName, grammar);\n if (injectionScopeNames) {\n this._injectionGrammars.set(grammar.scopeName, injectionScopeNames);\n }\n }\n /**\n * Lookup a raw grammar.\n */\n lookup(scopeName) {\n return this._rawGrammars.get(scopeName);\n }\n /**\n * Returns the injections for the given grammar\n */\n injections(targetScope) {\n return this._injectionGrammars.get(targetScope);\n }\n /**\n * Get the default theme settings\n */\n getDefaults() {\n return this._theme.getDefaults();\n }\n /**\n * Match a scope in the theme.\n */\n themeMatch(scopePath) {\n return this._theme.match(scopePath);\n }\n /**\n * Lookup a grammar.\n */\n async grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n if (!this._grammars.has(scopeName)) {\n let rawGrammar = this._rawGrammars.get(scopeName);\n if (!rawGrammar) {\n return null;\n }\n this._grammars.set(scopeName, createGrammar(scopeName, rawGrammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, this, await this._onigLibPromise));\n }\n return this._grammars.get(scopeName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * The registry that will hold all grammars.\n */\nlet Registry$1 = class Registry {\n _options;\n _syncRegistry;\n _ensureGrammarCache;\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(Theme.createFromRawTheme(options.theme, options.colorMap), options.onigLib);\n this._ensureGrammarCache = new Map();\n }\n dispose() {\n this._syncRegistry.dispose();\n }\n /**\n * Change the theme. Once called, no previous `ruleStack` should be used anymore.\n */\n setTheme(theme, colorMap) {\n this._syncRegistry.setTheme(Theme.createFromRawTheme(theme, colorMap));\n }\n /**\n * Returns a lookup array for color ids.\n */\n getColorMap() {\n return this._syncRegistry.getColorMap();\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithEmbeddedLanguages(initialScopeName, initialLanguage, embeddedLanguages) {\n return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithConfiguration(initialScopeName, initialLanguage, configuration) {\n return this._loadGrammar(initialScopeName, initialLanguage, configuration.embeddedLanguages, configuration.tokenTypes, new BalancedBracketSelectors(configuration.balancedBracketSelectors || [], configuration.unbalancedBracketSelectors || []));\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n */\n loadGrammar(initialScopeName) {\n return this._loadGrammar(initialScopeName, 0, null, null, null);\n }\n async _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n await Promise.all(dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName)));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n async _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._ensureGrammarCache.set(scopeName, this._doLoadSingleGrammar(scopeName));\n }\n return this._ensureGrammarCache.get(scopeName);\n }\n async _doLoadSingleGrammar(scopeName) {\n const grammar = await this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : undefined;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n async addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return (await this._grammarForScopeName(rawGrammar.scopeName, initialLanguage, embeddedLanguages));\n }\n /**\n * Get the grammar for `scopeName`. The grammar must first be created via `loadGrammar` or `addGrammar`.\n */\n _grammarForScopeName(scopeName, initialLanguage = 0, embeddedLanguages = null, tokenTypes = null, balancedBracketSelectors = null) {\n return this._syncRegistry.grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n};\nconst INITIAL = StateStackImpl.NULL;\n\n/**\n * Helpers to manage the \"collapsed\" metadata of an entire StackElement stack.\n * The following assumptions have been made:\n * - languageId < 256 => needs 8 bits\n * - unique color count < 512 => needs 9 bits\n *\n * The binary format is:\n * - -------------------------------------------\n * 3322 2222 2222 1111 1111 1100 0000 0000\n * 1098 7654 3210 9876 5432 1098 7654 3210\n * - -------------------------------------------\n * xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx\n * bbbb bbbb bfff ffff ffFF FTTT LLLL LLLL\n * - -------------------------------------------\n * - L = LanguageId (8 bits)\n * - T = StandardTokenType (3 bits)\n * - F = FontStyle (3 bits)\n * - f = foreground color (9 bits)\n * - b = background color (9 bits)\n */\nconst MetadataConsts = {\n LANGUAGEID_MASK: 0b00000000000000000000000011111111,\n TOKEN_TYPE_MASK: 0b00000000000000000000001100000000,\n BALANCED_BRACKETS_MASK: 0b00000000000000000000010000000000,\n FONT_STYLE_MASK: 0b00000000000000000011100000000000,\n FOREGROUND_MASK: 0b00000000011111111100000000000000,\n BACKGROUND_MASK: 0b11111111100000000000000000000000,\n LANGUAGEID_OFFSET: 0,\n TOKEN_TYPE_OFFSET: 8,\n BALANCED_BRACKETS_OFFSET: 10,\n FONT_STYLE_OFFSET: 11,\n FOREGROUND_OFFSET: 15,\n BACKGROUND_OFFSET: 24,\n};\nclass StackElementMetadata {\n static toBinaryStr(metadata) {\n let r = metadata.toString(2);\n while (r.length < 32)\n r = `0${r}`;\n return r;\n }\n // public static printMetadata(metadata: number): void {\n // const languageId = StackElementMetadata.getLanguageId(metadata)\n // const tokenType = StackElementMetadata.getTokenType(metadata)\n // const fontStyle = StackElementMetadata.getFontStyle(metadata)\n // const foreground = StackElementMetadata.getForeground(metadata)\n // const background = StackElementMetadata.getBackground(metadata)\n // console.log({\n // languageId,\n // tokenType,\n // fontStyle,\n // foreground,\n // background,\n // })\n // }\n static getLanguageId(metadata) {\n return (metadata & MetadataConsts.LANGUAGEID_MASK) >>> MetadataConsts.LANGUAGEID_OFFSET;\n }\n static getTokenType(metadata) {\n return (metadata & MetadataConsts.TOKEN_TYPE_MASK) >>> MetadataConsts.TOKEN_TYPE_OFFSET;\n }\n static getFontStyle(metadata) {\n return (metadata & MetadataConsts.FONT_STYLE_MASK) >>> MetadataConsts.FONT_STYLE_OFFSET;\n }\n static getForeground(metadata) {\n return (metadata & MetadataConsts.FOREGROUND_MASK) >>> MetadataConsts.FOREGROUND_OFFSET;\n }\n static getBackground(metadata) {\n return (metadata & MetadataConsts.BACKGROUND_MASK) >>> MetadataConsts.BACKGROUND_OFFSET;\n }\n static containsBalancedBrackets(metadata) {\n return (metadata & MetadataConsts.BALANCED_BRACKETS_MASK) !== 0;\n }\n static set(metadata, languageId, tokenType, fontStyle, foreground, background) {\n let _languageId = StackElementMetadata.getLanguageId(metadata);\n let _tokenType = StackElementMetadata.getTokenType(metadata);\n let _fontStyle = StackElementMetadata.getFontStyle(metadata);\n let _foreground = StackElementMetadata.getForeground(metadata);\n let _background = StackElementMetadata.getBackground(metadata);\n const _containsBalancedBracketsBit = StackElementMetadata.containsBalancedBrackets(metadata)\n ? 1\n : 0;\n if (languageId !== 0)\n _languageId = languageId;\n if (tokenType !== 0 /* TemporaryStandardTokenType.Other */) {\n _tokenType\n = tokenType === 8 /* TemporaryStandardTokenType.MetaEmbedded */ ? 0 /* StandardTokenType.Other */ : tokenType;\n }\n if (fontStyle !== FontStyle.NotSet)\n _fontStyle = fontStyle;\n if (foreground !== 0)\n _foreground = foreground;\n if (background !== 0)\n _background = background;\n return (((_languageId << MetadataConsts.LANGUAGEID_OFFSET)\n | (_tokenType << MetadataConsts.TOKEN_TYPE_OFFSET)\n | (_fontStyle << MetadataConsts.FONT_STYLE_OFFSET)\n | (_containsBalancedBracketsBit << MetadataConsts.BALANCED_BRACKETS_OFFSET)\n | (_foreground << MetadataConsts.FOREGROUND_OFFSET)\n | (_background << MetadataConsts.BACKGROUND_OFFSET))\n >>> 0);\n }\n}\n\nexport { INITIAL, Registry$1 as Registry, StackElementMetadata, Theme };\n","import { INITIAL, StackElementMetadata, Registry as Registry$1, Theme } from './textmate.mjs';\nimport { FontStyle } from './types.mjs';\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\n/**\n * Split a string into lines, each line preserves the line ending.\n */\nfunction splitLines(code, preserveEnding = false) {\n const parts = code.split(/(\\r?\\n)/g);\n let index = 0;\n const lines = [];\n for (let i = 0; i < parts.length; i += 2) {\n const line = preserveEnding\n ? parts[i] + (parts[i + 1] || '')\n : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\n/**\n * Check if the language is plaintext that is ignored by Shiki.\n *\n * Hard-coded plain text languages: `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isPlainLang(lang) {\n return !lang || ['plaintext', 'txt', 'text', 'plain'].includes(lang);\n}\n/**\n * Check if the language is specially handled or bypassed by Shiki.\n *\n * Hard-coded languages: `ansi` and plaintexts like `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isSpecialLang(lang) {\n return lang === 'ansi' || isPlainLang(lang);\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isNoneTheme(theme) {\n return theme === 'none';\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\n/**\n * Utility to append class to a hast node\n *\n * If the `property.class` is a string, it will be splitted by space and converted to an array.\n */\nfunction addClassToHast(node, className) {\n if (!className)\n return node;\n node.properties ||= {};\n node.properties.class ||= [];\n if (typeof node.properties.class === 'string')\n node.properties.class = node.properties.class.split(/\\s+/g);\n if (!Array.isArray(node.properties.class))\n node.properties.class = [];\n const targets = Array.isArray(className) ? className : className.split(/\\s+/g);\n for (const c of targets) {\n if (c && !node.properties.class.includes(c))\n node.properties.class.push(c);\n }\n return node;\n}\n/**\n * Split a token into multiple tokens by given offsets.\n *\n * The offsets are relative to the token, and should be sorted.\n */\nfunction splitToken(token, offsets) {\n let lastOffset = 0;\n const tokens = [];\n for (const offset of offsets) {\n if (offset > lastOffset) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset, offset),\n offset: token.offset + lastOffset,\n });\n }\n lastOffset = offset;\n }\n if (lastOffset < token.content.length) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset),\n offset: token.offset + lastOffset,\n });\n }\n return tokens;\n}\n/**\n * Split 2D tokens array by given breakpoints.\n */\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array.from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints))\n .sort((a, b) => a - b);\n if (!sorted.length)\n return tokens;\n return tokens.map((line) => {\n return line.flatMap((token) => {\n const breakpointsInToken = sorted\n .filter(i => token.offset < i && i < token.offset + token.content.length)\n .map(i => i - token.offset)\n .sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\nfunction resolveColorReplacements(theme, options) {\n const replacements = typeof theme === 'string' ? {} : { ...theme.colorReplacements };\n const themeName = typeof theme === 'string' ? theme : theme.name;\n for (const [key, value] of Object.entries(options?.colorReplacements || {})) {\n if (typeof value === 'string')\n replacements[key] = value;\n else if (key === themeName)\n Object.assign(replacements, value);\n }\n return replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n if (!color)\n return color;\n return replacements?.[color?.toLowerCase()] || color;\n}\nfunction getTokenStyleObject(token) {\n const styles = {};\n if (token.color)\n styles.color = token.color;\n if (token.bgColor)\n styles['background-color'] = token.bgColor;\n if (token.fontStyle) {\n if (token.fontStyle & FontStyle.Italic)\n styles['font-style'] = 'italic';\n if (token.fontStyle & FontStyle.Bold)\n styles['font-weight'] = 'bold';\n if (token.fontStyle & FontStyle.Underline)\n styles['text-decoration'] = 'underline';\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(';');\n}\n/**\n * Creates a converter between index and position in a code block.\n *\n * Overflow/underflow are unchecked.\n */\nfunction createPositionConverter(code) {\n const lines = splitLines(code, true).map(([line]) => line);\n function indexToPos(index) {\n if (index === code.length) {\n return {\n line: lines.length - 1,\n character: lines[lines.length - 1].length,\n };\n }\n let character = index;\n let line = 0;\n for (const lineText of lines) {\n if (character < lineText.length)\n break;\n character -= lineText.length;\n line++;\n }\n return { line, character };\n }\n function posToIndex(line, character) {\n let index = 0;\n for (let i = 0; i < line; i++)\n index += lines[i].length;\n index += character;\n return index;\n }\n return {\n lines,\n indexToPos,\n posToIndex,\n };\n}\n\n// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B[\", position);\n if (nextEscape !== -1) {\n const nextClose = value.indexOf(\"m\", nextEscape);\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence, index) {\n let offset = 1;\n const colorMode = sequence[index + offset++];\n let color;\n if (colorMode === \"2\") {\n const rgb = [\n sequence[index + offset++],\n sequence[index + offset++],\n sequence[index + offset]\n ].map((x) => Number.parseInt(x));\n if (rgb.length === 3 && !rgb.some((x) => Number.isNaN(x))) {\n color = {\n type: \"rgb\",\n rgb\n };\n }\n } else if (colorMode === \"5\") {\n const colorIndex = Number.parseInt(sequence[index + offset]);\n if (!Number.isNaN(colorIndex)) {\n color = { type: \"table\", index: Number(colorIndex) };\n }\n }\n return [offset, color];\n}\nfunction parseSequence(sequence) {\n const commands = [];\n for (let i = 0; i < sequence.length; i++) {\n const code = sequence[i];\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\n\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const colorPalette = createColorPalette(Object.fromEntries(namedColors.map(name => [\n name,\n theme.colors?.[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`],\n ])));\n const parser = createAnsiSequenceParser();\n return lines.map(line => parser.parse(line[0]).map((token) => {\n let color;\n let bgColor;\n if (token.decorations.has('reverse')) {\n color = token.background ? colorPalette.value(token.background) : theme.bg;\n bgColor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n }\n else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : undefined;\n }\n color = applyColorReplacements(color, colorReplacements);\n bgColor = applyColorReplacements(bgColor, colorReplacements);\n if (token.decorations.has('dim'))\n color = dimColor(color);\n let fontStyle = FontStyle.None;\n if (token.decorations.has('bold'))\n fontStyle |= FontStyle.Bold;\n if (token.decorations.has('italic'))\n fontStyle |= FontStyle.Italic;\n if (token.decorations.has('underline'))\n fontStyle |= FontStyle.Underline;\n return {\n content: token.value,\n offset: line[1], // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle,\n };\n }));\n}\n/**\n * Adds 50% alpha to a hex color string or the \"-dim\" postfix to a CSS variable\n */\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);\n if (hexMatch) {\n if (hexMatch[3]) {\n // convert from #rrggbbaa to #rrggbb(aa/2)\n const alpha = Math.round(Number.parseInt(hexMatch[3], 16) / 2)\n .toString(16)\n .padStart(2, '0');\n return `#${hexMatch[1]}${hexMatch[2]}${alpha}`;\n }\n else if (hexMatch[2]) {\n // convert from #rrggbb to #rrggbb80\n return `#${hexMatch[1]}${hexMatch[2]}80`;\n }\n else {\n // convert from #rgb to #rrggbb80\n return `#${Array.from(hexMatch[1])\n .map(x => `${x}${x}`)\n .join('')}80`;\n }\n }\n const cssVarMatch = color.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);\n if (cssVarMatch)\n return `var(${cssVarMatch[1]}-dim)`;\n return color;\n}\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ShikiError';\n }\n}\n\n/**\n * GrammarState is a special reference object that holds the state of a grammar.\n *\n * It's used to highlight code snippets that are part of the target language.\n */\nclass GrammarState {\n _stack;\n lang;\n theme;\n /**\n * Static method to create a initial grammar state.\n */\n static initial(lang, theme) {\n return new GrammarState(INITIAL, lang, theme);\n }\n constructor(_stack, lang, theme) {\n this._stack = _stack;\n this.lang = lang;\n this.theme = theme;\n }\n get scopes() {\n return getScopes(this._stack);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n scopes: this.scopes,\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = new Set();\n function pushScope(stack) {\n if (visited.has(stack))\n return;\n visited.add(stack);\n const name = stack?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack.parent)\n pushScope(stack.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state) {\n if (!(state instanceof GrammarState))\n throw new ShikiError('Invalid grammar state');\n // @ts-expect-error _stack is private\n return state._stack;\n}\n\n/**\n * Code to tokens, with a simple theme.\n */\nfunction codeToTokensBase(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n return splitLines(code).map(line => [{ content: line[0], offset: line[1] }]);\n const { theme, colorMap } = internal.setTheme(themeName);\n if (lang === 'ansi')\n return tokenizeAnsiWithTheme(theme, code, options);\n const _grammar = internal.getLanguage(lang);\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (options.grammarState.theme !== themeName) {\n throw new ShikiError(`Grammar state theme \"${options.grammarState.theme}\" does not match highlight theme \"${themeName}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError('Plain language does not have grammar state');\n if (lang === 'ansi')\n throw new ShikiError('ANSI language does not have grammar state');\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(_tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack, _grammar.name, theme.name);\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n return _tokenizeWithTheme(code, grammar, theme, colorMap, options).tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const { tokenizeMaxLineLength = 0, tokenizeTimeLimit = 500, } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState\n ? getGrammarStack(options.grammarState)\n : options.grammarContextCode != null\n ? _tokenizeWithTheme(options.grammarContextCode, grammar, theme, colorMap, {\n ...options,\n grammarState: undefined,\n grammarContextCode: undefined,\n }).stateStack\n : INITIAL;\n let actual = [];\n const final = [];\n const themeSettingsSelectors = [];\n if (options.includeExplanation) {\n for (const setting of theme.settings) {\n let selectors;\n switch (typeof setting.scope) {\n case 'string':\n selectors = setting.scope.split(/,/).map(scope => scope.trim());\n break;\n case 'object':\n selectors = setting.scope;\n break;\n default:\n continue;\n }\n themeSettingsSelectors.push({\n settings: setting,\n selectors: selectors.map(selector => selector.split(/ /)),\n });\n }\n }\n for (let i = 0, len = lines.length; i < len; i++) {\n const [line, lineOffset] = lines[i];\n if (line === '') {\n actual = [];\n final.push([]);\n continue;\n }\n // Do not attempt to tokenize if the line length is longer than the `tokenizationMaxLineLength`\n if (tokenizeMaxLineLength > 0 && line.length >= tokenizeMaxLineLength) {\n actual = [];\n final.push([{\n content: line,\n offset: lineOffset,\n color: '',\n fontStyle: 0,\n }]);\n continue;\n }\n let resultWithScopes;\n let tokensWithScopes;\n let tokensWithScopesIndex;\n if (options.includeExplanation) {\n resultWithScopes = grammar.tokenizeLine(line, stateStack);\n tokensWithScopes = resultWithScopes.tokens;\n tokensWithScopesIndex = 0;\n }\n const result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n const tokensLength = result.tokens.length / 2;\n for (let j = 0; j < tokensLength; j++) {\n const startIndex = result.tokens[2 * j];\n const nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n if (startIndex === nextStartIndex)\n continue;\n const metadata = result.tokens[2 * j + 1];\n const color = applyColorReplacements(colorMap[StackElementMetadata.getForeground(metadata)], colorReplacements);\n const fontStyle = StackElementMetadata.getFontStyle(metadata);\n const token = {\n content: line.substring(startIndex, nextStartIndex),\n offset: lineOffset + startIndex,\n color,\n fontStyle,\n };\n if (options.includeExplanation) {\n token.explanation = [];\n let offset = 0;\n while (startIndex + offset < nextStartIndex) {\n const tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n const tokenWithScopesText = line.substring(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: explainThemeScopes(themeSettingsSelectors, tokenWithScopes.scopes),\n });\n tokensWithScopesIndex += 1;\n }\n }\n actual.push(token);\n }\n final.push(actual);\n actual = [];\n stateStack = result.ruleStack;\n }\n return {\n tokens: final,\n stateStack,\n };\n}\nfunction explainThemeScopes(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const parentScopes = scopes.slice(0, i);\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, parentScopes),\n };\n }\n return result;\n}\nfunction matchesOne(selector, scope) {\n return selector === scope\n || (scope.substring(0, selector.length) === selector && scope[selector.length] === '.');\n}\nfunction matches(selectors, scope, parentScopes) {\n if (!matchesOne(selectors[selectors.length - 1], scope))\n return false;\n let selectorParentIndex = selectors.length - 2;\n let parentIndex = parentScopes.length - 1;\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex]))\n selectorParentIndex -= 1;\n parentIndex -= 1;\n }\n if (selectorParentIndex === -1)\n return true;\n return false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n const result = [];\n for (const { selectors, settings } of themeSettingsSelectors) {\n for (const selectorPieces of selectors) {\n if (matches(selectorPieces, scope, parentScopes)) {\n result.push(settings);\n break; // continue to the next theme settings\n }\n }\n }\n return result;\n}\n\n/**\n * Get tokens with multiple themes\n */\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }));\n const tokens = syncThemesTokenization(...themes.map(t => codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme,\n })));\n const mergedTokens = tokens[0]\n .map((line, lineIdx) => line\n .map((_token, tokenIdx) => {\n const mergedToken = {\n content: _token.content,\n variants: {},\n offset: _token.offset,\n };\n if ('includeExplanation' in options && options.includeExplanation) {\n mergedToken.explanation = _token.explanation;\n }\n tokens.forEach((t, themeIdx) => {\n const { content: _, explanation: __, offset: ___, ...styles } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n }));\n return mergedTokens;\n}\n/**\n * Break tokens from multiple themes into same tokenization.\n *\n * For example, given two themes that tokenize `console.log(\"hello\")` as:\n *\n * - `console . log (\" hello \")` (6 tokens)\n * - `console .log ( \"hello\" )` (5 tokens)\n *\n * This function will return:\n *\n * - `console . log ( \" hello \" )` (8 tokens)\n * - `console . log ( \" hello \" )` (8 tokens)\n */\nfunction syncThemesTokenization(...themes) {\n const outThemes = themes.map(() => []);\n const count = themes.length;\n for (let i = 0; i < themes[0].length; i++) {\n const lines = themes.map(t => t[i]);\n const outLines = outThemes.map(() => []);\n outThemes.forEach((t, i) => t.push(outLines[i]));\n const indexes = lines.map(() => 0);\n const current = lines.map(l => l[0]);\n while (current.every(t => t)) {\n const minLength = Math.min(...current.map(t => t.content.length));\n for (let n = 0; n < count; n++) {\n const token = current[n];\n if (token.content.length === minLength) {\n outLines[n].push(token);\n indexes[n] += 1;\n current[n] = lines[n][indexes[n]];\n }\n else {\n outLines[n].push({\n ...token,\n content: token.content.slice(0, minLength),\n });\n current[n] = {\n ...token,\n content: token.content.slice(minLength),\n offset: token.offset + minLength,\n };\n }\n }\n }\n }\n return outThemes;\n}\n\n/**\n * High-level code-to-tokens API.\n *\n * It will use `codeToTokensWithThemes` or `codeToTokensBase` based on the options.\n */\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n if ('themes' in options) {\n const { defaultColor = 'light', cssVariablePrefix = '--shiki-', } = options;\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }))\n .sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError('`themes` option must not be empty');\n const themeTokens = codeToTokensWithThemes(internal, code, options);\n if (defaultColor && !themes.find(t => t.color === defaultColor))\n throw new ShikiError(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n const themeRegs = themes.map(t => internal.getTheme(t.theme));\n const themesOrder = themes.map(t => t.color);\n tokens = themeTokens\n .map(line => line.map(token => mergeToken(token, themesOrder, cssVariablePrefix, defaultColor)));\n const themeColorReplacements = themes.map(t => resolveColorReplacements(t.theme, options));\n fg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}:`) + (applyColorReplacements(themeRegs[idx].fg, themeColorReplacements[idx]) || 'inherit')).join(';');\n bg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}-bg:`) + (applyColorReplacements(themeRegs[idx].bg, themeColorReplacements[idx]) || 'inherit')).join(';');\n themeName = `shiki-themes ${themeRegs.map(t => t.name).join(' ')}`;\n rootStyle = defaultColor ? undefined : [fg, bg].join(';');\n }\n else if ('theme' in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(internal, code, options);\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n }\n else {\n throw new ShikiError('Invalid options, either `theme` or `themes` must be provided');\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n };\n}\nfunction mergeToken(merged, variantsOrder, cssVariablePrefix, defaultColor) {\n const token = {\n content: merged.content,\n explanation: merged.explanation,\n offset: merged.offset,\n };\n const styles = variantsOrder.map(t => getTokenStyleObject(merged.variants[t]));\n // Get all style keys, for themes that missing some style, we put `inherit` to override as needed\n const styleKeys = new Set(styles.flatMap(t => Object.keys(t)));\n const mergedStyles = styles.reduce((acc, cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || 'inherit';\n if (idx === 0 && defaultColor) {\n acc[key] = value;\n }\n else {\n const keyName = key === 'color' ? '' : key === 'background-color' ? '-bg' : `-${key}`;\n const varKey = cssVariablePrefix + variantsOrder[idx] + (key === 'color' ? '' : keyName);\n if (acc[key])\n acc[key] += `;${varKey}:${value}`;\n else\n acc[key] = `${varKey}:${value}`;\n }\n }\n return acc;\n }, {});\n token.htmlStyle = defaultColor\n ? stringifyTokenStyle(mergedStyles)\n : Object.values(mergedStyles).join(';');\n return token;\n}\n\n/**\n * A built-in transformer to add decorations to the highlighted code.\n */\nfunction transformerDecorations() {\n const map = new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n const converter = createPositionConverter(shiki.source);\n function normalizePosition(p) {\n if (typeof p === 'number') {\n if (p < 0 || p > shiki.source.length)\n throw new ShikiError(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n return {\n ...converter.indexToPos(p),\n offset: p,\n };\n }\n else {\n const line = converter.lines[p.line];\n if (line === undefined)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n if (p.character < 0 || p.character > line.length)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n return {\n ...p,\n offset: converter.posToIndex(p.line, p.character),\n };\n }\n }\n const decorations = (shiki.options.decorations || [])\n .map((d) => ({\n ...d,\n start: normalizePosition(d.start),\n end: normalizePosition(d.end),\n }));\n verifyIntersections(decorations);\n map.set(shiki.meta, {\n decorations,\n converter,\n source: shiki.source,\n });\n }\n return map.get(shiki.meta);\n }\n function verifyIntersections(items) {\n for (let i = 0; i < items.length; i++) {\n const foo = items[i];\n if (foo.start.offset > foo.end.offset)\n throw new ShikiError(`Invalid decoration range: ${JSON.stringify(foo.start)} - ${JSON.stringify(foo.end)}`);\n for (let j = i + 1; j < items.length; j++) {\n const bar = items[j];\n const isFooHasBarStart = foo.start.offset < bar.start.offset && bar.start.offset < foo.end.offset;\n const isFooHasBarEnd = foo.start.offset < bar.end.offset && bar.end.offset < foo.end.offset;\n const isBarHasFooStart = bar.start.offset < foo.start.offset && foo.start.offset < bar.end.offset;\n const isBarHasFooEnd = bar.start.offset < foo.end.offset && foo.end.offset < bar.end.offset;\n if (isFooHasBarStart || isFooHasBarEnd || isBarHasFooStart || isBarHasFooEnd) {\n if (isFooHasBarEnd && isFooHasBarEnd)\n continue; // nested\n if (isBarHasFooStart && isBarHasFooEnd)\n continue; // nested\n throw new ShikiError(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n }\n return {\n name: 'shiki:decorations',\n tokens(tokens) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const breakpoints = ctx.decorations.flatMap(d => [d.start.offset, d.end.offset]);\n const splitted = splitTokens(tokens, breakpoints);\n return splitted;\n },\n code(codeEl) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const lines = Array.from(codeEl.children).filter(i => i.type === 'element' && i.tagName === 'span');\n if (lines.length !== ctx.converter.lines.length)\n throw new ShikiError(`Number of lines in code element (${lines.length}) does not match the number of lines in the source (${ctx.converter.lines.length}). Failed to apply decorations.`);\n function applyLineSection(line, start, end, decoration) {\n const lineEl = lines[line];\n let text = '';\n let startIndex = -1;\n let endIndex = -1;\n function stringify(el) {\n if (el.type === 'text')\n return el.value;\n if (el.type === 'element')\n return el.children.map(stringify).join('');\n return '';\n }\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n // Full line decoration\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, 'line');\n }\n // Single token decoration\n else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === 'element') {\n applyDecoration(children[0], decoration, 'token');\n }\n // Create a wrapper for the decoration\n else {\n const wrapper = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children,\n };\n applyDecoration(wrapper, decoration, 'wrapper');\n lineEl.children.splice(startIndex, children.length, wrapper);\n }\n }\n function applyLine(line, decoration) {\n lines[line] = applyDecoration(lines[line], decoration, 'line');\n }\n function applyDecoration(el, decoration, type) {\n const properties = decoration.properties || {};\n const transform = decoration.transform || (i => i);\n el.tagName = decoration.tagName || 'span';\n el.properties = {\n ...el.properties,\n ...properties,\n class: el.properties.class,\n };\n if (decoration.properties?.class)\n addClassToHast(el, decoration.properties.class);\n el = transform(el, type) || el;\n return el;\n }\n const lineApplies = [];\n // Apply decorations in reverse order so the nested ones get applied first.\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.offset);\n for (const decoration of sorted) {\n const { start, end } = decoration;\n if (start.line === end.line) {\n applyLineSection(start.line, start.character, end.character, decoration);\n }\n else if (start.line < end.line) {\n applyLineSection(start.line, start.character, Number.POSITIVE_INFINITY, decoration);\n for (let i = start.line + 1; i < end.line; i++)\n lineApplies.unshift(() => applyLine(i, decoration));\n applyLineSection(end.line, 0, end.character, decoration);\n }\n }\n lineApplies.forEach(i => i());\n },\n };\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations(),\n];\nfunction getTransformers(options) {\n return [\n ...options.transformers || [],\n ...builtInTransformers,\n ];\n}\n\nfunction codeToHast(internal, code, options, transformerContext = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options),\n}) {\n let input = code;\n for (const transformer of getTransformers(options))\n input = transformer.preprocess?.call(transformerContext, input, options) || input;\n let { tokens, fg, bg, themeName, rootStyle, } = codeToTokens(internal, input, options);\n const { mergeWhitespaces = true, } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === 'never')\n tokens = splitWhitespaceTokens(tokens);\n const contextSource = {\n ...transformerContext,\n get source() {\n return input;\n },\n };\n for (const transformer of getTransformers(options))\n tokens = transformer.tokens?.call(contextSource, tokens) || tokens;\n return tokensToHast(tokens, {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle,\n }, contextSource);\n}\nfunction tokensToHast(tokens, options, transformerContext) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: 'root',\n children: [],\n };\n const { structure = 'classic', } = options;\n let preNode = {\n type: 'element',\n tagName: 'pre',\n properties: {\n class: `shiki ${options.themeName || ''}`,\n style: options.rootStyle || `background-color:${options.bg};color:${options.fg}`,\n tabindex: '0',\n ...Object.fromEntries(Array.from(Object.entries(options.meta || {}))\n .filter(([key]) => !key.startsWith('_'))),\n },\n children: [],\n };\n let codeNode = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: lines,\n };\n const lineNodes = [];\n const context = {\n ...transformerContext,\n structure,\n addClassToHast,\n get source() {\n return transformerContext.source;\n },\n get tokens() {\n return tokens;\n },\n get options() {\n return options;\n },\n get root() {\n return root;\n },\n get pre() {\n return preNode;\n },\n get code() {\n return codeNode;\n },\n get lines() {\n return lineNodes;\n },\n };\n tokens.forEach((line, idx) => {\n if (idx) {\n if (structure === 'inline')\n root.children.push({ type: 'element', tagName: 'br', properties: {}, children: [] });\n else if (structure === 'classic')\n lines.push({ type: 'text', value: '\\n' });\n }\n let lineNode = {\n type: 'element',\n tagName: 'span',\n properties: { class: 'line' },\n children: [],\n };\n let col = 0;\n for (const token of line) {\n let tokenNode = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children: [{ type: 'text', value: token.content }],\n };\n const style = token.htmlStyle || stringifyTokenStyle(getTokenStyleObject(token));\n if (style)\n tokenNode.properties.style = style;\n for (const transformer of transformers)\n tokenNode = transformer?.span?.call(context, tokenNode, idx + 1, col, lineNode) || tokenNode;\n if (structure === 'inline')\n root.children.push(tokenNode);\n else if (structure === 'classic')\n lineNode.children.push(tokenNode);\n col += token.content.length;\n }\n if (structure === 'classic') {\n for (const transformer of transformers)\n lineNode = transformer?.line?.call(context, lineNode, idx + 1) || lineNode;\n lineNodes.push(lineNode);\n lines.push(lineNode);\n }\n });\n if (structure === 'classic') {\n for (const transformer of transformers)\n codeNode = transformer?.code?.call(context, codeNode) || codeNode;\n preNode.children.push(codeNode);\n for (const transformer of transformers)\n preNode = transformer?.pre?.call(context, preNode) || preNode;\n root.children.push(preNode);\n }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = '';\n let firstOffset = 0;\n line.forEach((token, idx) => {\n const isUnderline = token.fontStyle && token.fontStyle & FontStyle.Underline;\n const couldMerge = !isUnderline;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (!firstOffset)\n firstOffset = token.offset;\n carryOnContent += token.content;\n }\n else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content,\n });\n }\n else {\n newLine.push({\n content: carryOnContent,\n offset: firstOffset,\n }, token);\n }\n firstOffset = 0;\n carryOnContent = '';\n }\n else {\n newLine.push(token);\n }\n }\n });\n return newLine;\n });\n}\nfunction splitWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n return line.flatMap((token) => {\n if (token.content.match(/^\\s+$/))\n return token;\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n const match = token.content.match(/^(\\s*)(.*?)(\\s*)$/);\n if (!match)\n return token;\n const [, leading, content, trailing] = match;\n if (!leading && !trailing)\n return token;\n const expanded = [{\n ...token,\n offset: token.offset + leading.length,\n content,\n }];\n if (leading) {\n expanded.unshift({\n content: leading,\n offset: token.offset,\n });\n }\n if (trailing) {\n expanded.push({\n content: trailing,\n offset: token.offset + leading.length + content.length,\n });\n }\n return expanded;\n });\n });\n}\n\n/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nconst htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n];\n\n/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nclass Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property;\n this.normal = normal;\n if (space) {\n this.space = space;\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {};\n/** @type {Normal} */\nSchema.prototype.normal = {};\n/** @type {string|null} */\nSchema.prototype.space = null;\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nfunction merge(definitions, space) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n let index = -1;\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property);\n Object.assign(normal, definitions[index].normal);\n }\n\n return new Schema(property, normal, space)\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction normalize(value) {\n return value.toLowerCase()\n}\n\nclass Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property;\n /** @type {string} */\n this.attribute = attribute;\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null;\nInfo.prototype.boolean = false;\nInfo.prototype.booleanish = false;\nInfo.prototype.overloadedBoolean = false;\nInfo.prototype.number = false;\nInfo.prototype.commaSeparated = false;\nInfo.prototype.spaceSeparated = false;\nInfo.prototype.commaOrSpaceSeparated = false;\nInfo.prototype.mustUseProperty = false;\nInfo.prototype.defined = false;\n\nlet powers = 0;\n\nconst boolean = increment();\nconst booleanish = increment();\nconst overloadedBoolean = increment();\nconst number = increment();\nconst spaceSeparated = increment();\nconst commaSeparated = increment();\nconst commaOrSpaceSeparated = increment();\n\nfunction increment() {\n return 2 ** ++powers\n}\n\nvar types = /*#__PURE__*/Object.freeze({\n __proto__: null,\n boolean: boolean,\n booleanish: booleanish,\n commaOrSpaceSeparated: commaOrSpaceSeparated,\n commaSeparated: commaSeparated,\n number: number,\n overloadedBoolean: overloadedBoolean,\n spaceSeparated: spaceSeparated\n});\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types);\n\nclass DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1;\n\n super(property, attribute);\n\n mark(this, 'space', space);\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index];\n mark(this, checks[index], (mask & types[check]) === types[check]);\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true;\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value;\n }\n}\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\n\nconst own$3 = {}.hasOwnProperty;\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nfunction create(definition) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n /** @type {string} */\n let prop;\n\n for (prop in definition.properties) {\n if (own$3.call(definition.properties, prop)) {\n const value = definition.properties[prop];\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n );\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true;\n }\n\n property[prop] = info;\n\n normal[normalize(prop)] = prop;\n normal[normalize(info.attribute)] = prop;\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n\nconst xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n});\n\nconst xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n});\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n\nconst xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n});\n\nconst aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n});\n\nconst html$3 = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n});\n\nconst svg$1 = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n});\n\n/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\n\nconst valid = /^data[-\\w.:]+$/i;\nconst dash = /-[a-z]/g;\nconst cap = /[A-Z]/g;\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nfunction find(schema, value) {\n const normal = normalize(value);\n let prop = value;\n let Type = Info;\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase);\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1);\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4);\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab);\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes;\n }\n\n value = 'data' + dashes;\n }\n }\n\n Type = DefinedInfo;\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n\n/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nconst html$2 = merge([xml, xlink, xmlns, aria, html$3], 'html');\nconst svg = merge([xml, xlink, xmlns, aria, svg$1], 'svg');\n\n/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own$2 = {}.hasOwnProperty;\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n * Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nfunction zwitch(key, options) {\n const settings = options || {};\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid;\n const handlers = one.handlers;\n\n if (value && own$2.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key]);\n // @ts-expect-error Indexable.\n fn = own$2.call(handlers, id) ? handlers[id] : one.unknown;\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {};\n one.invalid = settings.invalid;\n one.unknown = settings.unknown;\n\n // @ts-expect-error: matches!\n return one\n}\n\n/**\n * @typedef CoreOptions\n * @property {Array<string>} [subset=[]]\n * Whether to only escape the given subset of characters.\n * @property {boolean} [escapeOnly=false]\n * Whether to only escape possibly dangerous characters.\n * Those characters are `\"`, `&`, `'`, `<`, `>`, and `` ` ``.\n *\n * @typedef FormatOptions\n * @property {(code: number, next: number, options: CoreWithFormatOptions) => string} format\n * Format strategy.\n *\n * @typedef {CoreOptions & FormatOptions & import('./util/format-smart.js').FormatSmartOptions} CoreWithFormatOptions\n */\n\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nfunction core(value, options) {\n value = value.replace(\n options.subset ? charactersToExpression(options.subset) : /[\"&'<>`]/g,\n basic\n );\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g,\n basic\n )\n )\n\n /**\n * @param {string} pair\n * @param {number} index\n * @param {string} all\n */\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n /**\n * @param {string} character\n * @param {number} index\n * @param {string} all\n */\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\n/**\n * @param {Array<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpression(subset) {\n /** @type {Array<string>} */\n const groups = [];\n let index = -1;\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'));\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n\n/**\n * Configurable ways to encode characters as hexadecimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nfunction toHexadecimal(code, next, omit) {\n const value = '&#x' + code.toString(16).toUpperCase();\n return omit && next && !/[\\dA-Fa-f]/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * Configurable ways to encode characters as decimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nfunction toDecimal(code, next, omit) {\n const value = '&#' + String(code);\n return omit && next && !/\\d/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nconst characterEntitiesLegacy = [\n 'AElig',\n 'AMP',\n 'Aacute',\n 'Acirc',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Auml',\n 'COPY',\n 'Ccedil',\n 'ETH',\n 'Eacute',\n 'Ecirc',\n 'Egrave',\n 'Euml',\n 'GT',\n 'Iacute',\n 'Icirc',\n 'Igrave',\n 'Iuml',\n 'LT',\n 'Ntilde',\n 'Oacute',\n 'Ocirc',\n 'Ograve',\n 'Oslash',\n 'Otilde',\n 'Ouml',\n 'QUOT',\n 'REG',\n 'THORN',\n 'Uacute',\n 'Ucirc',\n 'Ugrave',\n 'Uuml',\n 'Yacute',\n 'aacute',\n 'acirc',\n 'acute',\n 'aelig',\n 'agrave',\n 'amp',\n 'aring',\n 'atilde',\n 'auml',\n 'brvbar',\n 'ccedil',\n 'cedil',\n 'cent',\n 'copy',\n 'curren',\n 'deg',\n 'divide',\n 'eacute',\n 'ecirc',\n 'egrave',\n 'eth',\n 'euml',\n 'frac12',\n 'frac14',\n 'frac34',\n 'gt',\n 'iacute',\n 'icirc',\n 'iexcl',\n 'igrave',\n 'iquest',\n 'iuml',\n 'laquo',\n 'lt',\n 'macr',\n 'micro',\n 'middot',\n 'nbsp',\n 'not',\n 'ntilde',\n 'oacute',\n 'ocirc',\n 'ograve',\n 'ordf',\n 'ordm',\n 'oslash',\n 'otilde',\n 'ouml',\n 'para',\n 'plusmn',\n 'pound',\n 'quot',\n 'raquo',\n 'reg',\n 'sect',\n 'shy',\n 'sup1',\n 'sup2',\n 'sup3',\n 'szlig',\n 'thorn',\n 'times',\n 'uacute',\n 'ucirc',\n 'ugrave',\n 'uml',\n 'uuml',\n 'yacute',\n 'yen',\n 'yuml'\n];\n\n/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nconst characterEntitiesHtml4 = {\n nbsp: ' ',\n iexcl: '¡',\n cent: '¢',\n pound: '£',\n curren: '¤',\n yen: '¥',\n brvbar: '¦',\n sect: '§',\n uml: '¨',\n copy: '©',\n ordf: 'ª',\n laquo: '«',\n not: '¬',\n shy: '',\n reg: '®',\n macr: '¯',\n deg: '°',\n plusmn: '±',\n sup2: '²',\n sup3: '³',\n acute: '´',\n micro: 'µ',\n para: '¶',\n middot: '·',\n cedil: '¸',\n sup1: '¹',\n ordm: 'º',\n raquo: '»',\n frac14: '¼',\n frac12: '½',\n frac34: '¾',\n iquest: '¿',\n Agrave: 'À',\n Aacute: 'Á',\n Acirc: 'Â',\n Atilde: 'Ã',\n Auml: 'Ä',\n Aring: 'Å',\n AElig: 'Æ',\n Ccedil: 'Ç',\n Egrave: 'È',\n Eacute: 'É',\n Ecirc: 'Ê',\n Euml: 'Ë',\n Igrave: 'Ì',\n Iacute: 'Í',\n Icirc: 'Î',\n Iuml: 'Ï',\n ETH: 'Ð',\n Ntilde: 'Ñ',\n Ograve: 'Ò',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Otilde: 'Õ',\n Ouml: 'Ö',\n times: '×',\n Oslash: 'Ø',\n Ugrave: 'Ù',\n Uacute: 'Ú',\n Ucirc: 'Û',\n Uuml: 'Ü',\n Yacute: 'Ý',\n THORN: 'Þ',\n szlig: 'ß',\n agrave: 'à',\n aacute: 'á',\n acirc: 'â',\n atilde: 'ã',\n auml: 'ä',\n aring: 'å',\n aelig: 'æ',\n ccedil: 'ç',\n egrave: 'è',\n eacute: 'é',\n ecirc: 'ê',\n euml: 'ë',\n igrave: 'ì',\n iacute: 'í',\n icirc: 'î',\n iuml: 'ï',\n eth: 'ð',\n ntilde: 'ñ',\n ograve: 'ò',\n oacute: 'ó',\n ocirc: 'ô',\n otilde: 'õ',\n ouml: 'ö',\n divide: '÷',\n oslash: 'ø',\n ugrave: 'ù',\n uacute: 'ú',\n ucirc: 'û',\n uuml: 'ü',\n yacute: 'ý',\n thorn: 'þ',\n yuml: 'ÿ',\n fnof: 'ƒ',\n Alpha: 'Α',\n Beta: 'Β',\n Gamma: 'Γ',\n Delta: 'Δ',\n Epsilon: 'Ε',\n Zeta: 'Ζ',\n Eta: 'Η',\n Theta: 'Θ',\n Iota: 'Ι',\n Kappa: 'Κ',\n Lambda: 'Λ',\n Mu: 'Μ',\n Nu: 'Ν',\n Xi: 'Ξ',\n Omicron: 'Ο',\n Pi: 'Π',\n Rho: 'Ρ',\n Sigma: 'Σ',\n Tau: 'Τ',\n Upsilon: 'Υ',\n Phi: 'Φ',\n Chi: 'Χ',\n Psi: 'Ψ',\n Omega: 'Ω',\n alpha: 'α',\n beta: 'β',\n gamma: 'γ',\n delta: 'δ',\n epsilon: 'ε',\n zeta: 'ζ',\n eta: 'η',\n theta: 'θ',\n iota: 'ι',\n kappa: 'κ',\n lambda: 'λ',\n mu: 'μ',\n nu: 'ν',\n xi: 'ξ',\n omicron: 'ο',\n pi: 'π',\n rho: 'ρ',\n sigmaf: 'ς',\n sigma: 'σ',\n tau: 'τ',\n upsilon: 'υ',\n phi: 'φ',\n chi: 'χ',\n psi: 'ψ',\n omega: 'ω',\n thetasym: 'ϑ',\n upsih: 'ϒ',\n piv: 'ϖ',\n bull: '•',\n hellip: '…',\n prime: '′',\n Prime: '″',\n oline: '‾',\n frasl: '⁄',\n weierp: '℘',\n image: 'ℑ',\n real: 'ℜ',\n trade: '™',\n alefsym: 'ℵ',\n larr: '←',\n uarr: '↑',\n rarr: '→',\n darr: '↓',\n harr: '↔',\n crarr: '↵',\n lArr: '⇐',\n uArr: '⇑',\n rArr: '⇒',\n dArr: '⇓',\n hArr: '⇔',\n forall: '∀',\n part: '∂',\n exist: '∃',\n empty: '∅',\n nabla: '∇',\n isin: '∈',\n notin: '∉',\n ni: '∋',\n prod: '∏',\n sum: '∑',\n minus: '−',\n lowast: '∗',\n radic: '√',\n prop: '∝',\n infin: '∞',\n ang: '∠',\n and: '∧',\n or: '∨',\n cap: '∩',\n cup: '∪',\n int: '∫',\n there4: '∴',\n sim: '∼',\n cong: '≅',\n asymp: '≈',\n ne: '≠',\n equiv: '≡',\n le: '≤',\n ge: '≥',\n sub: '⊂',\n sup: '⊃',\n nsub: '⊄',\n sube: '⊆',\n supe: '⊇',\n oplus: '⊕',\n otimes: '⊗',\n perp: '⊥',\n sdot: '⋅',\n lceil: '⌈',\n rceil: '⌉',\n lfloor: '⌊',\n rfloor: '⌋',\n lang: '〈',\n rang: '〉',\n loz: '◊',\n spades: '♠',\n clubs: '♣',\n hearts: '♥',\n diams: '♦',\n quot: '\"',\n amp: '&',\n lt: '<',\n gt: '>',\n OElig: 'Œ',\n oelig: 'œ',\n Scaron: 'Š',\n scaron: 'š',\n Yuml: 'Ÿ',\n circ: 'ˆ',\n tilde: '˜',\n ensp: ' ',\n emsp: ' ',\n thinsp: ' ',\n zwnj: '',\n zwj: '',\n lrm: '',\n rlm: '',\n ndash: '–',\n mdash: '—',\n lsquo: '‘',\n rsquo: '’',\n sbquo: '‚',\n ldquo: '“',\n rdquo: '”',\n bdquo: '„',\n dagger: '†',\n Dagger: '‡',\n permil: '‰',\n lsaquo: '‹',\n rsaquo: '›',\n euro: '€'\n};\n\n/**\n * List of legacy (that don’t need a trailing `;`) named references which could,\n * depending on what follows them, turn into a different meaning\n *\n * @type {Array<string>}\n */\nconst dangerous = [\n 'cent',\n 'copy',\n 'divide',\n 'gt',\n 'lt',\n 'not',\n 'para',\n 'times'\n];\n\nconst own$1 = {}.hasOwnProperty;\n\n/**\n * `characterEntitiesHtml4` but inverted.\n *\n * @type {Record<string, string>}\n */\nconst characters = {};\n\n/** @type {string} */\nlet key;\n\nfor (key in characterEntitiesHtml4) {\n if (own$1.call(characterEntitiesHtml4, key)) {\n characters[characterEntitiesHtml4[key]] = key;\n }\n}\n\n/**\n * Configurable ways to encode characters as named references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @param {boolean|undefined} attribute\n * @returns {string}\n */\nfunction toNamed(code, next, omit, attribute) {\n const character = String.fromCharCode(code);\n\n if (own$1.call(characters, character)) {\n const name = characters[character];\n const value = '&' + name;\n\n if (\n omit &&\n characterEntitiesLegacy.includes(name) &&\n !dangerous.includes(name) &&\n (!attribute ||\n (next &&\n next !== 61 /* `=` */ &&\n /[^\\da-z]/i.test(String.fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\n\n/**\n * @typedef FormatSmartOptions\n * @property {boolean} [useNamedReferences=false]\n * Prefer named character references (`&`) where possible.\n * @property {boolean} [useShortestReferences=false]\n * Prefer the shortest possible reference, if that results in less bytes.\n * **Note**: `useNamedReferences` can be omitted when using `useShortestReferences`.\n * @property {boolean} [omitOptionalSemicolons=false]\n * Whether to omit semicolons when possible.\n * **Note**: This creates what HTML calls “parse errors” but is otherwise still valid HTML — don’t use this except when building a minifier.\n * Omitting semicolons is possible for certain named and numeric references in some cases.\n * @property {boolean} [attribute=false]\n * Create character references which don’t fail in attributes.\n * **Note**: `attribute` only applies when operating dangerously with\n * `omitOptionalSemicolons: true`.\n */\n\n\n/**\n * Configurable ways to encode a character yielding pretty or small results.\n *\n * @param {number} code\n * @param {number} next\n * @param {FormatSmartOptions} options\n * @returns {string}\n */\nfunction formatSmart(code, next, options) {\n let numeric = toHexadecimal(code, next, options.omitOptionalSemicolons);\n /** @type {string|undefined} */\n let named;\n\n if (options.useNamedReferences || options.useShortestReferences) {\n named = toNamed(\n code,\n next,\n options.omitOptionalSemicolons,\n options.attribute\n );\n }\n\n // Use the shortest numeric reference when requested.\n // A simple algorithm would use decimal for all code points under 100, as\n // those are shorter than hexadecimal:\n //\n // * `c` vs `c` (decimal shorter)\n // * `d` vs `d` (equal)\n //\n // However, because we take `next` into consideration when `omit` is used,\n // And it would be possible that decimals are shorter on bigger values as\n // well if `next` is hexadecimal but not decimal, we instead compare both.\n if (\n (options.useShortestReferences || !named) &&\n options.useShortestReferences\n ) {\n const decimal = toDecimal(code, next, options.omitOptionalSemicolons);\n\n if (decimal.length < numeric.length) {\n numeric = decimal;\n }\n }\n\n return named &&\n (!options.useShortestReferences || named.length < numeric.length)\n ? named\n : numeric\n}\n\n/**\n * @typedef {import('./core.js').CoreOptions & import('./util/format-smart.js').FormatSmartOptions} Options\n * @typedef {import('./core.js').CoreOptions} LightOptions\n */\n\n\n/**\n * Encode special characters in `value`.\n *\n * @param {string} value\n * Value to encode.\n * @param {Options} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nfunction stringifyEntities(value, options) {\n return core(value, Object.assign({format: formatSmart}, options))\n}\n\n/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\n\nconst htmlCommentRegex = /^>|^->|<!--|-->|--!>|<!-$/g;\n\n// Declare arrays as variables so it can be cached by `stringifyEntities`\nconst bogusCommentEntitySubset = ['>'];\nconst commentEntitySubset = ['<', '>'];\n\n/**\n * Serialize a comment.\n *\n * @param {Comment} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction comment(node, _1, _2, state) {\n // See: <https://html.spec.whatwg.org/multipage/syntax.html#comments>\n return state.settings.bogusComments\n ? '<?' +\n stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: bogusCommentEntitySubset\n })\n ) +\n '>'\n : '<!--' + node.value.replace(htmlCommentRegex, encode) + '-->'\n\n /**\n * @param {string} $0\n */\n function encode($0) {\n return stringifyEntities(\n $0,\n Object.assign({}, state.settings.characterReferences, {\n subset: commentEntitySubset\n })\n )\n }\n}\n\n/**\n * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Serialize a doctype.\n *\n * @param {Doctype} _1\n * Node to handle.\n * @param {number | undefined} _2\n * Index of `node` in `parent.\n * @param {Parents | undefined} _3\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction doctype(_1, _2, _3, state) {\n return (\n '<!' +\n (state.settings.upperDoctype ? 'DOCTYPE' : 'doctype') +\n (state.settings.tightDoctype ? '' : ' ') +\n 'html>'\n )\n}\n\n/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nfunction ccount(value, character) {\n const source = String(value);\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0;\n let index = source.indexOf(character);\n\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n\n return count\n}\n\n/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nfunction stringify$1(values, options) {\n const settings = options || {};\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values;\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n\n/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nfunction stringify(values) {\n return values.join(' ').trim()\n}\n\n/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g;\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nfunction whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\n */\n\n\nconst siblingAfter = siblings(1);\nconst siblingBefore = siblings(-1);\n\n/** @type {Array<RootContent>} */\nconst emptyChildren$1 = [];\n\n/**\n * Factory to check siblings in a direction.\n *\n * @param {number} increment\n */\nfunction siblings(increment) {\n return sibling\n\n /**\n * Find applicable siblings in a direction.\n *\n * @template {Parents} Parent\n * Parent type.\n * @param {Parent | undefined} parent\n * Parent.\n * @param {number | undefined} index\n * Index of child in `parent`.\n * @param {boolean | undefined} [includeWhitespace=false]\n * Whether to include whitespace (default: `false`).\n * @returns {Parent extends {children: Array<infer Child>} ? Child | undefined : never}\n * Child of parent.\n */\n function sibling(parent, index, includeWhitespace) {\n const siblings = parent ? parent.children : emptyChildren$1;\n let offset = (index || 0) + increment;\n let next = siblings[offset];\n\n if (!includeWhitespace) {\n while (next && whitespace(next)) {\n offset += increment;\n next = siblings[offset];\n }\n }\n\n // @ts-expect-error: it’s a correct child.\n return next\n }\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @callback OmitHandle\n * Check if a tag can be omitted.\n * @param {Element} element\n * Element to check.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether to omit a tag.\n *\n */\n\nconst own = {}.hasOwnProperty;\n\n/**\n * Factory to check if a given node can have a tag omitted.\n *\n * @param {Record<string, OmitHandle>} handlers\n * Omission handlers, where each key is a tag name, and each value is the\n * corresponding handler.\n * @returns {OmitHandle}\n * Whether to omit a tag of an element.\n */\nfunction omission(handlers) {\n return omit\n\n /**\n * Check if a given node can have a tag omitted.\n *\n * @type {OmitHandle}\n */\n function omit(node, index, parent) {\n return (\n own.call(handlers, node.tagName) &&\n handlers[node.tagName](node, index, parent)\n )\n }\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n\nconst closing = omission({\n body: body$1,\n caption: headOrColgroupOrCaption,\n colgroup: headOrColgroupOrCaption,\n dd,\n dt,\n head: headOrColgroupOrCaption,\n html: html$1,\n li,\n optgroup,\n option,\n p,\n rp: rubyElement,\n rt: rubyElement,\n tbody: tbody$1,\n td: cells,\n tfoot,\n th: cells,\n thead,\n tr\n});\n\n/**\n * Macro for `</head>`, `</colgroup>`, and `</caption>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction headOrColgroupOrCaption(_, index, parent) {\n const next = siblingAfter(parent, index, true);\n return (\n !next ||\n (next.type !== 'comment' &&\n !(next.type === 'text' && whitespace(next.value.charAt(0))))\n )\n}\n\n/**\n * Whether to omit `</html>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction html$1(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</body>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction body$1(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</p>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction p(_, index, parent) {\n const next = siblingAfter(parent, index);\n return next\n ? next.type === 'element' &&\n (next.tagName === 'address' ||\n next.tagName === 'article' ||\n next.tagName === 'aside' ||\n next.tagName === 'blockquote' ||\n next.tagName === 'details' ||\n next.tagName === 'div' ||\n next.tagName === 'dl' ||\n next.tagName === 'fieldset' ||\n next.tagName === 'figcaption' ||\n next.tagName === 'figure' ||\n next.tagName === 'footer' ||\n next.tagName === 'form' ||\n next.tagName === 'h1' ||\n next.tagName === 'h2' ||\n next.tagName === 'h3' ||\n next.tagName === 'h4' ||\n next.tagName === 'h5' ||\n next.tagName === 'h6' ||\n next.tagName === 'header' ||\n next.tagName === 'hgroup' ||\n next.tagName === 'hr' ||\n next.tagName === 'main' ||\n next.tagName === 'menu' ||\n next.tagName === 'nav' ||\n next.tagName === 'ol' ||\n next.tagName === 'p' ||\n next.tagName === 'pre' ||\n next.tagName === 'section' ||\n next.tagName === 'table' ||\n next.tagName === 'ul')\n : !parent ||\n // Confusing parent.\n !(\n parent.type === 'element' &&\n (parent.tagName === 'a' ||\n parent.tagName === 'audio' ||\n parent.tagName === 'del' ||\n parent.tagName === 'ins' ||\n parent.tagName === 'map' ||\n parent.tagName === 'noscript' ||\n parent.tagName === 'video')\n )\n}\n\n/**\n * Whether to omit `</li>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction li(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || (next.type === 'element' && next.tagName === 'li')\n}\n\n/**\n * Whether to omit `</dt>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dt(_, index, parent) {\n const next = siblingAfter(parent, index);\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd')\n )\n}\n\n/**\n * Whether to omit `</dd>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dd(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd'))\n )\n}\n\n/**\n * Whether to omit `</rt>` or `</rp>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction rubyElement(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'rp' || next.tagName === 'rt'))\n )\n}\n\n/**\n * Whether to omit `</optgroup>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction optgroup(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || (next.type === 'element' && next.tagName === 'optgroup')\n}\n\n/**\n * Whether to omit `</option>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction option(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'option' || next.tagName === 'optgroup'))\n )\n}\n\n/**\n * Whether to omit `</thead>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction thead(_, index, parent) {\n const next = siblingAfter(parent, index);\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot')\n )\n}\n\n/**\n * Whether to omit `</tbody>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tbody$1(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot'))\n )\n}\n\n/**\n * Whether to omit `</tfoot>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tfoot(_, index, parent) {\n return !siblingAfter(parent, index)\n}\n\n/**\n * Whether to omit `</tr>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tr(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || (next.type === 'element' && next.tagName === 'tr')\n}\n\n/**\n * Whether to omit `</td>` or `</th>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction cells(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'td' || next.tagName === 'th'))\n )\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n\nconst opening = omission({\n body,\n colgroup,\n head,\n html,\n tbody\n});\n\n/**\n * Whether to omit `<html>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction html(node) {\n const head = siblingAfter(node, -1);\n return !head || head.type !== 'comment'\n}\n\n/**\n * Whether to omit `<head>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction head(node) {\n const children = node.children;\n /** @type {Array<string>} */\n const seen = [];\n let index = -1;\n\n while (++index < children.length) {\n const child = children[index];\n if (\n child.type === 'element' &&\n (child.tagName === 'title' || child.tagName === 'base')\n ) {\n if (seen.includes(child.tagName)) return false\n seen.push(child.tagName);\n }\n }\n\n return children.length > 0\n}\n\n/**\n * Whether to omit `<body>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction body(node) {\n const head = siblingAfter(node, -1, true);\n\n return (\n !head ||\n (head.type !== 'comment' &&\n !(head.type === 'text' && whitespace(head.value.charAt(0))) &&\n !(\n head.type === 'element' &&\n (head.tagName === 'meta' ||\n head.tagName === 'link' ||\n head.tagName === 'script' ||\n head.tagName === 'style' ||\n head.tagName === 'template')\n ))\n )\n}\n\n/**\n * Whether to omit `<colgroup>`.\n * The spec describes some logic for the opening tag, but it’s easier to\n * implement in the closing tag, to the same effect, so we handle it there\n * instead.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction colgroup(node, index, parent) {\n const previous = siblingBefore(parent, index);\n const head = siblingAfter(node, -1, true);\n\n // Previous colgroup was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n previous.tagName === 'colgroup' &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'col')\n}\n\n/**\n * Whether to omit `<tbody>`.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction tbody(node, index, parent) {\n const previous = siblingBefore(parent, index);\n const head = siblingAfter(node, -1);\n\n // Previous table section was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n (previous.tagName === 'thead' || previous.tagName === 'tbody') &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'tr')\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Properties} Properties\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Maps of subsets.\n *\n * Each value is a matrix of tuples.\n * The value at `0` causes parse errors, the value at `1` is valid.\n * Of both, the value at `0` is unsafe, and the value at `1` is safe.\n *\n * @type {Record<'double' | 'name' | 'single' | 'unquoted', Array<[Array<string>, Array<string>]>>}\n */\nconst constants = {\n // See: <https://html.spec.whatwg.org/#attribute-name-state>.\n name: [\n ['\\t\\n\\f\\r &/=>'.split(''), '\\t\\n\\f\\r \"&\\'/=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'/<=>'.split(''), '\\0\\t\\n\\f\\r \"&\\'/<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(unquoted)-state>.\n unquoted: [\n ['\\t\\n\\f\\r &>'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'<=>`'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(single-quoted)-state>.\n single: [\n [\"&'\".split(''), '\"&\\'`'.split('')],\n [\"\\0&'\".split(''), '\\0\"&\\'`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(double-quoted)-state>.\n double: [\n ['\"&'.split(''), '\"&\\'`'.split('')],\n ['\\0\"&'.split(''), '\\0\"&\\'`'.split('')]\n ]\n};\n\n/**\n * Serialize an element node.\n *\n * @param {Element} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction element(node, index, parent, state) {\n const schema = state.schema;\n const omit = schema.space === 'svg' ? false : state.settings.omitOptionalTags;\n let selfClosing =\n schema.space === 'svg'\n ? state.settings.closeEmptyElements\n : state.settings.voids.includes(node.tagName.toLowerCase());\n /** @type {Array<string>} */\n const parts = [];\n /** @type {string} */\n let last;\n\n if (schema.space === 'html' && node.tagName === 'svg') {\n state.schema = svg;\n }\n\n const attributes = serializeAttributes(state, node.properties);\n\n const content = state.all(\n schema.space === 'html' && node.tagName === 'template' ? node.content : node\n );\n\n state.schema = schema;\n\n // If the node is categorised as void, but it has children, remove the\n // categorisation.\n // This enables for example `menuitem`s, which are void in W3C HTML but not\n // void in WHATWG HTML, to be stringified properly.\n // Note: `menuitem` has since been removed from the HTML spec, and so is no\n // longer void.\n if (content) selfClosing = false;\n\n if (attributes || !omit || !opening(node, index, parent)) {\n parts.push('<', node.tagName, attributes ? ' ' + attributes : '');\n\n if (\n selfClosing &&\n (schema.space === 'svg' || state.settings.closeSelfClosing)\n ) {\n last = attributes.charAt(attributes.length - 1);\n if (\n !state.settings.tightSelfClosing ||\n last === '/' ||\n (last && last !== '\"' && last !== \"'\")\n ) {\n parts.push(' ');\n }\n\n parts.push('/');\n }\n\n parts.push('>');\n }\n\n parts.push(content);\n\n if (!selfClosing && (!omit || !closing(node, index, parent))) {\n parts.push('</' + node.tagName + '>');\n }\n\n return parts.join('')\n}\n\n/**\n * @param {State} state\n * @param {Properties | null | undefined} properties\n * @returns {string}\n */\nfunction serializeAttributes(state, properties) {\n /** @type {Array<string>} */\n const values = [];\n let index = -1;\n /** @type {string} */\n let key;\n\n if (properties) {\n for (key in properties) {\n if (properties[key] !== null && properties[key] !== undefined) {\n const value = serializeAttribute(state, key, properties[key]);\n if (value) values.push(value);\n }\n }\n }\n\n while (++index < values.length) {\n const last = state.settings.tightAttributes\n ? values[index].charAt(values[index].length - 1)\n : undefined;\n\n // In tight mode, don’t add a space after quoted attributes.\n if (index !== values.length - 1 && last !== '\"' && last !== \"'\") {\n values[index] += ' ';\n }\n }\n\n return values.join('')\n}\n\n/**\n * @param {State} state\n * @param {string} key\n * @param {Properties[keyof Properties]} value\n * @returns {string}\n */\nfunction serializeAttribute(state, key, value) {\n const info = find(state.schema, key);\n const x =\n state.settings.allowParseErrors && state.schema.space === 'html' ? 0 : 1;\n const y = state.settings.allowDangerousCharacters ? 0 : 1;\n let quote = state.quote;\n /** @type {string | undefined} */\n let result;\n\n if (info.overloadedBoolean && (value === info.attribute || value === '')) {\n value = true;\n } else if (\n info.boolean ||\n (info.overloadedBoolean && typeof value !== 'string')\n ) {\n value = Boolean(value);\n }\n\n if (\n value === null ||\n value === undefined ||\n value === false ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return ''\n }\n\n const name = stringifyEntities(\n info.attribute,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: constants.name[x][y]\n })\n );\n\n // No value.\n // There is currently only one boolean property in SVG: `[download]` on\n // `<a>`.\n // This property does not seem to work in browsers (Firefox, Safari, Chrome),\n // so I can’t test if dropping the value works.\n // But I assume that it should:\n //\n // ```html\n // <!doctype html>\n // <svg viewBox=\"0 0 100 100\">\n // <a href=https://example.com download>\n // <circle cx=50 cy=40 r=35 />\n // </a>\n // </svg>\n // ```\n //\n // See: <https://github.com/wooorm/property-information/blob/main/lib/svg.js>\n if (value === true) return name\n\n // `spaces` doesn’t accept a second argument, but it’s given here just to\n // keep the code cleaner.\n value = Array.isArray(value)\n ? (info.commaSeparated ? stringify$1 : stringify)(value, {\n padLeft: !state.settings.tightCommaSeparatedLists\n })\n : String(value);\n\n if (state.settings.collapseEmptyAttributes && !value) return name\n\n // Check unquoted value.\n if (state.settings.preferUnquoted) {\n result = stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n attribute: true,\n subset: constants.unquoted[x][y]\n })\n );\n }\n\n // If we don’t want unquoted, or if `value` contains character references when\n // unquoted…\n if (result !== value) {\n // If the alternative is less common than `quote`, switch.\n if (\n state.settings.quoteSmart &&\n ccount(value, quote) > ccount(value, state.alternative)\n ) {\n quote = state.alternative;\n }\n\n result =\n quote +\n stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: (quote === \"'\" ? constants.single : constants.double)[x][y],\n attribute: true\n })\n ) +\n quote;\n }\n\n // Don’t add a `=` for unquoted empties.\n return name + (result ? '=' + result : result)\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n// Declare array as variable so it can be cached by `stringifyEntities`\nconst textEntitySubset = ['<', '&'];\n\n/**\n * Serialize a text node.\n *\n * @param {Raw | Text} node\n * Node to handle.\n * @param {number | undefined} _\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction text(node, _, parent, state) {\n // Check if content of `node` should be escaped.\n return parent &&\n parent.type === 'element' &&\n (parent.tagName === 'script' || parent.tagName === 'style')\n ? node.value\n : stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: textEntitySubset\n })\n )\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Serialize a raw node.\n *\n * @param {Raw} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction raw(node, index, parent, state) {\n return state.settings.allowDangerousHtml\n ? node.value\n : text(node, index, parent, state)\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Serialize a root.\n *\n * @param {Root} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction root(node, _1, _2, state) {\n return state.all(node)\n}\n\n/**\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * @type {(node: Nodes, index: number | undefined, parent: Parents | undefined, state: State) => string}\n */\nconst handle = zwitch('type', {\n invalid,\n unknown,\n handlers: {comment, doctype, element, raw, root, text}\n});\n\n/**\n * Fail when a non-node is found in the tree.\n *\n * @param {unknown} node\n * Unknown value.\n * @returns {never}\n * Never.\n */\nfunction invalid(node) {\n throw new Error('Expected node, not `' + node + '`')\n}\n\n/**\n * Fail when a node with an unknown type is found in the tree.\n *\n * @param {unknown} node_\n * Unknown node.\n * @returns {never}\n * Never.\n */\nfunction unknown(node_) {\n // `type` is guaranteed by runtime JS.\n const node = /** @type {Nodes} */ (node_);\n throw new Error('Cannot compile unknown node `' + node.type + '`')\n}\n\n/**\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('stringify-entities').Options} StringifyEntitiesOptions\n */\n\n\n/** @type {Options} */\nconst emptyOptions = {};\n\n/** @type {CharacterReferences} */\nconst emptyCharacterReferences = {};\n\n/** @type {Array<never>} */\nconst emptyChildren = [];\n\n/**\n * Serialize hast as HTML.\n *\n * @param {Array<RootContent> | Nodes} tree\n * Tree to serialize.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized HTML.\n */\nfunction toHtml(tree, options) {\n const options_ = options || emptyOptions;\n const quote = options_.quote || '\"';\n const alternative = quote === '\"' ? \"'\" : '\"';\n\n if (quote !== '\"' && quote !== \"'\") {\n throw new Error('Invalid quote `' + quote + '`, expected `\\'` or `\"`')\n }\n\n /** @type {State} */\n const state = {\n one,\n all,\n settings: {\n omitOptionalTags: options_.omitOptionalTags || false,\n allowParseErrors: options_.allowParseErrors || false,\n allowDangerousCharacters: options_.allowDangerousCharacters || false,\n quoteSmart: options_.quoteSmart || false,\n preferUnquoted: options_.preferUnquoted || false,\n tightAttributes: options_.tightAttributes || false,\n upperDoctype: options_.upperDoctype || false,\n tightDoctype: options_.tightDoctype || false,\n bogusComments: options_.bogusComments || false,\n tightCommaSeparatedLists: options_.tightCommaSeparatedLists || false,\n tightSelfClosing: options_.tightSelfClosing || false,\n collapseEmptyAttributes: options_.collapseEmptyAttributes || false,\n allowDangerousHtml: options_.allowDangerousHtml || false,\n voids: options_.voids || htmlVoidElements,\n characterReferences:\n options_.characterReferences || emptyCharacterReferences,\n closeSelfClosing: options_.closeSelfClosing || false,\n closeEmptyElements: options_.closeEmptyElements || false\n },\n schema: options_.space === 'svg' ? svg : html$2,\n quote,\n alternative\n };\n\n return state.one(\n Array.isArray(tree) ? {type: 'root', children: tree} : tree,\n undefined,\n undefined\n )\n}\n\n/**\n * Serialize a node.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Nodes} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {string}\n * Serialized node.\n */\nfunction one(node, index, parent) {\n return handle(node, index, parent, this)\n}\n\n/**\n * Serialize all children of `parent`.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Parents | undefined} parent\n * Parent whose children to serialize.\n * @returns {string}\n */\nfunction all(parent) {\n /** @type {Array<string>} */\n const results = [];\n const children = (parent && parent.children) || emptyChildren;\n let index = -1;\n\n while (++index < children.length) {\n results[index] = this.one(children[index], index, parent);\n }\n\n return results.join('')\n}\n\n/**\n * Get highlighted code in HTML.\n */\nfunction codeToHtml(internal, code, options) {\n const context = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options),\n };\n let result = toHtml(codeToHast(internal, code, options, context));\n for (const transformer of getTransformers(options))\n result = transformer.postprocess?.call(context, result, options) || result;\n return result;\n}\n\nasync function main(init) {\n let wasmMemory;\n let buffer;\n const binding = {};\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n binding.HEAPU8 = new Uint8Array(buf);\n binding.HEAPU32 = new Uint32Array(buf);\n }\n function _emscripten_get_now() {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n }\n function _emscripten_memcpy_big(dest, src, num) {\n binding.HEAPU8.copyWithin(dest, src, src + num);\n }\n function getHeapMax() {\n return 2147483648;\n }\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n }\n catch { }\n }\n function _emscripten_resize_heap(requestedSize) {\n const oldSize = binding.HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n const maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize)\n return false;\n const alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple);\n for (let cutDown = 1; cutDown <= 4; cutDown *= 2) {\n let overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n const newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n const replacement = emscripten_realloc_buffer(newSize);\n if (replacement)\n return true;\n }\n return false;\n }\n const UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead = 1024) {\n const endIdx = idx + maxBytesToRead;\n let endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx))\n ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n let str = '';\n while (idx < endPtr) {\n let u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n const u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) === 192) {\n str += String.fromCharCode(((u0 & 31) << 6) | u1);\n continue;\n }\n const u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) === 224) {\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\n }\n else {\n u0 = ((u0 & 7) << 18)\n | (u1 << 12)\n | (u2 << 6)\n | (heapOrArray[idx++] & 63);\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n }\n else {\n const ch = u0 - 65536;\n str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(binding.HEAPU8, ptr, maxBytesToRead) : '';\n }\n const asmLibraryArg = {\n emscripten_get_now: _emscripten_get_now,\n emscripten_memcpy_big: _emscripten_memcpy_big,\n emscripten_resize_heap: _emscripten_resize_heap,\n fd_write: () => 0,\n };\n async function createWasm() {\n const info = {\n env: asmLibraryArg,\n wasi_snapshot_preview1: asmLibraryArg,\n };\n const exports = await init(info);\n wasmMemory = exports.memory;\n updateGlobalBufferAndViews(wasmMemory.buffer);\n Object.assign(binding, exports);\n binding.UTF8ToString = UTF8ToString;\n }\n await createWasm();\n return binding;\n}\n\n/* ---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *-------------------------------------------------------- */\nlet onigBinding = null;\nlet defaultDebugCall = false;\nfunction throwLastOnigError(onigBinding) {\n throw new ShikiError(onigBinding.UTF8ToString(onigBinding.getLastOnigError()));\n}\nclass UtfString {\n static _utf8ByteLength(str) {\n let result = 0;\n for (let i = 0, len = str.length; i < len; i++) {\n const charCode = str.charCodeAt(i);\n let codepoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i + 1 < len) {\n const nextCharCode = str.charCodeAt(i + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codepoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (codepoint <= 0x7F)\n result += 1;\n else if (codepoint <= 0x7FF)\n result += 2;\n else if (codepoint <= 0xFFFF)\n result += 3;\n else\n result += 4;\n if (wasSurrogatePair)\n i++;\n }\n return result;\n }\n utf16Length;\n utf8Length;\n utf16Value;\n utf8Value;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n constructor(str) {\n const utf16Length = str.length;\n const utf8Length = UtfString._utf8ByteLength(str);\n const computeIndicesMapping = (utf8Length !== utf16Length);\n const utf16OffsetToUtf8 = computeIndicesMapping ? new Uint32Array(utf16Length + 1) : null;\n if (computeIndicesMapping)\n utf16OffsetToUtf8[utf16Length] = utf8Length;\n const utf8OffsetToUtf16 = computeIndicesMapping ? new Uint32Array(utf8Length + 1) : null;\n if (computeIndicesMapping)\n utf8OffsetToUtf16[utf8Length] = utf16Length;\n const utf8Value = new Uint8Array(utf8Length);\n let i8 = 0;\n for (let i16 = 0; i16 < utf16Length; i16++) {\n const charCode = str.charCodeAt(i16);\n let codePoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i16 + 1 < utf16Length) {\n const nextCharCode = str.charCodeAt(i16 + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codePoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (computeIndicesMapping) {\n utf16OffsetToUtf8[i16] = i8;\n if (wasSurrogatePair)\n utf16OffsetToUtf8[i16 + 1] = i8;\n if (codePoint <= 0x7F) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n }\n else if (codePoint <= 0x7FF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n }\n else if (codePoint <= 0xFFFF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n }\n else {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n utf8OffsetToUtf16[i8 + 3] = i16;\n }\n }\n if (codePoint <= 0x7F) {\n utf8Value[i8++] = codePoint;\n }\n else if (codePoint <= 0x7FF) {\n utf8Value[i8++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else if (codePoint <= 0xFFFF) {\n utf8Value[i8++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else {\n utf8Value[i8++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n if (wasSurrogatePair)\n i16++;\n }\n this.utf16Length = utf16Length;\n this.utf8Length = utf8Length;\n this.utf16Value = str;\n this.utf8Value = utf8Value;\n this.utf16OffsetToUtf8 = utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utf8OffsetToUtf16;\n }\n createString(onigBinding) {\n const result = onigBinding.omalloc(this.utf8Length);\n onigBinding.HEAPU8.set(this.utf8Value, result);\n return result;\n }\n}\nclass OnigString {\n static LAST_ID = 0;\n static _sharedPtr = 0; // a pointer to a string of 10000 bytes\n static _sharedPtrInUse = false;\n id = (++OnigString.LAST_ID);\n _onigBinding;\n content;\n utf16Length;\n utf8Length;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n ptr;\n constructor(str) {\n if (!onigBinding)\n throw new ShikiError('Must invoke loadWasm first.');\n this._onigBinding = onigBinding;\n this.content = str;\n const utfString = new UtfString(str);\n this.utf16Length = utfString.utf16Length;\n this.utf8Length = utfString.utf8Length;\n this.utf16OffsetToUtf8 = utfString.utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utfString.utf8OffsetToUtf16;\n if (this.utf8Length < 10000 && !OnigString._sharedPtrInUse) {\n if (!OnigString._sharedPtr)\n OnigString._sharedPtr = onigBinding.omalloc(10000);\n OnigString._sharedPtrInUse = true;\n onigBinding.HEAPU8.set(utfString.utf8Value, OnigString._sharedPtr);\n this.ptr = OnigString._sharedPtr;\n }\n else {\n this.ptr = utfString.createString(onigBinding);\n }\n }\n convertUtf8OffsetToUtf16(utf8Offset) {\n if (this.utf8OffsetToUtf16) {\n if (utf8Offset < 0)\n return 0;\n if (utf8Offset > this.utf8Length)\n return this.utf16Length;\n return this.utf8OffsetToUtf16[utf8Offset];\n }\n return utf8Offset;\n }\n convertUtf16OffsetToUtf8(utf16Offset) {\n if (this.utf16OffsetToUtf8) {\n if (utf16Offset < 0)\n return 0;\n if (utf16Offset > this.utf16Length)\n return this.utf8Length;\n return this.utf16OffsetToUtf8[utf16Offset];\n }\n return utf16Offset;\n }\n dispose() {\n if (this.ptr === OnigString._sharedPtr)\n OnigString._sharedPtrInUse = false;\n else\n this._onigBinding.ofree(this.ptr);\n }\n}\nclass OnigScanner {\n _onigBinding;\n _ptr;\n constructor(patterns) {\n if (!onigBinding)\n throw new ShikiError('Must invoke loadWasm first.');\n const strPtrsArr = [];\n const strLenArr = [];\n for (let i = 0, len = patterns.length; i < len; i++) {\n const utfString = new UtfString(patterns[i]);\n strPtrsArr[i] = utfString.createString(onigBinding);\n strLenArr[i] = utfString.utf8Length;\n }\n const strPtrsPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strPtrsArr, strPtrsPtr / 4);\n const strLenPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strLenArr, strLenPtr / 4);\n const scannerPtr = onigBinding.createOnigScanner(strPtrsPtr, strLenPtr, patterns.length);\n for (let i = 0, len = patterns.length; i < len; i++)\n onigBinding.ofree(strPtrsArr[i]);\n onigBinding.ofree(strLenPtr);\n onigBinding.ofree(strPtrsPtr);\n if (scannerPtr === 0)\n throwLastOnigError(onigBinding);\n this._onigBinding = onigBinding;\n this._ptr = scannerPtr;\n }\n dispose() {\n this._onigBinding.freeOnigScanner(this._ptr);\n }\n findNextMatchSync(string, startPosition, arg) {\n let debugCall = defaultDebugCall;\n let options = 0 /* FindOption.None */;\n if (typeof arg === 'number') {\n if (arg & 8 /* FindOption.DebugCall */)\n debugCall = true;\n options = arg;\n }\n else if (typeof arg === 'boolean') {\n debugCall = arg;\n }\n if (typeof string === 'string') {\n string = new OnigString(string);\n const result = this._findNextMatchSync(string, startPosition, debugCall, options);\n string.dispose();\n return result;\n }\n return this._findNextMatchSync(string, startPosition, debugCall, options);\n }\n _findNextMatchSync(string, startPosition, debugCall, options) {\n const onigBinding = this._onigBinding;\n let resultPtr;\n if (debugCall)\n resultPtr = onigBinding.findNextOnigScannerMatchDbg(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n else\n resultPtr = onigBinding.findNextOnigScannerMatch(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n if (resultPtr === 0) {\n // no match\n return null;\n }\n const HEAPU32 = onigBinding.HEAPU32;\n let offset = resultPtr / 4; // byte offset -> uint32 offset\n const index = HEAPU32[offset++];\n const count = HEAPU32[offset++];\n const captureIndices = [];\n for (let i = 0; i < count; i++) {\n const beg = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n const end = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n captureIndices[i] = {\n start: beg,\n end,\n length: end - beg,\n };\n }\n return {\n index,\n captureIndices,\n };\n }\n}\nfunction isInstantiatorOptionsObject(dataOrOptions) {\n return (typeof dataOrOptions.instantiator === 'function');\n}\nfunction isInstantiatorModule(dataOrOptions) {\n return (typeof dataOrOptions.default === 'function');\n}\nfunction isDataOptionsObject(dataOrOptions) {\n return (typeof dataOrOptions.data !== 'undefined');\n}\nfunction isResponse(dataOrOptions) {\n return (typeof Response !== 'undefined' && dataOrOptions instanceof Response);\n}\nfunction isArrayBuffer(data) {\n return (typeof ArrayBuffer !== 'undefined' && (data instanceof ArrayBuffer || ArrayBuffer.isView(data)))\n // eslint-disable-next-line node/prefer-global/buffer\n || (typeof Buffer !== 'undefined' && Buffer.isBuffer?.(data))\n || (typeof SharedArrayBuffer !== 'undefined' && data instanceof SharedArrayBuffer)\n || (typeof Uint32Array !== 'undefined' && data instanceof Uint32Array);\n}\nlet initPromise;\nfunction loadWasm(options) {\n if (initPromise)\n return initPromise;\n async function _load() {\n onigBinding = await main(async (info) => {\n let instance = options;\n instance = await instance;\n if (typeof instance === 'function')\n instance = await instance(info);\n if (typeof instance === 'function')\n instance = await instance(info);\n if (isInstantiatorOptionsObject(instance)) {\n instance = await instance.instantiator(info);\n }\n else if (isInstantiatorModule(instance)) {\n instance = await instance.default(info);\n }\n else {\n if (isDataOptionsObject(instance))\n instance = instance.data;\n if (isResponse(instance)) {\n if (typeof WebAssembly.instantiateStreaming === 'function')\n instance = await _makeResponseStreamingLoader(instance)(info);\n else\n instance = await _makeResponseNonStreamingLoader(instance)(info);\n }\n else if (isArrayBuffer(instance)) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n // import(\"shiki/onig.wasm\") returns `{ default: WebAssembly.Module }` on cloudflare workers\n // https://developers.cloudflare.com/workers/wrangler/bundling/\n else if (instance instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n else if ('default' in instance && instance.default instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance.default)(info);\n }\n }\n if ('instance' in instance)\n instance = instance.instance;\n if ('exports' in instance)\n instance = instance.exports;\n return instance;\n });\n }\n initPromise = _load();\n return initPromise;\n}\nfunction _makeArrayBufferLoader(data) {\n return importObject => WebAssembly.instantiate(data, importObject);\n}\nfunction _makeResponseStreamingLoader(data) {\n return importObject => WebAssembly.instantiateStreaming(data, importObject);\n}\nfunction _makeResponseNonStreamingLoader(data) {\n return async (importObject) => {\n const arrayBuffer = await data.arrayBuffer();\n return WebAssembly.instantiate(arrayBuffer, importObject);\n };\n}\nfunction createOnigString(str) {\n return new OnigString(str);\n}\nfunction createOnigScanner(patterns) {\n return new OnigScanner(patterns);\n}\n\n/**\n * https://github.com/microsoft/vscode/blob/f7f05dee53fb33fe023db2e06e30a89d3094488f/src/vs/platform/theme/common/colorRegistry.ts#L258-L268\n */\nconst VSCODE_FALLBACK_EDITOR_FG = { light: '#333333', dark: '#bbbbbb' };\nconst VSCODE_FALLBACK_EDITOR_BG = { light: '#fffffe', dark: '#1e1e1e' };\nconst RESOLVED_KEY = '__shiki_resolved';\n/**\n * Normalize a textmate theme to shiki theme\n */\nfunction normalizeTheme(rawTheme) {\n // @ts-expect-error private field\n if (rawTheme?.[RESOLVED_KEY])\n return rawTheme;\n const theme = {\n ...rawTheme,\n };\n // Fallback settings\n if (theme.tokenColors && !theme.settings) {\n theme.settings = theme.tokenColors;\n delete theme.tokenColors;\n }\n theme.type ||= 'dark';\n theme.colorReplacements = { ...theme.colorReplacements };\n theme.settings ||= [];\n // Guess fg/bg colors\n let { bg, fg } = theme;\n if (!bg || !fg) {\n /**\n * First try:\n * Theme might contain a global `tokenColor` without `name` or `scope`\n * Used as default value for foreground/background\n */\n const globalSetting = theme.settings\n ? theme.settings.find((s) => !s.name && !s.scope)\n : undefined;\n if (globalSetting?.settings?.foreground)\n fg = globalSetting.settings.foreground;\n if (globalSetting?.settings?.background)\n bg = globalSetting.settings.background;\n /**\n * Second try:\n * If there's no global `tokenColor` without `name` or `scope`\n * Use `editor.foreground` and `editor.background`\n */\n if (!fg && theme?.colors?.['editor.foreground'])\n fg = theme.colors['editor.foreground'];\n if (!bg && theme?.colors?.['editor.background'])\n bg = theme.colors['editor.background'];\n /**\n * Last try:\n * If there's no fg/bg color specified in theme, use default\n */\n if (!fg)\n fg = theme.type === 'light' ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark;\n if (!bg)\n bg = theme.type === 'light' ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark;\n theme.fg = fg;\n theme.bg = bg;\n }\n // Push a no-scope setting with fallback colors\n if (!(theme.settings[0] && theme.settings[0].settings && !theme.settings[0].scope)) {\n theme.settings.unshift({\n settings: {\n foreground: theme.fg,\n background: theme.bg,\n },\n });\n }\n // Push non-hex colors to color replacements, as `vscode-textmate` doesn't support them\n let replacementCount = 0;\n const replacementMap = new Map();\n function getReplacementColor(value) {\n if (replacementMap.has(value))\n return replacementMap.get(value);\n replacementCount += 1;\n const hex = `#${replacementCount.toString(16).padStart(8, '0').toLowerCase()}`;\n if (theme.colorReplacements?.[`#${hex}`]) // already exists\n return getReplacementColor(value);\n replacementMap.set(value, hex);\n return hex;\n }\n theme.settings = theme.settings.map((setting) => {\n const replaceFg = setting.settings?.foreground && !setting.settings.foreground.startsWith('#');\n const replaceBg = setting.settings?.background && !setting.settings.background.startsWith('#');\n if (!replaceFg && !replaceBg)\n return setting;\n const clone = {\n ...setting,\n settings: {\n ...setting.settings,\n },\n };\n if (replaceFg) {\n const replacement = getReplacementColor(setting.settings.foreground);\n theme.colorReplacements[replacement] = setting.settings.foreground;\n clone.settings.foreground = replacement;\n }\n if (replaceBg) {\n const replacement = getReplacementColor(setting.settings.background);\n theme.colorReplacements[replacement] = setting.settings.background;\n clone.settings.background = replacement;\n }\n return clone;\n });\n for (const key of Object.keys(theme.colors || {})) {\n // Only patch for known keys\n if (key === 'editor.foreground' || key === 'editor.background' || key.startsWith('terminal.ansi')) {\n if (!theme.colors[key]?.startsWith('#')) {\n const replacement = getReplacementColor(theme.colors[key]);\n theme.colorReplacements[replacement] = theme.colors[key];\n theme.colors[key] = replacement;\n }\n }\n }\n Object.defineProperty(theme, RESOLVED_KEY, {\n enumerable: false,\n writable: false,\n value: true,\n });\n return theme;\n}\n\nclass Registry extends Registry$1 {\n _resolver;\n _themes;\n _langs;\n _alias;\n _resolvedThemes = new Map();\n _resolvedGrammars = new Map();\n _langMap = new Map();\n _langGraph = new Map();\n _textmateThemeCache = new WeakMap();\n _loadedThemesCache = null;\n _loadedLanguagesCache = null;\n constructor(_resolver, _themes, _langs, _alias = {}) {\n super(_resolver);\n this._resolver = _resolver;\n this._themes = _themes;\n this._langs = _langs;\n this._alias = _alias;\n _themes.forEach(t => this.loadTheme(t));\n _langs.forEach(l => this.loadLanguage(l));\n }\n getTheme(theme) {\n if (typeof theme === 'string')\n return this._resolvedThemes.get(theme);\n else\n return this.loadTheme(theme);\n }\n loadTheme(theme) {\n const _theme = normalizeTheme(theme);\n if (_theme.name) {\n this._resolvedThemes.set(_theme.name, _theme);\n // Reset cache\n this._loadedThemesCache = null;\n }\n return _theme;\n }\n getLoadedThemes() {\n if (!this._loadedThemesCache)\n this._loadedThemesCache = [...this._resolvedThemes.keys()];\n return this._loadedThemesCache;\n }\n // Override and re-implement this method to cache the textmate themes as `TextMateTheme.createFromRawTheme`\n // is expensive. Themes can switch often especially for dual-theme support.\n //\n // The parent class also accepts `colorMap` as the second parameter, but since we don't use that,\n // we omit here so it's easier to cache the themes.\n setTheme(theme) {\n let textmateTheme = this._textmateThemeCache.get(theme);\n if (!textmateTheme) {\n textmateTheme = Theme.createFromRawTheme(theme);\n this._textmateThemeCache.set(theme, textmateTheme);\n }\n // @ts-expect-error Access private `_syncRegistry`, but should work in runtime\n this._syncRegistry.setTheme(textmateTheme);\n }\n getGrammar(name) {\n if (this._alias[name]) {\n const resolved = new Set([name]);\n while (this._alias[name]) {\n name = this._alias[name];\n if (resolved.has(name))\n throw new ShikiError(`Circular alias \\`${Array.from(resolved).join(' -> ')} -> ${name}\\``);\n resolved.add(name);\n }\n }\n return this._resolvedGrammars.get(name);\n }\n async loadLanguage(lang) {\n if (this.getGrammar(lang.name))\n return;\n const embeddedLazilyBy = new Set([...this._langMap.values()]\n .filter(i => i.embeddedLangsLazy?.includes(lang.name)));\n this._resolver.addLanguage(lang);\n const grammarConfig = {\n balancedBracketSelectors: lang.balancedBracketSelectors || ['*'],\n unbalancedBracketSelectors: lang.unbalancedBracketSelectors || [],\n };\n // @ts-expect-error Private members, set this to override the previous grammar (that can be a stub)\n this._syncRegistry._rawGrammars.set(lang.scopeName, lang);\n const g = await this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig);\n g.name = lang.name;\n this._resolvedGrammars.set(lang.name, g);\n if (lang.aliases) {\n lang.aliases.forEach((alias) => {\n this._alias[alias] = lang.name;\n });\n }\n // Reset cache\n this._loadedLanguagesCache = null;\n // If there is a language that embeds this language lazily, we need to reload it\n if (embeddedLazilyBy.size) {\n for (const e of embeddedLazilyBy) {\n this._resolvedGrammars.delete(e.name);\n // Reset cache\n this._loadedLanguagesCache = null;\n // @ts-expect-error clear cache\n this._syncRegistry?._injectionGrammars?.delete(e.scopeName);\n // @ts-expect-error clear cache\n this._syncRegistry?._grammars?.delete(e.scopeName);\n await this.loadLanguage(this._langMap.get(e.name));\n }\n }\n }\n async init() {\n this._themes.map(t => this.loadTheme(t));\n await this.loadLanguages(this._langs);\n }\n dispose() {\n super.dispose();\n this._resolvedThemes.clear();\n this._resolvedGrammars.clear();\n this._langMap.clear();\n this._langGraph.clear();\n this._loadedThemesCache = null;\n }\n async loadLanguages(langs) {\n for (const lang of langs)\n this.resolveEmbeddedLanguages(lang);\n const langsGraphArray = Array.from(this._langGraph.entries());\n const missingLangs = langsGraphArray.filter(([_, lang]) => !lang);\n if (missingLangs.length) {\n const dependents = langsGraphArray\n .filter(([_, lang]) => lang && lang.embeddedLangs?.some(l => missingLangs.map(([name]) => name).includes(l)))\n .filter(lang => !missingLangs.includes(lang));\n throw new ShikiError(`Missing languages ${missingLangs.map(([name]) => `\\`${name}\\``).join(', ')}, required by ${dependents.map(([name]) => `\\`${name}\\``).join(', ')}`);\n }\n for (const [_, lang] of langsGraphArray)\n this._resolver.addLanguage(lang);\n for (const [_, lang] of langsGraphArray)\n await this.loadLanguage(lang);\n }\n getLoadedLanguages() {\n if (!this._loadedLanguagesCache) {\n this._loadedLanguagesCache = [\n ...new Set([...this._resolvedGrammars.keys(), ...Object.keys(this._alias)]),\n ];\n }\n return this._loadedLanguagesCache;\n }\n resolveEmbeddedLanguages(lang) {\n this._langMap.set(lang.name, lang);\n this._langGraph.set(lang.name, lang);\n if (lang.embeddedLangs) {\n for (const embeddedLang of lang.embeddedLangs)\n this._langGraph.set(embeddedLang, this._langMap.get(embeddedLang));\n }\n }\n}\n\nclass Resolver {\n _langs = new Map();\n _scopeToLang = new Map();\n _injections = new Map();\n _onigLibPromise;\n constructor(onigLibPromise, langs) {\n this._onigLibPromise = onigLibPromise;\n langs.forEach(i => this.addLanguage(i));\n }\n get onigLib() {\n return this._onigLibPromise;\n }\n getLangRegistration(langIdOrAlias) {\n return this._langs.get(langIdOrAlias);\n }\n async loadGrammar(scopeName) {\n return this._scopeToLang.get(scopeName);\n }\n addLanguage(l) {\n this._langs.set(l.name, l);\n if (l.aliases) {\n l.aliases.forEach((a) => {\n this._langs.set(a, l);\n });\n }\n this._scopeToLang.set(l.scopeName, l);\n if (l.injectTo) {\n l.injectTo.forEach((i) => {\n if (!this._injections.get(i))\n this._injections.set(i, []);\n this._injections.get(i).push(l.scopeName);\n });\n }\n }\n getInjections(scopeName) {\n const scopeParts = scopeName.split('.');\n let injections = [];\n for (let i = 1; i <= scopeParts.length; i++) {\n const subScopeName = scopeParts.slice(0, i).join('.');\n injections = [...injections, ...(this._injections.get(subScopeName) || [])];\n }\n return injections;\n }\n}\n\nlet _defaultWasmLoader;\n/**\n * Set the default wasm loader for `loadWasm`.\n * @internal\n */\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\nlet instancesCount = 0;\n/**\n * Get the minimal shiki context for rendering.\n */\nasync function createShikiInternal(options = {}) {\n instancesCount += 1;\n if (options.warnings !== false && instancesCount >= 10 && instancesCount % 10 === 0)\n console.warn(`[Shiki] ${instancesCount} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \\`highlighter.dispose()\\` to release unused instances.`);\n let isDisposed = false;\n async function normalizeGetter(p) {\n return Promise.resolve(typeof p === 'function' ? p() : p).then(r => r.default || r);\n }\n async function resolveLangs(langs) {\n return Array.from(new Set((await Promise.all(langs\n .filter(l => !isSpecialLang(l))\n .map(async (lang) => await normalizeGetter(lang).then(r => Array.isArray(r) ? r : [r])))).flat()));\n }\n const wasmLoader = options.loadWasm || _defaultWasmLoader;\n const [themes, langs,] = await Promise.all([\n Promise.all((options.themes || []).map(normalizeGetter)).then(r => r.map(normalizeTheme)),\n resolveLangs(options.langs || []),\n wasmLoader ? loadWasm(wasmLoader) : undefined,\n ]);\n const resolver = new Resolver(Promise.resolve({\n createOnigScanner(patterns) {\n return createOnigScanner(patterns);\n },\n createOnigString(s) {\n return createOnigString(s);\n },\n }), langs);\n const _registry = new Registry(resolver, themes, langs, options.langAlias);\n await _registry.init();\n let _lastTheme;\n function getLanguage(name) {\n ensureNotDisposed();\n const _lang = _registry.getGrammar(typeof name === 'string' ? name : name.name);\n if (!_lang)\n throw new ShikiError(`Language \\`${name}\\` not found, you may need to load it first`);\n return _lang;\n }\n function getTheme(name) {\n if (name === 'none')\n return { bg: '', fg: '', name: 'none', settings: [], type: 'dark' };\n ensureNotDisposed();\n const _theme = _registry.getTheme(name);\n if (!_theme)\n throw new ShikiError(`Theme \\`${name}\\` not found, you may need to load it first`);\n return _theme;\n }\n function setTheme(name) {\n ensureNotDisposed();\n const theme = getTheme(name);\n if (_lastTheme !== name) {\n _registry.setTheme(theme);\n _lastTheme = name;\n }\n const colorMap = _registry.getColorMap();\n return {\n theme,\n colorMap,\n };\n }\n function getLoadedThemes() {\n ensureNotDisposed();\n return _registry.getLoadedThemes();\n }\n function getLoadedLanguages() {\n ensureNotDisposed();\n return _registry.getLoadedLanguages();\n }\n async function loadLanguage(...langs) {\n ensureNotDisposed();\n await _registry.loadLanguages(await resolveLangs(langs));\n }\n async function loadTheme(...themes) {\n ensureNotDisposed();\n await Promise.all(themes.map(async (theme) => isSpecialTheme(theme)\n ? null\n : _registry.loadTheme(await normalizeGetter(theme))));\n }\n function ensureNotDisposed() {\n if (isDisposed)\n throw new ShikiError('Shiki instance has been disposed');\n }\n function dispose() {\n if (isDisposed)\n return;\n isDisposed = true;\n _registry.dispose();\n instancesCount -= 1;\n }\n return {\n setTheme,\n getTheme,\n getLanguage,\n getLoadedThemes,\n getLoadedLanguages,\n loadLanguage,\n loadTheme,\n dispose,\n [Symbol.dispose]: dispose,\n };\n}\n/**\n * @deprecated Use `createShikiInternal` instead.\n */\nfunction getShikiInternal(options = {}) {\n // TODO: next: console.warn('`getShikiInternal` is deprecated. Use `createShikiInternal` instead.')\n return createShikiInternal(options);\n}\n\n/**\n * Create a Shiki core highlighter instance, with no languages or themes bundled.\n * Wasm and each language and theme must be loaded manually.\n *\n * @see http://shiki.style/guide/install#fine-grained-bundle\n */\nasync function createHighlighterCore(options = {}) {\n const internal = await createShikiInternal(options);\n return {\n getLastGrammarState: (code, options) => getLastGrammarState(internal, code, options),\n codeToTokensBase: (code, options) => codeToTokensBase(internal, code, options),\n codeToTokensWithThemes: (code, options) => codeToTokensWithThemes(internal, code, options),\n codeToTokens: (code, options) => codeToTokens(internal, code, options),\n codeToHast: (code, options) => codeToHast(internal, code, options),\n codeToHtml: (code, options) => codeToHtml(internal, code, options),\n ...internal,\n getInternalContext: () => internal,\n };\n}\nfunction makeSingletonHighlighterCore(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighterCore(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || [],\n });\n return _shiki;\n }\n else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...(options.themes || [])),\n s.loadLanguage(...(options.langs || [])),\n ]);\n return s;\n }\n }\n return getSingletonHighlighterCore;\n}\nconst getSingletonHighlighterCore = /* @__PURE__ */ makeSingletonHighlighterCore(createHighlighterCore);\n/**\n * @deprecated Use `createHighlighterCore` or `getSingletonHighlighterCore` instead.\n */\n/* v8 ignore next 5 */\nfunction getHighlighterCore(options = {}) {\n // TODO: next: console.warn('`getHighlighterCore` is deprecated. Use `createHighlighterCore` or `getSingletonHighlighterCore` instead.')\n return createHighlighterCore(options);\n}\n\n/**\n * Create a `createHighlighter` function with bundled themes and languages.\n *\n * @param bundledLanguages\n * @param bundledThemes\n * @param loadWasm\n */\nfunction createdBundledHighlighter(bundledLanguages, bundledThemes, loadWasm) {\n async function createHighlighter(options) {\n function resolveLang(lang) {\n if (typeof lang === 'string') {\n if (isSpecialLang(lang))\n return [];\n const bundle = bundledLanguages[lang];\n if (!bundle)\n throw new ShikiError(`Language \\`${lang}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return lang;\n }\n function resolveTheme(theme) {\n if (isSpecialTheme(theme))\n return 'none';\n if (typeof theme === 'string') {\n const bundle = bundledThemes[theme];\n if (!bundle)\n throw new ShikiError(`Theme \\`${theme}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return theme;\n }\n const _themes = (options.themes ?? []).map(i => resolveTheme(i));\n const langs = (options.langs ?? [])\n .map(i => resolveLang(i));\n const core = await createHighlighterCore({\n ...options,\n themes: _themes,\n langs,\n loadWasm,\n });\n return {\n ...core,\n loadLanguage(...langs) {\n return core.loadLanguage(...langs.map(resolveLang));\n },\n loadTheme(...themes) {\n return core.loadTheme(...themes.map(resolveTheme));\n },\n };\n }\n return createHighlighter;\n}\nfunction makeSingletonHighlighter(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighter(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || [],\n });\n return _shiki;\n }\n else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...(options.themes || [])),\n s.loadLanguage(...(options.langs || [])),\n ]);\n return s;\n }\n }\n return getSingletonHighlighter;\n}\nfunction createSingletonShorthands(createHighlighter) {\n const getSingletonHighlighter = makeSingletonHighlighter(createHighlighter);\n return {\n getSingletonHighlighter(options) {\n return getSingletonHighlighter(options);\n },\n async codeToHtml(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToHtml(code, options);\n },\n async codeToHast(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToHast(code, options);\n },\n async codeToTokens(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToTokens(code, options);\n },\n async codeToTokensBase(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme],\n });\n return shiki.codeToTokensBase(code, options);\n },\n async codeToTokensWithThemes(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: Object.values(options.themes).filter(Boolean),\n });\n return shiki.codeToTokensWithThemes(code, options);\n },\n async getLastGrammarState(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme],\n });\n return shiki.getLastGrammarState(code, options);\n },\n };\n}\n\nexport { FontStyle, ShikiError, addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighterCore, createPositionConverter, createShikiInternal, createSingletonShorthands, createdBundledHighlighter, getHighlighterCore, getShikiInternal, getSingletonHighlighterCore, getTokenStyleObject, toHtml as hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, loadWasm, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeTheme, resolveColorReplacements, setDefaultWasmLoader, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations };\n","import { bundledLanguages } from './langs.mjs';\nexport { bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo } from './langs.mjs';\nimport { g as getWasmInlined } from './chunks/wasm-dynamic.mjs';\nimport { bundledThemes } from './themes.mjs';\nexport { bundledThemesInfo } from './themes.mjs';\nimport { createdBundledHighlighter, createSingletonShorthands } from '@shikijs/core';\nexport * from '@shikijs/core';\nexport { createCssVariablesTheme } from './theme-css-variables.mjs';\n\nconst createHighlighter = /* @__PURE__ */ createdBundledHighlighter(\n bundledLanguages,\n bundledThemes,\n getWasmInlined\n);\nconst {\n codeToHtml,\n codeToHast,\n codeToTokens,\n codeToTokensBase,\n codeToTokensWithThemes,\n getSingletonHighlighter,\n getLastGrammarState\n} = /* @__PURE__ */ createSingletonShorthands(\n createHighlighter\n);\nconst getHighlighter = (options) => {\n return createHighlighter(options);\n};\n\nexport { bundledLanguages, bundledThemes, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighter, getHighlighter, getLastGrammarState, getSingletonHighlighter, getWasmInlined };\n","const bundledLanguagesInfo = [\n {\n \"id\": \"abap\",\n \"name\": \"ABAP\",\n \"import\": () => import('./langs/abap.mjs')\n },\n {\n \"id\": \"actionscript-3\",\n \"name\": \"ActionScript\",\n \"import\": () => import('./langs/actionscript-3.mjs')\n },\n {\n \"id\": \"ada\",\n \"name\": \"Ada\",\n \"import\": () => import('./langs/ada.mjs')\n },\n {\n \"id\": \"angular-html\",\n \"name\": \"Angular HTML\",\n \"import\": () => import('./langs/angular-html.mjs')\n },\n {\n \"id\": \"angular-ts\",\n \"name\": \"Angular TypeScript\",\n \"import\": () => import('./langs/angular-ts.mjs')\n },\n {\n \"id\": \"apache\",\n \"name\": \"Apache Conf\",\n \"import\": () => import('./langs/apache.mjs')\n },\n {\n \"id\": \"apex\",\n \"name\": \"Apex\",\n \"import\": () => import('./langs/apex.mjs')\n },\n {\n \"id\": \"apl\",\n \"name\": \"APL\",\n \"import\": () => import('./langs/apl.mjs')\n },\n {\n \"id\": \"applescript\",\n \"name\": \"AppleScript\",\n \"import\": () => import('./langs/applescript.mjs')\n },\n {\n \"id\": \"ara\",\n \"name\": \"Ara\",\n \"import\": () => import('./langs/ara.mjs')\n },\n {\n \"id\": \"asciidoc\",\n \"name\": \"AsciiDoc\",\n \"aliases\": [\n \"adoc\"\n ],\n \"import\": () => import('./langs/asciidoc.mjs')\n },\n {\n \"id\": \"asm\",\n \"name\": \"Assembly\",\n \"import\": () => import('./langs/asm.mjs')\n },\n {\n \"id\": \"astro\",\n \"name\": \"Astro\",\n \"import\": () => import('./langs/astro.mjs')\n },\n {\n \"id\": \"awk\",\n \"name\": \"AWK\",\n \"import\": () => import('./langs/awk.mjs')\n },\n {\n \"id\": \"ballerina\",\n \"name\": \"Ballerina\",\n \"import\": () => import('./langs/ballerina.mjs')\n },\n {\n \"id\": \"bat\",\n \"name\": \"Batch File\",\n \"aliases\": [\n \"batch\"\n ],\n \"import\": () => import('./langs/bat.mjs')\n },\n {\n \"id\": \"beancount\",\n \"name\": \"Beancount\",\n \"import\": () => import('./langs/beancount.mjs')\n },\n {\n \"id\": \"berry\",\n \"name\": \"Berry\",\n \"aliases\": [\n \"be\"\n ],\n \"import\": () => import('./langs/berry.mjs')\n },\n {\n \"id\": \"bibtex\",\n \"name\": \"BibTeX\",\n \"import\": () => import('./langs/bibtex.mjs')\n },\n {\n \"id\": \"bicep\",\n \"name\": \"Bicep\",\n \"import\": () => import('./langs/bicep.mjs')\n },\n {\n \"id\": \"blade\",\n \"name\": \"Blade\",\n \"import\": () => import('./langs/blade.mjs')\n },\n {\n \"id\": \"c\",\n \"name\": \"C\",\n \"import\": () => import('./langs/c.mjs')\n },\n {\n \"id\": \"cadence\",\n \"name\": \"Cadence\",\n \"aliases\": [\n \"cdc\"\n ],\n \"import\": () => import('./langs/cadence.mjs')\n },\n {\n \"id\": \"clarity\",\n \"name\": \"Clarity\",\n \"import\": () => import('./langs/clarity.mjs')\n },\n {\n \"id\": \"clojure\",\n \"name\": \"Clojure\",\n \"aliases\": [\n \"clj\"\n ],\n \"import\": () => import('./langs/clojure.mjs')\n },\n {\n \"id\": \"cmake\",\n \"name\": \"CMake\",\n \"import\": () => import('./langs/cmake.mjs')\n },\n {\n \"id\": \"cobol\",\n \"name\": \"COBOL\",\n \"import\": () => import('./langs/cobol.mjs')\n },\n {\n \"id\": \"codeowners\",\n \"name\": \"CODEOWNERS\",\n \"import\": () => import('./langs/codeowners.mjs')\n },\n {\n \"id\": \"codeql\",\n \"name\": \"CodeQL\",\n \"aliases\": [\n \"ql\"\n ],\n \"import\": () => import('./langs/codeql.mjs')\n },\n {\n \"id\": \"coffee\",\n \"name\": \"CoffeeScript\",\n \"aliases\": [\n \"coffeescript\"\n ],\n \"import\": () => import('./langs/coffee.mjs')\n },\n {\n \"id\": \"common-lisp\",\n \"name\": \"Common Lisp\",\n \"aliases\": [\n \"lisp\"\n ],\n \"import\": () => import('./langs/common-lisp.mjs')\n },\n {\n \"id\": \"cpp\",\n \"name\": \"C++\",\n \"aliases\": [\n \"c++\"\n ],\n \"import\": () => import('./langs/cpp.mjs')\n },\n {\n \"id\": \"crystal\",\n \"name\": \"Crystal\",\n \"import\": () => import('./langs/crystal.mjs')\n },\n {\n \"id\": \"csharp\",\n \"name\": \"C#\",\n \"aliases\": [\n \"c#\",\n \"cs\"\n ],\n \"import\": () => import('./langs/csharp.mjs')\n },\n {\n \"id\": \"css\",\n \"name\": \"CSS\",\n \"import\": () => import('./langs/css.mjs')\n },\n {\n \"id\": \"csv\",\n \"name\": \"CSV\",\n \"import\": () => import('./langs/csv.mjs')\n },\n {\n \"id\": \"cue\",\n \"name\": \"CUE\",\n \"import\": () => import('./langs/cue.mjs')\n },\n {\n \"id\": \"cypher\",\n \"name\": \"Cypher\",\n \"aliases\": [\n \"cql\"\n ],\n \"import\": () => import('./langs/cypher.mjs')\n },\n {\n \"id\": \"d\",\n \"name\": \"D\",\n \"import\": () => import('./langs/d.mjs')\n },\n {\n \"id\": \"dart\",\n \"name\": \"Dart\",\n \"import\": () => import('./langs/dart.mjs')\n },\n {\n \"id\": \"dax\",\n \"name\": \"DAX\",\n \"import\": () => import('./langs/dax.mjs')\n },\n {\n \"id\": \"desktop\",\n \"name\": \"Desktop\",\n \"import\": () => import('./langs/desktop.mjs')\n },\n {\n \"id\": \"diff\",\n \"name\": \"Diff\",\n \"import\": () => import('./langs/diff.mjs')\n },\n {\n \"id\": \"docker\",\n \"name\": \"Dockerfile\",\n \"aliases\": [\n \"dockerfile\"\n ],\n \"import\": () => import('./langs/docker.mjs')\n },\n {\n \"id\": \"dream-maker\",\n \"name\": \"Dream Maker\",\n \"import\": () => import('./langs/dream-maker.mjs')\n },\n {\n \"id\": \"edge\",\n \"name\": \"Edge\",\n \"import\": () => import('./langs/edge.mjs')\n },\n {\n \"id\": \"elixir\",\n \"name\": \"Elixir\",\n \"import\": () => import('./langs/elixir.mjs')\n },\n {\n \"id\": \"elm\",\n \"name\": \"Elm\",\n \"import\": () => import('./langs/elm.mjs')\n },\n {\n \"id\": \"emacs-lisp\",\n \"name\": \"Emacs Lisp\",\n \"aliases\": [\n \"elisp\"\n ],\n \"import\": () => import('./langs/emacs-lisp.mjs')\n },\n {\n \"id\": \"erb\",\n \"name\": \"ERB\",\n \"import\": () => import('./langs/erb.mjs')\n },\n {\n \"id\": \"erlang\",\n \"name\": \"Erlang\",\n \"aliases\": [\n \"erl\"\n ],\n \"import\": () => import('./langs/erlang.mjs')\n },\n {\n \"id\": \"fennel\",\n \"name\": \"Fennel\",\n \"import\": () => import('./langs/fennel.mjs')\n },\n {\n \"id\": \"fish\",\n \"name\": \"Fish\",\n \"import\": () => import('./langs/fish.mjs')\n },\n {\n \"id\": \"fluent\",\n \"name\": \"Fluent\",\n \"aliases\": [\n \"ftl\"\n ],\n \"import\": () => import('./langs/fluent.mjs')\n },\n {\n \"id\": \"fortran-fixed-form\",\n \"name\": \"Fortran (Fixed Form)\",\n \"aliases\": [\n \"f\",\n \"for\",\n \"f77\"\n ],\n \"import\": () => import('./langs/fortran-fixed-form.mjs')\n },\n {\n \"id\": \"fortran-free-form\",\n \"name\": \"Fortran (Free Form)\",\n \"aliases\": [\n \"f90\",\n \"f95\",\n \"f03\",\n \"f08\",\n \"f18\"\n ],\n \"import\": () => import('./langs/fortran-free-form.mjs')\n },\n {\n \"id\": \"fsharp\",\n \"name\": \"F#\",\n \"aliases\": [\n \"f#\",\n \"fs\"\n ],\n \"import\": () => import('./langs/fsharp.mjs')\n },\n {\n \"id\": \"gdresource\",\n \"name\": \"GDResource\",\n \"import\": () => import('./langs/gdresource.mjs')\n },\n {\n \"id\": \"gdscript\",\n \"name\": \"GDScript\",\n \"import\": () => import('./langs/gdscript.mjs')\n },\n {\n \"id\": \"gdshader\",\n \"name\": \"GDShader\",\n \"import\": () => import('./langs/gdshader.mjs')\n },\n {\n \"id\": \"genie\",\n \"name\": \"Genie\",\n \"import\": () => import('./langs/genie.mjs')\n },\n {\n \"id\": \"gherkin\",\n \"name\": \"Gherkin\",\n \"import\": () => import('./langs/gherkin.mjs')\n },\n {\n \"id\": \"git-commit\",\n \"name\": \"Git Commit Message\",\n \"import\": () => import('./langs/git-commit.mjs')\n },\n {\n \"id\": \"git-rebase\",\n \"name\": \"Git Rebase Message\",\n \"import\": () => import('./langs/git-rebase.mjs')\n },\n {\n \"id\": \"gleam\",\n \"name\": \"Gleam\",\n \"import\": () => import('./langs/gleam.mjs')\n },\n {\n \"id\": \"glimmer-js\",\n \"name\": \"Glimmer JS\",\n \"aliases\": [\n \"gjs\"\n ],\n \"import\": () => import('./langs/glimmer-js.mjs')\n },\n {\n \"id\": \"glimmer-ts\",\n \"name\": \"Glimmer TS\",\n \"aliases\": [\n \"gts\"\n ],\n \"import\": () => import('./langs/glimmer-ts.mjs')\n },\n {\n \"id\": \"glsl\",\n \"name\": \"GLSL\",\n \"import\": () => import('./langs/glsl.mjs')\n },\n {\n \"id\": \"gnuplot\",\n \"name\": \"Gnuplot\",\n \"import\": () => import('./langs/gnuplot.mjs')\n },\n {\n \"id\": \"go\",\n \"name\": \"Go\",\n \"import\": () => import('./langs/go.mjs')\n },\n {\n \"id\": \"graphql\",\n \"name\": \"GraphQL\",\n \"aliases\": [\n \"gql\"\n ],\n \"import\": () => import('./langs/graphql.mjs')\n },\n {\n \"id\": \"groovy\",\n \"name\": \"Groovy\",\n \"import\": () => import('./langs/groovy.mjs')\n },\n {\n \"id\": \"hack\",\n \"name\": \"Hack\",\n \"import\": () => import('./langs/hack.mjs')\n },\n {\n \"id\": \"haml\",\n \"name\": \"Ruby Haml\",\n \"import\": () => import('./langs/haml.mjs')\n },\n {\n \"id\": \"handlebars\",\n \"name\": \"Handlebars\",\n \"aliases\": [\n \"hbs\"\n ],\n \"import\": () => import('./langs/handlebars.mjs')\n },\n {\n \"id\": \"haskell\",\n \"name\": \"Haskell\",\n \"aliases\": [\n \"hs\"\n ],\n \"import\": () => import('./langs/haskell.mjs')\n },\n {\n \"id\": \"haxe\",\n \"name\": \"Haxe\",\n \"import\": () => import('./langs/haxe.mjs')\n },\n {\n \"id\": \"hcl\",\n \"name\": \"HashiCorp HCL\",\n \"import\": () => import('./langs/hcl.mjs')\n },\n {\n \"id\": \"hjson\",\n \"name\": \"Hjson\",\n \"import\": () => import('./langs/hjson.mjs')\n },\n {\n \"id\": \"hlsl\",\n \"name\": \"HLSL\",\n \"import\": () => import('./langs/hlsl.mjs')\n },\n {\n \"id\": \"html\",\n \"name\": \"HTML\",\n \"import\": () => import('./langs/html.mjs')\n },\n {\n \"id\": \"html-derivative\",\n \"name\": \"HTML (Derivative)\",\n \"import\": () => import('./langs/html-derivative.mjs')\n },\n {\n \"id\": \"http\",\n \"name\": \"HTTP\",\n \"import\": () => import('./langs/http.mjs')\n },\n {\n \"id\": \"hxml\",\n \"name\": \"HXML\",\n \"import\": () => import('./langs/hxml.mjs')\n },\n {\n \"id\": \"hy\",\n \"name\": \"Hy\",\n \"import\": () => import('./langs/hy.mjs')\n },\n {\n \"id\": \"imba\",\n \"name\": \"Imba\",\n \"import\": () => import('./langs/imba.mjs')\n },\n {\n \"id\": \"ini\",\n \"name\": \"INI\",\n \"aliases\": [\n \"properties\"\n ],\n \"import\": () => import('./langs/ini.mjs')\n },\n {\n \"id\": \"java\",\n \"name\": \"Java\",\n \"import\": () => import('./langs/java.mjs')\n },\n {\n \"id\": \"javascript\",\n \"name\": \"JavaScript\",\n \"aliases\": [\n \"js\"\n ],\n \"import\": () => import('./langs/javascript.mjs')\n },\n {\n \"id\": \"jinja\",\n \"name\": \"Jinja\",\n \"import\": () => import('./langs/jinja.mjs')\n },\n {\n \"id\": \"jison\",\n \"name\": \"Jison\",\n \"import\": () => import('./langs/jison.mjs')\n },\n {\n \"id\": \"json\",\n \"name\": \"JSON\",\n \"import\": () => import('./langs/json.mjs')\n },\n {\n \"id\": \"json5\",\n \"name\": \"JSON5\",\n \"import\": () => import('./langs/json5.mjs')\n },\n {\n \"id\": \"jsonc\",\n \"name\": \"JSON with Comments\",\n \"import\": () => import('./langs/jsonc.mjs')\n },\n {\n \"id\": \"jsonl\",\n \"name\": \"JSON Lines\",\n \"import\": () => import('./langs/jsonl.mjs')\n },\n {\n \"id\": \"jsonnet\",\n \"name\": \"Jsonnet\",\n \"import\": () => import('./langs/jsonnet.mjs')\n },\n {\n \"id\": \"jssm\",\n \"name\": \"JSSM\",\n \"aliases\": [\n \"fsl\"\n ],\n \"import\": () => import('./langs/jssm.mjs')\n },\n {\n \"id\": \"jsx\",\n \"name\": \"JSX\",\n \"import\": () => import('./langs/jsx.mjs')\n },\n {\n \"id\": \"julia\",\n \"name\": \"Julia\",\n \"aliases\": [\n \"jl\"\n ],\n \"import\": () => import('./langs/julia.mjs')\n },\n {\n \"id\": \"kotlin\",\n \"name\": \"Kotlin\",\n \"aliases\": [\n \"kt\",\n \"kts\"\n ],\n \"import\": () => import('./langs/kotlin.mjs')\n },\n {\n \"id\": \"kusto\",\n \"name\": \"Kusto\",\n \"aliases\": [\n \"kql\"\n ],\n \"import\": () => import('./langs/kusto.mjs')\n },\n {\n \"id\": \"latex\",\n \"name\": \"LaTeX\",\n \"import\": () => import('./langs/latex.mjs')\n },\n {\n \"id\": \"lean\",\n \"name\": \"Lean 4\",\n \"aliases\": [\n \"lean4\"\n ],\n \"import\": () => import('./langs/lean.mjs')\n },\n {\n \"id\": \"less\",\n \"name\": \"Less\",\n \"import\": () => import('./langs/less.mjs')\n },\n {\n \"id\": \"liquid\",\n \"name\": \"Liquid\",\n \"import\": () => import('./langs/liquid.mjs')\n },\n {\n \"id\": \"log\",\n \"name\": \"Log file\",\n \"import\": () => import('./langs/log.mjs')\n },\n {\n \"id\": \"logo\",\n \"name\": \"Logo\",\n \"import\": () => import('./langs/logo.mjs')\n },\n {\n \"id\": \"lua\",\n \"name\": \"Lua\",\n \"import\": () => import('./langs/lua.mjs')\n },\n {\n \"id\": \"luau\",\n \"name\": \"Luau\",\n \"import\": () => import('./langs/luau.mjs')\n },\n {\n \"id\": \"make\",\n \"name\": \"Makefile\",\n \"aliases\": [\n \"makefile\"\n ],\n \"import\": () => import('./langs/make.mjs')\n },\n {\n \"id\": \"markdown\",\n \"name\": \"Markdown\",\n \"aliases\": [\n \"md\"\n ],\n \"import\": () => import('./langs/markdown.mjs')\n },\n {\n \"id\": \"marko\",\n \"name\": \"Marko\",\n \"import\": () => import('./langs/marko.mjs')\n },\n {\n \"id\": \"matlab\",\n \"name\": \"MATLAB\",\n \"import\": () => import('./langs/matlab.mjs')\n },\n {\n \"id\": \"mdc\",\n \"name\": \"MDC\",\n \"import\": () => import('./langs/mdc.mjs')\n },\n {\n \"id\": \"mdx\",\n \"name\": \"MDX\",\n \"import\": () => import('./langs/mdx.mjs')\n },\n {\n \"id\": \"mermaid\",\n \"name\": \"Mermaid\",\n \"import\": () => import('./langs/mermaid.mjs')\n },\n {\n \"id\": \"mojo\",\n \"name\": \"Mojo\",\n \"import\": () => import('./langs/mojo.mjs')\n },\n {\n \"id\": \"move\",\n \"name\": \"Move\",\n \"import\": () => import('./langs/move.mjs')\n },\n {\n \"id\": \"narrat\",\n \"name\": \"Narrat Language\",\n \"aliases\": [\n \"nar\"\n ],\n \"import\": () => import('./langs/narrat.mjs')\n },\n {\n \"id\": \"nextflow\",\n \"name\": \"Nextflow\",\n \"aliases\": [\n \"nf\"\n ],\n \"import\": () => import('./langs/nextflow.mjs')\n },\n {\n \"id\": \"nginx\",\n \"name\": \"Nginx\",\n \"import\": () => import('./langs/nginx.mjs')\n },\n {\n \"id\": \"nim\",\n \"name\": \"Nim\",\n \"import\": () => import('./langs/nim.mjs')\n },\n {\n \"id\": \"nix\",\n \"name\": \"Nix\",\n \"import\": () => import('./langs/nix.mjs')\n },\n {\n \"id\": \"nushell\",\n \"name\": \"nushell\",\n \"aliases\": [\n \"nu\"\n ],\n \"import\": () => import('./langs/nushell.mjs')\n },\n {\n \"id\": \"objective-c\",\n \"name\": \"Objective-C\",\n \"aliases\": [\n \"objc\"\n ],\n \"import\": () => import('./langs/objective-c.mjs')\n },\n {\n \"id\": \"objective-cpp\",\n \"name\": \"Objective-C++\",\n \"import\": () => import('./langs/objective-cpp.mjs')\n },\n {\n \"id\": \"ocaml\",\n \"name\": \"OCaml\",\n \"import\": () => import('./langs/ocaml.mjs')\n },\n {\n \"id\": \"pascal\",\n \"name\": \"Pascal\",\n \"import\": () => import('./langs/pascal.mjs')\n },\n {\n \"id\": \"perl\",\n \"name\": \"Perl\",\n \"import\": () => import('./langs/perl.mjs')\n },\n {\n \"id\": \"php\",\n \"name\": \"PHP\",\n \"import\": () => import('./langs/php.mjs')\n },\n {\n \"id\": \"plsql\",\n \"name\": \"PL/SQL\",\n \"import\": () => import('./langs/plsql.mjs')\n },\n {\n \"id\": \"po\",\n \"name\": \"Gettext PO\",\n \"aliases\": [\n \"pot\",\n \"potx\"\n ],\n \"import\": () => import('./langs/po.mjs')\n },\n {\n \"id\": \"postcss\",\n \"name\": \"PostCSS\",\n \"import\": () => import('./langs/postcss.mjs')\n },\n {\n \"id\": \"powerquery\",\n \"name\": \"PowerQuery\",\n \"import\": () => import('./langs/powerquery.mjs')\n },\n {\n \"id\": \"powershell\",\n \"name\": \"PowerShell\",\n \"aliases\": [\n \"ps\",\n \"ps1\"\n ],\n \"import\": () => import('./langs/powershell.mjs')\n },\n {\n \"id\": \"prisma\",\n \"name\": \"Prisma\",\n \"import\": () => import('./langs/prisma.mjs')\n },\n {\n \"id\": \"prolog\",\n \"name\": \"Prolog\",\n \"import\": () => import('./langs/prolog.mjs')\n },\n {\n \"id\": \"proto\",\n \"name\": \"Protocol Buffer 3\",\n \"import\": () => import('./langs/proto.mjs')\n },\n {\n \"id\": \"pug\",\n \"name\": \"Pug\",\n \"aliases\": [\n \"jade\"\n ],\n \"import\": () => import('./langs/pug.mjs')\n },\n {\n \"id\": \"puppet\",\n \"name\": \"Puppet\",\n \"import\": () => import('./langs/puppet.mjs')\n },\n {\n \"id\": \"purescript\",\n \"name\": \"PureScript\",\n \"import\": () => import('./langs/purescript.mjs')\n },\n {\n \"id\": \"python\",\n \"name\": \"Python\",\n \"aliases\": [\n \"py\"\n ],\n \"import\": () => import('./langs/python.mjs')\n },\n {\n \"id\": \"qml\",\n \"name\": \"QML\",\n \"import\": () => import('./langs/qml.mjs')\n },\n {\n \"id\": \"qmldir\",\n \"name\": \"QML Directory\",\n \"import\": () => import('./langs/qmldir.mjs')\n },\n {\n \"id\": \"qss\",\n \"name\": \"Qt Style Sheets\",\n \"import\": () => import('./langs/qss.mjs')\n },\n {\n \"id\": \"r\",\n \"name\": \"R\",\n \"import\": () => import('./langs/r.mjs')\n },\n {\n \"id\": \"racket\",\n \"name\": \"Racket\",\n \"import\": () => import('./langs/racket.mjs')\n },\n {\n \"id\": \"raku\",\n \"name\": \"Raku\",\n \"aliases\": [\n \"perl6\"\n ],\n \"import\": () => import('./langs/raku.mjs')\n },\n {\n \"id\": \"razor\",\n \"name\": \"ASP.NET Razor\",\n \"import\": () => import('./langs/razor.mjs')\n },\n {\n \"id\": \"reg\",\n \"name\": \"Windows Registry Script\",\n \"import\": () => import('./langs/reg.mjs')\n },\n {\n \"id\": \"regexp\",\n \"name\": \"RegExp\",\n \"aliases\": [\n \"regex\"\n ],\n \"import\": () => import('./langs/regexp.mjs')\n },\n {\n \"id\": \"rel\",\n \"name\": \"Rel\",\n \"import\": () => import('./langs/rel.mjs')\n },\n {\n \"id\": \"riscv\",\n \"name\": \"RISC-V\",\n \"import\": () => import('./langs/riscv.mjs')\n },\n {\n \"id\": \"rst\",\n \"name\": \"reStructuredText\",\n \"import\": () => import('./langs/rst.mjs')\n },\n {\n \"id\": \"ruby\",\n \"name\": \"Ruby\",\n \"aliases\": [\n \"rb\"\n ],\n \"import\": () => import('./langs/ruby.mjs')\n },\n {\n \"id\": \"rust\",\n \"name\": \"Rust\",\n \"aliases\": [\n \"rs\"\n ],\n \"import\": () => import('./langs/rust.mjs')\n },\n {\n \"id\": \"sas\",\n \"name\": \"SAS\",\n \"import\": () => import('./langs/sas.mjs')\n },\n {\n \"id\": \"sass\",\n \"name\": \"Sass\",\n \"import\": () => import('./langs/sass.mjs')\n },\n {\n \"id\": \"scala\",\n \"name\": \"Scala\",\n \"import\": () => import('./langs/scala.mjs')\n },\n {\n \"id\": \"scheme\",\n \"name\": \"Scheme\",\n \"import\": () => import('./langs/scheme.mjs')\n },\n {\n \"id\": \"scss\",\n \"name\": \"SCSS\",\n \"import\": () => import('./langs/scss.mjs')\n },\n {\n \"id\": \"shaderlab\",\n \"name\": \"ShaderLab\",\n \"aliases\": [\n \"shader\"\n ],\n \"import\": () => import('./langs/shaderlab.mjs')\n },\n {\n \"id\": \"shellscript\",\n \"name\": \"Shell\",\n \"aliases\": [\n \"bash\",\n \"sh\",\n \"shell\",\n \"zsh\"\n ],\n \"import\": () => import('./langs/shellscript.mjs')\n },\n {\n \"id\": \"shellsession\",\n \"name\": \"Shell Session\",\n \"aliases\": [\n \"console\"\n ],\n \"import\": () => import('./langs/shellsession.mjs')\n },\n {\n \"id\": \"smalltalk\",\n \"name\": \"Smalltalk\",\n \"import\": () => import('./langs/smalltalk.mjs')\n },\n {\n \"id\": \"solidity\",\n \"name\": \"Solidity\",\n \"import\": () => import('./langs/solidity.mjs')\n },\n {\n \"id\": \"soy\",\n \"name\": \"Closure Templates\",\n \"aliases\": [\n \"closure-templates\"\n ],\n \"import\": () => import('./langs/soy.mjs')\n },\n {\n \"id\": \"sparql\",\n \"name\": \"SPARQL\",\n \"import\": () => import('./langs/sparql.mjs')\n },\n {\n \"id\": \"splunk\",\n \"name\": \"Splunk Query Language\",\n \"aliases\": [\n \"spl\"\n ],\n \"import\": () => import('./langs/splunk.mjs')\n },\n {\n \"id\": \"sql\",\n \"name\": \"SQL\",\n \"import\": () => import('./langs/sql.mjs')\n },\n {\n \"id\": \"ssh-config\",\n \"name\": \"SSH Config\",\n \"import\": () => import('./langs/ssh-config.mjs')\n },\n {\n \"id\": \"stata\",\n \"name\": \"Stata\",\n \"import\": () => import('./langs/stata.mjs')\n },\n {\n \"id\": \"stylus\",\n \"name\": \"Stylus\",\n \"aliases\": [\n \"styl\"\n ],\n \"import\": () => import('./langs/stylus.mjs')\n },\n {\n \"id\": \"svelte\",\n \"name\": \"Svelte\",\n \"import\": () => import('./langs/svelte.mjs')\n },\n {\n \"id\": \"swift\",\n \"name\": \"Swift\",\n \"import\": () => import('./langs/swift.mjs')\n },\n {\n \"id\": \"system-verilog\",\n \"name\": \"SystemVerilog\",\n \"import\": () => import('./langs/system-verilog.mjs')\n },\n {\n \"id\": \"systemd\",\n \"name\": \"Systemd Units\",\n \"import\": () => import('./langs/systemd.mjs')\n },\n {\n \"id\": \"tasl\",\n \"name\": \"Tasl\",\n \"import\": () => import('./langs/tasl.mjs')\n },\n {\n \"id\": \"tcl\",\n \"name\": \"Tcl\",\n \"import\": () => import('./langs/tcl.mjs')\n },\n {\n \"id\": \"templ\",\n \"name\": \"Templ\",\n \"import\": () => import('./langs/templ.mjs')\n },\n {\n \"id\": \"terraform\",\n \"name\": \"Terraform\",\n \"aliases\": [\n \"tf\",\n \"tfvars\"\n ],\n \"import\": () => import('./langs/terraform.mjs')\n },\n {\n \"id\": \"tex\",\n \"name\": \"TeX\",\n \"import\": () => import('./langs/tex.mjs')\n },\n {\n \"id\": \"toml\",\n \"name\": \"TOML\",\n \"import\": () => import('./langs/toml.mjs')\n },\n {\n \"id\": \"ts-tags\",\n \"name\": \"TypeScript with Tags\",\n \"aliases\": [\n \"lit\"\n ],\n \"import\": () => import('./langs/ts-tags.mjs')\n },\n {\n \"id\": \"tsv\",\n \"name\": \"TSV\",\n \"import\": () => import('./langs/tsv.mjs')\n },\n {\n \"id\": \"tsx\",\n \"name\": \"TSX\",\n \"import\": () => import('./langs/tsx.mjs')\n },\n {\n \"id\": \"turtle\",\n \"name\": \"Turtle\",\n \"import\": () => import('./langs/turtle.mjs')\n },\n {\n \"id\": \"twig\",\n \"name\": \"Twig\",\n \"import\": () => import('./langs/twig.mjs')\n },\n {\n \"id\": \"typescript\",\n \"name\": \"TypeScript\",\n \"aliases\": [\n \"ts\"\n ],\n \"import\": () => import('./langs/typescript.mjs')\n },\n {\n \"id\": \"typespec\",\n \"name\": \"TypeSpec\",\n \"aliases\": [\n \"tsp\"\n ],\n \"import\": () => import('./langs/typespec.mjs')\n },\n {\n \"id\": \"typst\",\n \"name\": \"Typst\",\n \"aliases\": [\n \"typ\"\n ],\n \"import\": () => import('./langs/typst.mjs')\n },\n {\n \"id\": \"v\",\n \"name\": \"V\",\n \"import\": () => import('./langs/v.mjs')\n },\n {\n \"id\": \"vala\",\n \"name\": \"Vala\",\n \"import\": () => import('./langs/vala.mjs')\n },\n {\n \"id\": \"vb\",\n \"name\": \"Visual Basic\",\n \"aliases\": [\n \"cmd\"\n ],\n \"import\": () => import('./langs/vb.mjs')\n },\n {\n \"id\": \"verilog\",\n \"name\": \"Verilog\",\n \"import\": () => import('./langs/verilog.mjs')\n },\n {\n \"id\": \"vhdl\",\n \"name\": \"VHDL\",\n \"import\": () => import('./langs/vhdl.mjs')\n },\n {\n \"id\": \"viml\",\n \"name\": \"Vim Script\",\n \"aliases\": [\n \"vim\",\n \"vimscript\"\n ],\n \"import\": () => import('./langs/viml.mjs')\n },\n {\n \"id\": \"vue\",\n \"name\": \"Vue\",\n \"import\": () => import('./langs/vue.mjs')\n },\n {\n \"id\": \"vue-html\",\n \"name\": \"Vue HTML\",\n \"import\": () => import('./langs/vue-html.mjs')\n },\n {\n \"id\": \"vyper\",\n \"name\": \"Vyper\",\n \"aliases\": [\n \"vy\"\n ],\n \"import\": () => import('./langs/vyper.mjs')\n },\n {\n \"id\": \"wasm\",\n \"name\": \"WebAssembly\",\n \"import\": () => import('./langs/wasm.mjs')\n },\n {\n \"id\": \"wenyan\",\n \"name\": \"Wenyan\",\n \"aliases\": [\n \"\\u6587\\u8A00\"\n ],\n \"import\": () => import('./langs/wenyan.mjs')\n },\n {\n \"id\": \"wgsl\",\n \"name\": \"WGSL\",\n \"import\": () => import('./langs/wgsl.mjs')\n },\n {\n \"id\": \"wikitext\",\n \"name\": \"Wikitext\",\n \"aliases\": [\n \"mediawiki\",\n \"wiki\"\n ],\n \"import\": () => import('./langs/wikitext.mjs')\n },\n {\n \"id\": \"wolfram\",\n \"name\": \"Wolfram\",\n \"aliases\": [\n \"wl\"\n ],\n \"import\": () => import('./langs/wolfram.mjs')\n },\n {\n \"id\": \"xml\",\n \"name\": \"XML\",\n \"import\": () => import('./langs/xml.mjs')\n },\n {\n \"id\": \"xsl\",\n \"name\": \"XSL\",\n \"import\": () => import('./langs/xsl.mjs')\n },\n {\n \"id\": \"yaml\",\n \"name\": \"YAML\",\n \"aliases\": [\n \"yml\"\n ],\n \"import\": () => import('./langs/yaml.mjs')\n },\n {\n \"id\": \"zenscript\",\n \"name\": \"ZenScript\",\n \"import\": () => import('./langs/zenscript.mjs')\n },\n {\n \"id\": \"zig\",\n \"name\": \"Zig\",\n \"import\": () => import('./langs/zig.mjs')\n }\n];\nconst bundledLanguagesBase = Object.fromEntries(bundledLanguagesInfo.map((i) => [i.id, i.import]));\nconst bundledLanguagesAlias = Object.fromEntries(bundledLanguagesInfo.flatMap((i) => i.aliases?.map((a) => [a, i.import]) || []));\nconst bundledLanguages = {\n ...bundledLanguagesBase,\n ...bundledLanguagesAlias\n};\n\nexport { bundledLanguages, bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo };\n","const getWasmInlined = async (info) => {\n return import('shiki/wasm').then((wasm) => wasm.default(info));\n};\n\nexport { getWasmInlined as g };\n","const bundledThemesInfo = [\n {\n \"id\": \"andromeeda\",\n \"displayName\": \"Andromeeda\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/andromeeda.mjs')\n },\n {\n \"id\": \"aurora-x\",\n \"displayName\": \"Aurora X\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/aurora-x.mjs')\n },\n {\n \"id\": \"ayu-dark\",\n \"displayName\": \"Ayu Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/ayu-dark.mjs')\n },\n {\n \"id\": \"catppuccin-frappe\",\n \"displayName\": \"Catppuccin Frapp\\xE9\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-frappe.mjs')\n },\n {\n \"id\": \"catppuccin-latte\",\n \"displayName\": \"Catppuccin Latte\",\n \"type\": \"light\",\n \"import\": () => import('./themes/catppuccin-latte.mjs')\n },\n {\n \"id\": \"catppuccin-macchiato\",\n \"displayName\": \"Catppuccin Macchiato\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-macchiato.mjs')\n },\n {\n \"id\": \"catppuccin-mocha\",\n \"displayName\": \"Catppuccin Mocha\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-mocha.mjs')\n },\n {\n \"id\": \"dark-plus\",\n \"displayName\": \"Dark Plus\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dark-plus.mjs')\n },\n {\n \"id\": \"dracula\",\n \"displayName\": \"Dracula Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula.mjs')\n },\n {\n \"id\": \"dracula-soft\",\n \"displayName\": \"Dracula Theme Soft\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula-soft.mjs')\n },\n {\n \"id\": \"github-dark\",\n \"displayName\": \"GitHub Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark.mjs')\n },\n {\n \"id\": \"github-dark-default\",\n \"displayName\": \"GitHub Dark Default\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-default.mjs')\n },\n {\n \"id\": \"github-dark-dimmed\",\n \"displayName\": \"GitHub Dark Dimmed\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-dimmed.mjs')\n },\n {\n \"id\": \"github-light\",\n \"displayName\": \"GitHub Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light.mjs')\n },\n {\n \"id\": \"github-light-default\",\n \"displayName\": \"GitHub Light Default\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-default.mjs')\n },\n {\n \"id\": \"houston\",\n \"displayName\": \"Houston\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/houston.mjs')\n },\n {\n \"id\": \"laserwave\",\n \"displayName\": \"LaserWave\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/laserwave.mjs')\n },\n {\n \"id\": \"light-plus\",\n \"displayName\": \"Light Plus\",\n \"type\": \"light\",\n \"import\": () => import('./themes/light-plus.mjs')\n },\n {\n \"id\": \"material-theme\",\n \"displayName\": \"Material Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme.mjs')\n },\n {\n \"id\": \"material-theme-darker\",\n \"displayName\": \"Material Theme Darker\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-darker.mjs')\n },\n {\n \"id\": \"material-theme-lighter\",\n \"displayName\": \"Material Theme Lighter\",\n \"type\": \"light\",\n \"import\": () => import('./themes/material-theme-lighter.mjs')\n },\n {\n \"id\": \"material-theme-ocean\",\n \"displayName\": \"Material Theme Ocean\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-ocean.mjs')\n },\n {\n \"id\": \"material-theme-palenight\",\n \"displayName\": \"Material Theme Palenight\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-palenight.mjs')\n },\n {\n \"id\": \"min-dark\",\n \"displayName\": \"Min Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/min-dark.mjs')\n },\n {\n \"id\": \"min-light\",\n \"displayName\": \"Min Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/min-light.mjs')\n },\n {\n \"id\": \"monokai\",\n \"displayName\": \"Monokai\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/monokai.mjs')\n },\n {\n \"id\": \"night-owl\",\n \"displayName\": \"Night Owl\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/night-owl.mjs')\n },\n {\n \"id\": \"nord\",\n \"displayName\": \"Nord\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/nord.mjs')\n },\n {\n \"id\": \"one-dark-pro\",\n \"displayName\": \"One Dark Pro\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/one-dark-pro.mjs')\n },\n {\n \"id\": \"one-light\",\n \"displayName\": \"One Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/one-light.mjs')\n },\n {\n \"id\": \"poimandres\",\n \"displayName\": \"Poimandres\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/poimandres.mjs')\n },\n {\n \"id\": \"red\",\n \"displayName\": \"Red\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/red.mjs')\n },\n {\n \"id\": \"rose-pine\",\n \"displayName\": \"Ros\\xE9 Pine\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine.mjs')\n },\n {\n \"id\": \"rose-pine-dawn\",\n \"displayName\": \"Ros\\xE9 Pine Dawn\",\n \"type\": \"light\",\n \"import\": () => import('./themes/rose-pine-dawn.mjs')\n },\n {\n \"id\": \"rose-pine-moon\",\n \"displayName\": \"Ros\\xE9 Pine Moon\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine-moon.mjs')\n },\n {\n \"id\": \"slack-dark\",\n \"displayName\": \"Slack Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/slack-dark.mjs')\n },\n {\n \"id\": \"slack-ochin\",\n \"displayName\": \"Slack Ochin\",\n \"type\": \"light\",\n \"import\": () => import('./themes/slack-ochin.mjs')\n },\n {\n \"id\": \"snazzy-light\",\n \"displayName\": \"Snazzy Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/snazzy-light.mjs')\n },\n {\n \"id\": \"solarized-dark\",\n \"displayName\": \"Solarized Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/solarized-dark.mjs')\n },\n {\n \"id\": \"solarized-light\",\n \"displayName\": \"Solarized Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/solarized-light.mjs')\n },\n {\n \"id\": \"synthwave-84\",\n \"displayName\": \"Synthwave '84\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/synthwave-84.mjs')\n },\n {\n \"id\": \"tokyo-night\",\n \"displayName\": \"Tokyo Night\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/tokyo-night.mjs')\n },\n {\n \"id\": \"vesper\",\n \"displayName\": \"Vesper\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vesper.mjs')\n },\n {\n \"id\": \"vitesse-black\",\n \"displayName\": \"Vitesse Black\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-black.mjs')\n },\n {\n \"id\": \"vitesse-dark\",\n \"displayName\": \"Vitesse Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-dark.mjs')\n },\n {\n \"id\": \"vitesse-light\",\n \"displayName\": \"Vitesse Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/vitesse-light.mjs')\n }\n];\nconst bundledThemes = Object.fromEntries(bundledThemesInfo.map((i) => [i.id, i.import]));\n\nexport { bundledThemes, bundledThemesInfo };\n","var FontStyle;\n(function (FontStyle) {\n FontStyle[FontStyle[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle[FontStyle[\"None\"] = 0] = \"None\";\n FontStyle[FontStyle[\"Italic\"] = 1] = \"Italic\";\n FontStyle[FontStyle[\"Bold\"] = 2] = \"Bold\";\n FontStyle[FontStyle[\"Underline\"] = 4] = \"Underline\";\n})(FontStyle || (FontStyle = {}));\n\nexport { FontStyle };\n","/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html, property, CSSResultArray, TemplateResult, PropertyValueMap } from 'lit-element';\nimport { customElement, state } from 'lit/decorators.js';\nimport { styles } from './nile-highlighter.css';\nimport NileElement from '../internal/nile-element';\n\nimport { codeToHtml } from 'shiki'\nimport { ShikiTheme, ShikiLanguage } from './theme-list';\n\n\n/**\n * Nile highlighter component.\n *\n * @tag nile-highlighter\n *\n */\n@customElement('nile-highlighter')\nexport class NileHighlighter extends NileElement {\n\n\t@property({ type: String}) code = ``;\n\t\n\t@property({ type: String, reflect:true }) language : ShikiLanguage = 'javascript';\n\n\t@property({ type: String, reflect:true }) theme: ShikiTheme = 'min-light';\n\n\t@state() highlightedCode = '';\n\t\n\t/**\n\t * The styles for nile-highlighter\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t/* #endregion */\n\n\n\tprotected async updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>) {\n\t\tif (changedProperties.has('code') || changedProperties.has('language') || changedProperties.has('theme')) {\n\t\t\tthis.highlightedCode = await codeToHtml(this.code, {\n\t\t\t\tlang: this.language,\n\t\t\t\ttheme: this.theme\n\t\t\t})\n\t\t\tthis.requestUpdate();\n\t\t}\n\t}\n\t/* #region Methods */\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t\t\t<div class=\"code-container\" .innerHTML=${this.highlightedCode}></div>\n\t\t\t`;\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileHighlighter;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'nile-highlighter': NileHighlighter;\n\t}\n}"],"names":["createMatchers","selector","matchesName","results","tokenizer","input","regex","match","exec","next","res","newTokenizer","token","priority","length","charAt","console","log","concat","matcher","parseConjunction","push","parseOperand","expressionToNegate","matcherInput","expressionInParents","matchers","some","parseInnerExpression","isIdentifier","identifiers","every","disposeOnigString","str","dispose","doClone","something","Array","isArray","arr","r","i","len","cloneArray","obj","key","cloneObj","mergeObjects","target","sources","forEach","source","basename","path","idx","lastIndexOf","substring","substr","strcmp","a","b","strArrCmp","len1","len2","isValidHexColor","hex","test","escapeRegExpCharacters","value","replace","collectReferencesOfReference","reference","baseGrammarScopeName","repo","result","selfGrammar","lookup","scopeName","Error","baseGrammar","TopLevelRuleReference","collectExternalReferencesInTopLevelRule","collectExternalReferencesInTopLevelRepositoryRule","ruleName","repository","injections","_iterator3","s","_step3","n","done","injection","add","err","e","f","context","collectExternalReferencesInRules","patterns","Object","values","rules","_iterator4","_step4","rule","visitedRule","has","patternRepository","_objectSpread","include","parseInclude","kind","undefined","newContext","TopLevelRepositoryRuleReference","BaseReference","SelfReference","indexOfSharp","indexOf","TopLevelReference","RelativeReference","TopLevelRepositoryReference","_matchesScope","scopePattern","startsWith","_tokenizeString","grammar","lineText","isFirstLine","linePos","stack","lineTokens","checkWhileConditions","timeLimit","lineLength","content","STOP","anchorPosition","whileCheckResult","beginRuleCapturedEOL","whileRules","node","pop","nodeRule","getRule","BeginWhileRule","whileRule","_ft","prepareRuleWhileSearch","endRule","ruleScanner","findOptions","findNextMatchSync","ruleId","whileRuleId","captureIndices","produce","start","handleCaptures","whileCaptures","end","_checkWhileConditions","startTime","Date","now","TokenizeStringResult","scanNext","matchResult","prepareRuleSearch","matchedRuleId","matchRule","getInjections","injectionResult","bestMatchRuleId","bestMatchRating","Number","MAX_VALUE","bestMatchCaptureIndices","bestMatchResultPriority","scopes","contentNameScopesList","getScopeNames","matchRating","priorityMatch","matchInjections","matchResultScore","injectionResultScore","matchRuleOrInjections","hasAdvanced","endRuleId","poppedRule","withContentNameScopesList","nameScopesList","endCaptures","popped","parent","getAnchorPos","getEnterPos","_rule","beforePush","getName","pushAttributed","BeginEndRule","pushedRule","beginCaptures","contentName","getContentName","endHasBackReferences","withEndRule","getEndWithResolvedBackReferences","hasSameRuleAs","whileHasBackReferences","getWhileWithResolvedBackReferences","captures","safePop","endRegexSource","allowA","allowG","compileAG","compileWhileAG","lineTextContent","Math","min","localStack","maxEnd","captureRule","captureIndex","endPos","produceFromScopes","retokenizeCapturedWithRuleId","stackClone","onigSubStr","createOnigString","captureRuleScopeName","captureRuleScopesList","LocalStackElement","collectInjections","ruleFactoryHelper","nameMatcher","RuleFactory","getCompiledRuleId","_iterator9","_createForOfIteratorHelper","_step9","debugSelector","identifers","lastIndex","identifier","scopesAreMatching","thisScopeName","initGrammar","base","$self","$vscodeTextmateLocation","name","$base","splitLines","code","preserveEnding","parts","split","index","lines","_n28","line","isPlainLang","lang","includes","isSpecialLang","isNoneTheme","theme","isSpecialTheme","addClassToHast","className","properties","class","targets","_iterator18","_step18","c","resolveColorReplacements","options","replacements","colorReplacements","themeName","_i17","_Object$entries","entries","_Object$entries$_i","_slicedToArray","assign","applyColorReplacements","color","toLowerCase","getTokenStyleObject","styles","bgColor","fontStyle","FontStyle","Italic","Bold","Underline","stringifyTokenStyle","map","_ref4","_ref5","join","findSequence","position","nextEscape","nextClose","sequence","startPosition","parseColor","offset","colorMode","rgb","x","parseInt","isNaN","type","colorIndex","parseSequence","commands","codeInt","decorations","decoration","namedColors","_ne","_ne3","createColorPalette","defaultNamedColorsMap","namedColorsMap","namedColor","rgbColor","max","toString","padStart","colorTable","tableColor","levels","g","level","getColorTable","tokenizeAnsiWithTheme","fileContents","colorPalette","fromEntries","_t$colors","colors","toUpperCase","parser","foreground","background","decorations2","Set","parse","tokens","findResult","text","_iterator19","_step19","styleToken","clear","_iterator20","_step20","createAnsiSequenceParser","bg","fg","hexMatch","alpha","round","from","cssVarMatch","dimColor","None","codeToTokensBase","internal","_n$lang","_n$theme","getLoadedThemes","_t$setTheme","setTheme","colorMap","_grammar","getLanguage","grammarState","ShikiError","_tokenizeWithTheme","tokenizeWithTheme","tokenizeMaxLineLength","tokenizeTimeLimit","stateStack","state","GrammarState","_stack","getGrammarStack","grammarContextCode","INITIAL","actual","final","themeSettingsSelectors","includeExplanation","settings","_step21","_iterator21","setting","selectors","_typeof","scope","trim","_a$_t","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","tokenizeLine","tokenizeLine2","tokensLength","j","startIndex","nextStartIndex","metadata","StackElementMetadata","getForeground","getFontStyle","explanation","tokenWithScopes","tokenWithScopesText","endIndex","explainThemeScopes","ruleStack","themeSelectors","parentScopes","slice","themeMatches","explainThemeScope","matchesOne","matches","selectorParentIndex","parentIndex","_iterator22","_step22","_step22$value","_iterator23","_step23","selectorPieces","codeToTokensWithThemes","themes","filter","outThemes","count","_loop","_i26","t","outLines","indexes","current","l","minLength","syncThemesTokenization","mergedTokens","lineIdx","_token","tokenIdx","mergedToken","variants","themeIdx","_t$e$o","_","__","___","codeToTokens","rootStyle","_n$defaultColor","defaultColor","_n$cssVariablePrefix","cssVariablePrefix","sort","themeTokens","find","themeRegs","getTheme","themesOrder","merged","variantsOrder","styleKeys","flatMap","keys","mergedStyles","reduce","acc","cur","_iterator24","_step24","keyName","varKey","htmlStyle","mergeToken","themeColorReplacements","_theme","transformerDecorations","WeakMap","getContext","shiki","meta","normalizePosition","p","converter","indexToPos","JSON","stringify","character","posToIndex","_ref6","_ref7","_iterator25","_step25","createPositionConverter","d","items","foo","bar","isFooHasBarStart","isFooHasBarEnd","isBarHasFooStart","isBarHasFooEnd","verifyIntersections","set","get","this","splitted","breakpoints","sorted","breakpointsInToken","offsets","lastOffset","_iterator26","_step26","splitToken","splitTokens","codeEl","_this$options$decorat2","ctx","children","tagName","applyLineSection","lineEl","el","POSITIVE_INFINITY","alwaysWrap","wrapper","applyDecoration","splice","applyLine","transform","lineApplies","_iterator27","_loop3","_i30","unshift","_step27","_loop2","getTransformers","_toConsumableArray","transformers","builtInTransformers","codeToHast","transformerContext","_code","_options","_iterator28","_step28","transformer","preprocess","call","_ge","_n$mergeWhitespaces","mergeWhitespaces","newLine","carryOnContent","firstOffset","couldMerge","mergeWhitespaceTokens","_e37","leading","trailing","expanded","splitWhitespaceTokens","contextSource","_iterator29","_step29","root","structure","preNode","style","tabindex","_ref8","_ref9","codeNode","lineNodes","pre","lineNode","col","_iterator30","_step30","tokenNode","_iterator32","_step32","span","_iterator31","_step31","_iterator33","_step33","_iterator34","_step34","_iterator35","_step35","tokensToHast","merge","definitions","space","property","normal","Schema","normalize","increment","De","pow","powers","mark","create","definition","prop","own$3","info","DefinedInfo","attributes","mustUseProperty","attribute","caseSensitiveTransform","caseInsensitiveTransform","kebab","$0","camelcase","core","subset","groups","RegExp","charactersToExpression","basic","escapeOnly","pair","all","format","charCodeAt","formatSmart","named","numeric","omit","String","fromCharCode","toHexadecimal","omitOptionalSemicolons","useNamedReferences","useShortestReferences","own$1","characters","characterEntitiesLegacy","dangerous","toNamed","decimal","toDecimal","stringifyEntities","ccount","TypeError","stringify$1","padRight","padLeft","whitespace","thing","empty","re","siblings","includeWhitespace","emptyChildren$1","omission","handlers","own","headOrColgroupOrCaption","siblingAfter","rubyElement","cells","serializeAttribute","schema","Type","Info","valid","rest","dash","dashes","cap","allowParseErrors","y","allowDangerousCharacters","quote","overloadedBoolean","Boolean","characterReferences","constants","commaSeparated","tightCommaSeparatedLists","collapseEmptyAttributes","preferUnquoted","unquoted","quoteSmart","alternative","single","textEntitySubset","one","handle","emptyChildren","codeToHtml","tree","options_","emptyOptions","omitOptionalTags","tightAttributes","upperDoctype","tightDoctype","bogusComments","tightSelfClosing","allowDangerousHtml","voids","htmlVoidElements","emptyCharacterReferences","closeSelfClosing","closeEmptyElements","svg","html$2","toHtml","_iterator36","_step36","postprocess","async","main","init","updateGlobalBufferAndViews","buf","emscripten_realloc_buffer","UTF8ToString","ptr","maxBytesToRead","heapOrArray","endIdx","endPtr","buffer","UTF8Decoder","decode","subarray","u0","u1","u2","ch","UTF8ArrayToString","binding","HEAPU8","size","wasmMemory","grow","byteLength","_unused","Uint8Array","HEAPU32","Uint32Array","TextDecoder","asmLibraryArg","emscripten_get_now","performance","emscripten_memcpy_big","dest","src","num","copyWithin","emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","alignUp","multiple","cutDown","overGrownHeapSize","fd_write","_context25","env","wasi_snapshot_preview1","exports","memory","_context24","stop","_callee23","createWasm","_callee24","_Un","apply","arguments","loadWasm","initPromise","instance","_context9","instantiator","dataOrOptions","isInstantiatorModule","data","isDataOptionsObject","Response","isResponse","_Buffer$isBuffer","_Buffer","ArrayBuffer","isView","Buffer","isBuffer","SharedArrayBuffer","isArrayBuffer","WebAssembly","Module","_makeArrayBufferLoader","instantiateStreaming","importObject","t3","sent","_ref12","_asyncToGenerator","_regeneratorRuntime","wrap","_callee7$","_context8","prev","arrayBuffer","instantiate","_callee7","_x17","_makeResponseNonStreamingLoader","default","_callee8","_x16","_ref11","onigBinding","_load","normalizeTheme","rawTheme","RESOLVED_KEY","tokenColors","_t60$settings","_t60$settings2","_e$colors","_e$colors2","globalSetting","VSCODE_FALLBACK_EDITOR_FG","light","dark","VSCODE_FALLBACK_EDITOR_BG","replacementCount","replacementMap","Map","getReplacementColor","_e$colorReplacements","replaceFg","replaceBg","clone","replacement","_i36","_Object$keys2","defineProperty","enumerable","writable","createShikiInternal","normalizeGetter","resolveLangs","ensureNotDisposed","isDisposed","_registry","instancesCount","_i41","_i43","langs","_callee30$","_context31","t0","Promise","then","flat","resolve","_context29","_callee28","warnings","warn","wasmLoader","_defaultWasmLoader","resolver","Resolver","createOnigScanner","OnigScanner","OnigString","Registry","langAlias","_context32","abrupt","_defineProperty","_lastTheme","getColorMap","_lang","getGrammar","getLoadedLanguages","loadLanguage","loadLanguages","_context26","t1","_loadLanguage2","loadTheme","_context28","_callee27","Symbol","createHighlighterCore","_args12","_context33","getLastGrammarState","_n$lang2","_t$setTheme2","getInternalContext","_li","createdBundledHighlighter","bundledLanguages","bundledThemes","_ref23","resolveLang","resolveTheme","bundle","_themes","_i$langs","_len4","_len5","_x21","createSingletonShorthands","createHighlighter","getSingletonHighlighter","_shiki","_args15","_context16","_callee15","makeSingletonHighlighter","_callee16","_codeToHast","_callee17","_callee18","_callee19","_codeToTokensWithThemes","_callee20","_callee21","_context22","_x32","_x33","_getLastGrammarState","setters","_tslib","bundledLanguagesInfo","id","import","_import","_context","aliases","getWasmInlined","wasm","bundledThemesInfo","displayName","NotSet","process","VSCODE_TEXTMATE_DEBUG","EncodedTokenAttributes","toBinaryStr","encodedTokenAttributes","print","languageId","getLanguageId","tokenType","getTokenType","getBackground","containsBalancedBrackets","_languageId","_tokenType","_containsBalancedBracketsBit","_fontStyle","_foreground","_background","CAPTURING_REGEX_SOURCE","RegexSource","hasCaptures","regexSource","replaceCaptures","captureSource","commandIndex","command","capture","CachedFn","T","fn","_createClass","cache","L","toKey","A","ExternalReferenceCollector","_references","P","references","_seenReferenceKeys","ScopeDependencyProcessor","O","initialScopeName","seenPartialScopeRequests","Q","seenFullScopeRequests","processQueue","q","deps","_iterator","_step","dep","_iterator2","_step2","$","B","I","HAS_BACK_REFERENCES","BACK_REFERENCING_END","Rule","$location","_name","_nameIsCapturing","_contentName","_contentNameIsCapturing","location","filename","constructor","CaptureRule","W","super","_this","_inherits","_q2","collectPatterns","out","compile","MatchRule","V","_assertThisInitialized","_this2","_match","RegExpSource","_cachedCompiledPatterns","_q3","_getCachedCompiledPatterns","RegExpSourceList","IncludeOnlyRule","J","hasMissingPatterns","_this3","_q4","_iterator5","_step5","pattern","X","begin","applyEndPatternLast","_begin","_end","hasBackReferences","_this4","_q5","resolveBackReferences","_iterator6","_step6","setSource","K","_while","_cachedCompiledWhilePatterns","_this5","_q6","_iterator7","_step7","compileWhile","_getCachedCompiledWhilePatterns","Y","_classCallCheck","createCaptureRule","helper","registerRule","desc","_compileCaptures","_compilePatterns","maximumCaptureId","captureId","numericCaptureId","localIncludedRule","externalGrammarName","externalGrammarInclude","externalGrammar","getExternalGrammar","externalIncludedRule","skipRule","regExpSource","lastPushedPos","output","hasAnchor","pos","nextCh","_anchorCache","_buildAnchorCache","newSource","capturedValues","g1","A0_G0_result","A0_G1_result","A1_G0_result","A1_G1_result","A0_G0","A0_G1","A1_G0","A1_G1","resolveAnchors","Z","_items","_hasAnchors","_cached","_disposeCaches","item","onigLib","regExps","CompiledRule","_resolveAnchors","tt","scanner","string","Theme","et","_colorMap","_defaults","_root","getDefaults","scopePath","effectiveRule","_cachedMatchRoot","v","_scopePathMatchesParentScopes","StyleAttributes","createFromRawTheme","createFromParsedTheme","resultLen","entry","_scope","segments","lenJ","reverse","ParsedThemeRule","parseTheme","parsedThemeRules","defaultFontStyle","defaultForeground","defaultBackground","incomingDefaults","shift","ColorMap","defaults","getId","ThemeTrieElement","ThemeTrieElementRule","insert","resolveParsedThemeRules","ScopeStack","nt","getSegments","_extends","other","getExtensionIfDefined","scopeNames","_iterator8","_step8","rt","foregroundId","backgroundId","ot","_isFrozen","st","_lastColorId","_id2color","_color2id","lt","scopeDepth","acceptOverwrite","cloneArr","_mainRule","at","rulesWithParentScopes","_children","_rulesWithParentScopes","_sortBySpecificity","head","tail","dotIndex","hasOwnProperty","_doInsertHere","child","_cmpBySpecificity","aParentScopes","bParentScopes","aParentScopesLen","bParentScopesLen","aLen","bLen","BasicScopeAttributes","ct","BasicScopeAttributesProvider","_defaultAttributes","ut","initialLanguageId","embeddedLanguages","_scopeToLanguage","standardTokenType","_toStandardTokenType","_embeddedLanguagesMatcher","ScopeMatcher","getDefaultAttributes","getBasicScopeAttributes","_NULL_SCOPE_METADATA","_getBasicScopeAttributes","static","m","STANDARD_TOKEN_TYPE_REGEXP","mt","scopesRegExp","escapedScopes","_ref2","_ref3","pt","stoppedEarly","jt","Grammar","kt","_rootScopeName","initialLanguage","tokenTypes","balancedBracketSelectors","grammarRepository","_onigLib","_basicScopeAttributesProvider","_rootId","_lastRuleId","_ruleId2desc","_includedGrammars","_grammarRepository","_injections","_tokenTypeMatchers","_i14","_Object$keys","_iterator10","_step10","_iterator11","_step11","getMetadataForScope","_collectInjections","_this8","rawInjections","expression","injectionScopeNames","injectionScopeName","injectionGrammar","injectionSelector","i1","i2","factory","rawIncludedGrammar","prevState","_tokenize","getResult","getBinaryResult","emitBinaryTokens","StateStackImpl","NULL","reset","rawDefaultMetadata","defaultStyle","themeProvider","defaultMetadata","rootScopeName","scopeList","AttributedScopeStack","createRootAndLookUpScopeName","createRoot","onigLineText","LineTokens","St","tokenAttributes","equals","_pushAttributed","_iterator12","_step12","self","fromExtension","namesScopeList","_t$scopePath","_iterator13","_step13","frame","rawRootMetadata","themeMatch","resolvedTokenAttributes","mergeAttributes","existingTokenAttributes","basicScopeAttributes","styleAttributes","rawMetadata","newPath","scopeThemeMatchResult","xt","enterPos","anchorPos","depth","_enterPos","_anchorPos","_equals","_reset","_writeString","outIndex","contentNameScopeStack","toStateStackFrame","_this$parent$nameScop","_this$nameScopesList$","_this$contentNameScop2","_structuralEquals","pushFrame","_xt","BalancedBracketSelectors","Ct","balancedBracketScopes","unbalancedBracketScopes","allowAny","_iterator14","_step14","excluder","_iterator15","_step15","includer","Tt","tokenTypeOverrides","_emitBinaryTokens","_tokenTypeOverrides","_lineText","_tokens","_binaryTokens","_lastTokenEndIndex","scopesList","_t$getScopeNames2","_t$tokenAttributes","_this$balancedBracket","matchesAlways","matchesNever","_t$getScopeNames","_iterator16","_step16","SyncRegistry","Lt","_onigLibPromise","_iterator17","_grammars","_step17","addGrammar","_rawGrammars","_injectionGrammars","targetScope","_grammarForScopeName","_callee2","rawGrammar","_context3","t2","createGrammar","grammarForScopeName","_x2","_x3","_x4","_x5","_x6","Registry$1","At","_syncRegistry","_ensureGrammarCache","loadGrammarWithEmbeddedLanguages","loadGrammarWithConfiguration","configuration","_loadGrammar","unbalancedBracketSelectors","loadGrammar","_loadGrammar2","_callee3","dependencyProcessor","request","_loadSingleGrammar","_context4","_x7","_x8","_x9","_x10","_x11","_loadSingleGrammar2","_callee4","_doLoadSingleGrammar","_context5","_x12","_doLoadSingleGrammar2","_callee5","_n27","_callee5$","_context6","_x13","_addGrammar","_callee6","_args6","_context7","_x14","MetadataConsts","Ft","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","le","message","_this11","_Error","_wrapNativeSuper","ae","visited","pushScope","getScopes","toJSON","initial","ve","prototype","Ce","booleanish","number","spaceSeparated","commaOrSpaceSeparated","defined","boolean","types","freeze","__proto__","checks","$e","mask","check","_this12","_Ce","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","xmlns","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","html$3","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","charSet","checked","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","label","language","list","loading","loop","low","manifest","maxLength","media","method","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","ping","placeholder","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scoped","seamless","selected","shadowRootDelegatesFocus","shadowRootMode","shape","sizes","slot","spellCheck","srcDoc","srcLang","srcSet","step","tabIndex","title","translate","typeMustMatch","useMap","width","align","aLink","archive","axis","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","codeBase","codeType","compact","declare","event","face","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","scheme","scrolling","standby","summary","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","security","unselectable","svg$1","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","mode","numOctaves","observer","opacity","operator","order","orient","orientation","origin","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","to","unicode","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","z","zoomAndPan","own$2","characterEntitiesHtml4","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","fnof","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","bull","hellip","prime","Prime","oline","frasl","weierp","image","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cup","int","there4","sim","cong","asymp","ne","equiv","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","rang","loz","spades","clubs","hearts","diams","quot","amp","gt","OElig","oelig","Scaron","scaron","Yuml","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","permil","lsaquo","rsaquo","euro","htmlCommentRegex","bogusCommentEntitySubset","commentEntitySubset","siblingBefore","closing","body","caption","colgroup","dd","dt","html","li","optgroup","option","rp","tbody","td","tfoot","th","thead","tr","opening","previous","seen","double","invalid","unknown","_len3","parameters","zwitch","node_","comment","_1","_2","doctype","_3","element","selfClosing","last","serializeAttributes","raw","UtfString","Vn","utf16Length","utf8Length","_utf8ByteLength","computeIndicesMapping","utf16OffsetToUtf8","utf8OffsetToUtf16","utf8Value","i8","i16","charCode","codePoint","wasSurrogatePair","nextCharCode","utf16Value","createString","omalloc","codepoint","Jn","LAST_ID","_onigBinding","utfString","_sharedPtrInUse","_sharedPtr","convertUtf8OffsetToUtf16","utf8Offset","convertUtf16OffsetToUtf8","utf16Offset","ofree","Xn","strPtrsArr","strLenArr","strPtrsPtr","strLenPtr","scannerPtr","getLastOnigError","throwLastOnigError","_ptr","freeOnigScanner","arg","debugCall","_findNextMatchSync","resultPtr","findNextOnigScannerMatchDbg","findNextOnigScannerMatch","beg","_resolver","_langs","_alias","_this13","_At","_resolvedThemes","_loadedThemesCache","textmateTheme","_textmateThemeCache","resolved","_resolvedGrammars","_loadLanguage","_callee10","_this14","_iterator37","_step37","_this$_syncRegistry","_this$_syncRegistry2","_t62","_callee10$","_context11","embeddedLazilyBy","_langMap","embeddedLangsLazy","addLanguage","grammarConfig","alias","_loadedLanguagesCache","finish","_x18","_init","_callee11","_this15","_callee11$","_context12","_langGraph","_loadLanguages","_callee12","_iterator38","_step38","resolveEmbeddedLanguages","langsGraphArray","missingLangs","_ref13","_ref14","_context13","dependents","_ref15","_e$embeddedLangs","_ref16","embeddedLangs","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_i37","_e43","_i38","_e44","_x19","_iterator39","_step39","embeddedLang","ii","onigLibPromise","getLangRegistration","langIdOrAlias","_loadGrammar3","_callee13","_scopeToLang","_context14","_x20","injectTo","scopeParts","subScopeName","NileHighlighter","_o24","yi","highlightedCode","_this18","_updated","_callee22","changedProperties","requestUpdate","updated","_x34","render","_templateObject","_taggedTemplateLiteral","__decorate","NileElement","reflect","_export","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
1
|
+
{"version":3,"file":"nile-highlighter.cjs.js","sources":["../../../../node_modules/@shikijs/core/dist/textmate.mjs","../../../../node_modules/@shikijs/core/dist/index.mjs","../../../../node_modules/shiki/dist/bundle-full.mjs","../../../../node_modules/shiki/dist/langs.mjs","../../../../node_modules/shiki/dist/chunks/wasm-dynamic.mjs","../../../../node_modules/shiki/dist/themes.mjs","../../../../node_modules/@shikijs/core/dist/types.mjs","../../../src/nile-highlighter/nile-highlighter.ts"],"sourcesContent":["import { FontStyle } from './types.mjs';\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n({\n InDebugMode: (typeof process !== 'undefined' && !!process.env['VSCODE_TEXTMATE_DEBUG'])\n});\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nvar EncodedTokenAttributes;\n(function (EncodedTokenAttributes) {\n function toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n EncodedTokenAttributes.toBinaryStr = toBinaryStr;\n function print(encodedTokenAttributes) {\n const languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n const tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n const fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n const foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n const background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n console.log({\n languageId: languageId,\n tokenType: tokenType,\n fontStyle: fontStyle,\n foreground: foreground,\n background: background,\n });\n }\n EncodedTokenAttributes.print = print;\n function getLanguageId(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 255 /* EncodedTokenDataConsts.LANGUAGEID_MASK */) >>>\n 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */);\n }\n EncodedTokenAttributes.getLanguageId = getLanguageId;\n function getTokenType(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 768 /* EncodedTokenDataConsts.TOKEN_TYPE_MASK */) >>>\n 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */);\n }\n EncodedTokenAttributes.getTokenType = getTokenType;\n function containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* EncodedTokenDataConsts.BALANCED_BRACKETS_MASK */) !== 0;\n }\n EncodedTokenAttributes.containsBalancedBrackets = containsBalancedBrackets;\n function getFontStyle(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 30720 /* EncodedTokenDataConsts.FONT_STYLE_MASK */) >>>\n 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */);\n }\n EncodedTokenAttributes.getFontStyle = getFontStyle;\n function getForeground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 16744448 /* EncodedTokenDataConsts.FOREGROUND_MASK */) >>>\n 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getForeground = getForeground;\n function getBackground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 4278190080 /* EncodedTokenDataConsts.BACKGROUND_MASK */) >>>\n 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getBackground = getBackground;\n /**\n * Updates the fields in `metadata`.\n * A value of `0`, `NotSet` or `null` indicates that the corresponding field should be left as is.\n */\n function set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n let _tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = EncodedTokenAttributes.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n let _foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n let _background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* OptionalStandardTokenType.NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* FontStyle.NotSet */) {\n _fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n _foreground = foreground;\n }\n if (background !== 0) {\n _background = background;\n }\n return (((_languageId << 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */) |\n (_tokenType << 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */) |\n (_containsBalancedBracketsBit <<\n 10 /* EncodedTokenDataConsts.BALANCED_BRACKETS_OFFSET */) |\n (_fontStyle << 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */) |\n (_foreground << 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */) |\n (_background << 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */)) >>>\n 0);\n }\n EncodedTokenAttributes.set = set;\n})(EncodedTokenAttributes || (EncodedTokenAttributes = {}));\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createMatchers(selector, matchesName) {\n const results = [];\n const tokenizer = newTokenizer(selector);\n let token = tokenizer.next();\n while (token !== null) {\n let priority = 0;\n if (token.length === 2 && token.charAt(1) === ':') {\n switch (token.charAt(0)) {\n case 'R':\n priority = 1;\n break;\n case 'L':\n priority = -1;\n break;\n default:\n console.log(`Unknown priority ${token} in scope selector`);\n }\n token = tokenizer.next();\n }\n let matcher = parseConjunction();\n results.push({ matcher, priority });\n if (token !== ',') {\n break;\n }\n token = tokenizer.next();\n }\n return results;\n function parseOperand() {\n if (token === '-') {\n token = tokenizer.next();\n const expressionToNegate = parseOperand();\n return matcherInput => !!expressionToNegate && !expressionToNegate(matcherInput);\n }\n if (token === '(') {\n token = tokenizer.next();\n const expressionInParents = parseInnerExpression();\n if (token === ')') {\n token = tokenizer.next();\n }\n return expressionInParents;\n }\n if (isIdentifier(token)) {\n const identifiers = [];\n do {\n identifiers.push(token);\n token = tokenizer.next();\n } while (isIdentifier(token));\n return matcherInput => matchesName(identifiers, matcherInput);\n }\n return null;\n }\n function parseConjunction() {\n const matchers = [];\n let matcher = parseOperand();\n while (matcher) {\n matchers.push(matcher);\n matcher = parseOperand();\n }\n return matcherInput => matchers.every(matcher => matcher(matcherInput)); // and\n }\n function parseInnerExpression() {\n const matchers = [];\n let matcher = parseConjunction();\n while (matcher) {\n matchers.push(matcher);\n if (token === '|' || token === ',') {\n do {\n token = tokenizer.next();\n } while (token === '|' || token === ','); // ignore subsequent commas\n }\n else {\n break;\n }\n matcher = parseConjunction();\n }\n return matcherInput => matchers.some(matcher => matcher(matcherInput)); // or\n }\n}\nfunction isIdentifier(token) {\n return !!token && !!token.match(/[\\w\\.:]+/);\n}\nfunction newTokenizer(input) {\n let regex = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g;\n let match = regex.exec(input);\n return {\n next: () => {\n if (!match) {\n return null;\n }\n const res = match[0];\n match = regex.exec(input);\n return res;\n }\n };\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction disposeOnigString(str) {\n if (typeof str.dispose === 'function') {\n str.dispose();\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction clone(something) {\n return doClone(something);\n}\nfunction doClone(something) {\n if (Array.isArray(something)) {\n return cloneArray(something);\n }\n if (typeof something === 'object') {\n return cloneObj(something);\n }\n return something;\n}\nfunction cloneArray(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = doClone(arr[i]);\n }\n return r;\n}\nfunction cloneObj(obj) {\n let r = {};\n for (let key in obj) {\n r[key] = doClone(obj[key]);\n }\n return r;\n}\nfunction mergeObjects(target, ...sources) {\n sources.forEach(source => {\n for (let key in source) {\n target[key] = source[key];\n }\n });\n return target;\n}\nfunction basename(path) {\n const idx = ~path.lastIndexOf('/') || ~path.lastIndexOf('\\\\');\n if (idx === 0) {\n return path;\n }\n else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n }\n else {\n return path.substr(~idx + 1);\n }\n}\nlet CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nclass RegexSource {\n static hasCaptures(regexSource) {\n if (regexSource === null) {\n return false;\n }\n CAPTURING_REGEX_SOURCE.lastIndex = 0;\n return CAPTURING_REGEX_SOURCE.test(regexSource);\n }\n static replaceCaptures(regexSource, captureSource, captureIndices) {\n return regexSource.replace(CAPTURING_REGEX_SOURCE, (match, index, commandIndex, command) => {\n let capture = captureIndices[parseInt(index || commandIndex, 10)];\n if (capture) {\n let result = captureSource.substring(capture.start, capture.end);\n // Remove leading dots that would make the selector invalid\n while (result[0] === '.') {\n result = result.substring(1);\n }\n switch (command) {\n case 'downcase':\n return result.toLowerCase();\n case 'upcase':\n return result.toUpperCase();\n default:\n return result;\n }\n }\n else {\n return match;\n }\n });\n }\n}\nfunction strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nfunction strArrCmp(a, b) {\n if (a === null && b === null) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n let len1 = a.length;\n let len2 = b.length;\n if (len1 === len2) {\n for (let i = 0; i < len1; i++) {\n let res = strcmp(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n }\n return len1 - len2;\n}\nfunction isValidHexColor(hex) {\n if (/^#[0-9a-f]{6}$/i.test(hex)) {\n // #rrggbb\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n // #rrggbbaa\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n // #rgb\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n // #rgba\n return true;\n }\n return false;\n}\n/**\n * Escapes regular expression characters in a given string\n */\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&');\n}\nclass CachedFn {\n fn;\n cache = new Map();\n constructor(fn) {\n this.fn = fn;\n }\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const value = this.fn(key);\n this.cache.set(key, value);\n return value;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * References the top level rule of a grammar with the given scope name.\n*/\nclass TopLevelRuleReference {\n scopeName;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n}\n/**\n * References a rule of a grammar in the top level repository section with the given name.\n*/\nclass TopLevelRepositoryRuleReference {\n scopeName;\n ruleName;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n}\nclass ExternalReferenceCollector {\n _references = [];\n _seenReferenceKeys = new Set();\n get references() {\n return this._references;\n }\n visitedRule = new Set();\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n}\nclass ScopeDependencyProcessor {\n repo;\n initialScopeName;\n seenFullScopeRequests = new Set();\n seenPartialScopeRequests = new Set();\n Q;\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n processQueue() {\n const q = this.Q;\n this.Q = [];\n const deps = new ExternalReferenceCollector();\n for (const dep of q) {\n collectReferencesOfReference(dep, this.initialScopeName, this.repo, deps);\n }\n for (const dep of deps.references) {\n if (dep instanceof TopLevelRuleReference) {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n }\n else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed in full\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n // already processed\n continue;\n }\n this.seenPartialScopeRequests.add(dep.toKey());\n this.Q.push(dep);\n }\n }\n }\n}\nfunction collectReferencesOfReference(reference, baseGrammarScopeName, repo, result) {\n const selfGrammar = repo.lookup(reference.scopeName);\n if (!selfGrammar) {\n if (reference.scopeName === baseGrammarScopeName) {\n throw new Error(`No grammar provided for <${baseGrammarScopeName}>`);\n }\n return;\n }\n const baseGrammar = repo.lookup(baseGrammarScopeName);\n if (reference instanceof TopLevelRuleReference) {\n collectExternalReferencesInTopLevelRule({ baseGrammar, selfGrammar }, result);\n }\n else {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { baseGrammar, selfGrammar, repository: selfGrammar.repository }, result);\n }\n const injections = repo.injections(reference.scopeName);\n if (injections) {\n for (const injection of injections) {\n result.add(new TopLevelRuleReference(injection));\n }\n }\n}\nfunction collectExternalReferencesInTopLevelRepositoryRule(ruleName, context, result) {\n if (context.repository && context.repository[ruleName]) {\n const rule = context.repository[ruleName];\n collectExternalReferencesInRules([rule], context, result);\n }\n}\nfunction collectExternalReferencesInTopLevelRule(context, result) {\n if (context.selfGrammar.patterns && Array.isArray(context.selfGrammar.patterns)) {\n collectExternalReferencesInRules(context.selfGrammar.patterns, { ...context, repository: context.selfGrammar.repository }, result);\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(Object.values(context.selfGrammar.injections), { ...context, repository: context.selfGrammar.repository }, result);\n }\n}\nfunction collectExternalReferencesInRules(rules, context, result) {\n for (const rule of rules) {\n if (result.visitedRule.has(rule)) {\n continue;\n }\n result.visitedRule.add(rule);\n const patternRepository = rule.repository ? mergeObjects({}, context.repository, rule.repository) : context.repository;\n if (Array.isArray(rule.patterns)) {\n collectExternalReferencesInRules(rule.patterns, { ...context, repository: patternRepository }, result);\n }\n const include = rule.include;\n if (!include) {\n continue;\n }\n const reference = parseInclude(include);\n switch (reference.kind) {\n case 0 /* IncludeReferenceKind.Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* IncludeReferenceKind.Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName\n ? context.selfGrammar\n : reference.scopeName === context.baseGrammar.scopeName\n ? context.baseGrammar\n : undefined;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n }\n else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n }\n else {\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n }\n else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nclass BaseReference {\n kind = 0 /* IncludeReferenceKind.Base */;\n}\nclass SelfReference {\n kind = 1 /* IncludeReferenceKind.Self */;\n}\nclass RelativeReference {\n ruleName;\n kind = 2 /* IncludeReferenceKind.RelativeReference */;\n constructor(ruleName) {\n this.ruleName = ruleName;\n }\n}\nclass TopLevelReference {\n scopeName;\n kind = 3 /* IncludeReferenceKind.TopLevelReference */;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n}\nclass TopLevelRepositoryReference {\n scopeName;\n ruleName;\n kind = 4 /* IncludeReferenceKind.TopLevelRepositoryReference */;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n}\nfunction parseInclude(include) {\n if (include === '$base') {\n return new BaseReference();\n }\n else if (include === '$self') {\n return new SelfReference();\n }\n const indexOfSharp = include.indexOf(\"#\");\n if (indexOfSharp === -1) {\n return new TopLevelReference(include);\n }\n else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n }\n else {\n const scopeName = include.substring(0, indexOfSharp);\n const ruleName = include.substring(indexOfSharp + 1);\n return new TopLevelRepositoryReference(scopeName, ruleName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nconst HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nconst BACK_REFERENCING_END = /\\\\(\\d+)/g;\n// This is a special constant to indicate that the end regexp matched.\nconst endRuleId = -1;\n// This is a special constant to indicate that the while regexp matched.\nconst whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nclass Rule {\n $location;\n id;\n _nameIsCapturing;\n _name;\n _contentNameIsCapturing;\n _contentName;\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : 'unknown';\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n}\nclass CaptureRule extends Rule {\n retokenizeCapturedWithRuleId;\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n // nothing to dispose\n }\n collectPatterns(grammar, out) {\n throw new Error('Not supported!');\n }\n compile(grammar, endRegexSource) {\n throw new Error('Not supported!');\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n throw new Error('Not supported!');\n }\n}\nclass MatchRule extends Rule {\n _match;\n captures;\n _cachedCompiledPatterns;\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass IncludeOnlyRule extends Rule {\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginEndRule extends Rule {\n _begin;\n beginCaptures;\n _end;\n endHasBackReferences;\n endCaptures;\n applyEndPatternLast;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : '\\uFFFF', -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n else {\n this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n }\n if (this._end.hasBackReferences) {\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length() - 1, endRegexSource);\n }\n else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginWhileRule extends Rule {\n _begin;\n beginCaptures;\n whileCaptures;\n _while;\n whileHasBackReferences;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n _cachedCompiledWhilePatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : '\\uFFFF');\n }\n return this._cachedCompiledWhilePatterns;\n }\n}\nclass RuleFactory {\n static createCaptureRule(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {\n return helper.registerRule((id) => {\n return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);\n });\n }\n static getCompiledRuleId(desc, helper, repository) {\n if (!desc.id) {\n helper.registerRule((id) => {\n desc.id = id;\n if (desc.match) {\n return new MatchRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.match, RuleFactory._compileCaptures(desc.captures, helper, repository));\n }\n if (typeof desc.begin === 'undefined') {\n if (desc.repository) {\n repository = mergeObjects({}, repository, desc.repository);\n }\n let patterns = desc.patterns;\n if (typeof patterns === 'undefined' && desc.include) {\n patterns = [{ include: desc.include }];\n }\n return new IncludeOnlyRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, RuleFactory._compilePatterns(patterns, helper, repository));\n }\n if (desc.while) {\n return new BeginWhileRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.while, RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository), RuleFactory._compilePatterns(desc.patterns, helper, repository));\n }\n return new BeginEndRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.end, RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository), desc.applyEndPatternLast, RuleFactory._compilePatterns(desc.patterns, helper, repository));\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n // Find the maximum capture id\n let maximumCaptureId = 0;\n for (const captureId in captures) {\n if (captureId === '$vscodeTextmateLocation') {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n if (numericCaptureId > maximumCaptureId) {\n maximumCaptureId = numericCaptureId;\n }\n }\n // Initialize result\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n // Fill out result\n for (const captureId in captures) {\n if (captureId === '$vscodeTextmateLocation') {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n let retokenizeCapturedWithRuleId = 0;\n if (captures[captureId].patterns) {\n retokenizeCapturedWithRuleId = RuleFactory.getCompiledRuleId(captures[captureId], helper, repository);\n }\n r[numericCaptureId] = RuleFactory.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);\n }\n }\n return r;\n }\n static _compilePatterns(patterns, helper, repository) {\n let r = [];\n if (patterns) {\n for (let i = 0, len = patterns.length; i < len; i++) {\n const pattern = patterns[i];\n let ruleId = -1;\n if (pattern.include) {\n const reference = parseInclude(pattern.include);\n switch (reference.kind) {\n case 0 /* IncludeReferenceKind.Base */:\n case 1 /* IncludeReferenceKind.Self */:\n ruleId = RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n // Local include found in `repository`\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n }\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */\n ? reference.ruleName\n : null;\n // External include\n const externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);\n if (externalGrammar) {\n if (externalGrammarInclude) {\n let externalIncludedRule = externalGrammar.repository[externalGrammarInclude];\n if (externalIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);\n }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n }\n break;\n }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(pattern, helper, repository);\n }\n if (ruleId !== -1) {\n const rule = helper.getRule(ruleId);\n let skipRule = false;\n if (rule instanceof IncludeOnlyRule || rule instanceof BeginEndRule || rule instanceof BeginWhileRule) {\n if (rule.hasMissingPatterns && rule.patterns.length === 0) {\n skipRule = true;\n }\n }\n if (skipRule) {\n // console.log('REMOVING RULE ENTIRELY DUE TO EMPTY PATTERNS THAT ARE MISSING');\n continue;\n }\n r.push(ruleId);\n }\n }\n }\n return {\n patterns: r,\n hasMissingPatterns: ((patterns ? patterns.length : 0) !== r.length)\n };\n }\n}\nclass RegExpSource {\n source;\n ruleId;\n hasAnchor;\n hasBackReferences;\n _anchorCache;\n constructor(regExpSource, ruleId) {\n if (regExpSource) {\n const len = regExpSource.length;\n let lastPushedPos = 0;\n let output = [];\n let hasAnchor = false;\n for (let pos = 0; pos < len; pos++) {\n const ch = regExpSource.charAt(pos);\n if (ch === '\\\\') {\n if (pos + 1 < len) {\n const nextCh = regExpSource.charAt(pos + 1);\n if (nextCh === 'z') {\n output.push(regExpSource.substring(lastPushedPos, pos));\n output.push('$(?!\\\\n)(?<!\\\\n)');\n lastPushedPos = pos + 2;\n }\n else if (nextCh === 'A' || nextCh === 'G') {\n hasAnchor = true;\n }\n pos++;\n }\n }\n }\n this.hasAnchor = hasAnchor;\n if (lastPushedPos === 0) {\n // No \\z hit\n this.source = regExpSource;\n }\n else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join('');\n }\n }\n else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n // console.log('input: ' + regExpSource + ' => ' + this.source + ', ' + this.hasAnchor);\n }\n clone() {\n return new RegExpSource(this.source, this.ruleId);\n }\n setSource(newSource) {\n if (this.source === newSource) {\n return;\n }\n this.source = newSource;\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n }\n resolveBackReferences(lineText, captureIndices) {\n let capturedValues = captureIndices.map((capture) => {\n return lineText.substring(capture.start, capture.end);\n });\n BACK_REFERENCING_END.lastIndex = 0;\n return this.source.replace(BACK_REFERENCING_END, (match, g1) => {\n return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || '');\n });\n }\n _buildAnchorCache() {\n let A0_G0_result = [];\n let A0_G1_result = [];\n let A1_G0_result = [];\n let A1_G1_result = [];\n let pos, len, ch, nextCh;\n for (pos = 0, len = this.source.length; pos < len; pos++) {\n ch = this.source.charAt(pos);\n A0_G0_result[pos] = ch;\n A0_G1_result[pos] = ch;\n A1_G0_result[pos] = ch;\n A1_G1_result[pos] = ch;\n if (ch === '\\\\') {\n if (pos + 1 < len) {\n nextCh = this.source.charAt(pos + 1);\n if (nextCh === 'A') {\n A0_G0_result[pos + 1] = '\\uFFFF';\n A0_G1_result[pos + 1] = '\\uFFFF';\n A1_G0_result[pos + 1] = 'A';\n A1_G1_result[pos + 1] = 'A';\n }\n else if (nextCh === 'G') {\n A0_G0_result[pos + 1] = '\\uFFFF';\n A0_G1_result[pos + 1] = 'G';\n A1_G0_result[pos + 1] = '\\uFFFF';\n A1_G1_result[pos + 1] = 'G';\n }\n else {\n A0_G0_result[pos + 1] = nextCh;\n A0_G1_result[pos + 1] = nextCh;\n A1_G0_result[pos + 1] = nextCh;\n A1_G1_result[pos + 1] = nextCh;\n }\n pos++;\n }\n }\n }\n return {\n A0_G0: A0_G0_result.join(''),\n A0_G1: A0_G1_result.join(''),\n A1_G0: A1_G0_result.join(''),\n A1_G1: A1_G1_result.join('')\n };\n }\n resolveAnchors(allowA, allowG) {\n if (!this.hasAnchor || !this._anchorCache) {\n return this.source;\n }\n if (allowA) {\n if (allowG) {\n return this._anchorCache.A1_G1;\n }\n else {\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n }\n else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n}\nclass RegExpSourceList {\n _items;\n _hasAnchors;\n _cached;\n _anchorCache;\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n // bust the cache\n this._disposeCaches();\n this._items[index].setSource(newSource);\n }\n }\n compile(onigLib) {\n if (!this._cached) {\n let regExps = this._items.map(e => e.source);\n this._cached = new CompiledRule(onigLib, regExps, this._items.map(e => e.ruleId));\n }\n return this._cached;\n }\n compileAG(onigLib, allowA, allowG) {\n if (!this._hasAnchors) {\n return this.compile(onigLib);\n }\n else {\n if (allowA) {\n if (allowG) {\n if (!this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G1;\n }\n else {\n if (!this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n if (!this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G1;\n }\n else {\n if (!this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G0;\n }\n }\n }\n }\n _resolveAnchors(onigLib, allowA, allowG) {\n let regExps = this._items.map(e => e.resolveAnchors(allowA, allowG));\n return new CompiledRule(onigLib, regExps, this._items.map(e => e.ruleId));\n }\n}\nclass CompiledRule {\n regExps;\n rules;\n scanner;\n constructor(onigLib, regExps, rules) {\n this.regExps = regExps;\n this.rules = rules;\n this.scanner = onigLib.createOnigScanner(regExps);\n }\n dispose() {\n if (typeof this.scanner.dispose === \"function\") {\n this.scanner.dispose();\n }\n }\n toString() {\n const r = [];\n for (let i = 0, len = this.rules.length; i < len; i++) {\n r.push(\" - \" + this.rules[i] + \": \" + this.regExps[i]);\n }\n return r.join(\"\\n\");\n }\n findNextMatchSync(string, startPosition, options) {\n const result = this.scanner.findNextMatchSync(string, startPosition, options);\n if (!result) {\n return null;\n }\n return {\n ruleId: this.rules[result.index],\n captureIndices: result.captureIndices,\n };\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass Theme {\n _colorMap;\n _defaults;\n _root;\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n _cachedMatchRoot = new CachedFn((scopeName) => this._root.match(scopeName));\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\n }\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n getDefaults() {\n return this._defaults;\n }\n match(scopePath) {\n if (scopePath === null) {\n return this._defaults;\n }\n const scopeName = scopePath.scopeName;\n const matchingTrieElements = this._cachedMatchRoot.get(scopeName);\n const effectiveRule = matchingTrieElements.find((v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes));\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(effectiveRule.fontStyle, effectiveRule.foreground, effectiveRule.background);\n }\n}\nclass ScopeStack {\n parent;\n scopeName;\n static push(path, scopeNames) {\n for (const name of scopeNames) {\n path = new ScopeStack(path, name);\n }\n return path;\n }\n static from(...segments) {\n let result = null;\n for (let i = 0; i < segments.length; i++) {\n result = new ScopeStack(result, segments[i]);\n }\n return result;\n }\n constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\n }\n push(scopeName) {\n return new ScopeStack(this, scopeName);\n }\n getSegments() {\n let item = this;\n const result = [];\n while (item) {\n result.push(item.scopeName);\n item = item.parent;\n }\n result.reverse();\n return result;\n }\n toString() {\n return this.getSegments().join(' ');\n }\n extends(other) {\n if (this === other) {\n return true;\n }\n if (this.parent === null) {\n return false;\n }\n return this.parent.extends(other);\n }\n getExtensionIfDefined(base) {\n const result = [];\n let item = this;\n while (item && item !== base) {\n result.push(item.scopeName);\n item = item.parent;\n }\n return item === base ? result.reverse() : undefined;\n }\n}\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes === null) {\n return true;\n }\n let index = 0;\n let scopePattern = parentScopes[index];\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n index++;\n if (index === parentScopes.length) {\n return true;\n }\n scopePattern = parentScopes[index];\n }\n scopePath = scopePath.parent;\n }\n return false;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || (scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === '.');\n}\nclass StyleAttributes {\n fontStyle;\n foregroundId;\n backgroundId;\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n}\n/**\n * Parse a raw theme into rules.\n */\nfunction parseTheme(source) {\n if (!source) {\n return [];\n }\n if (!source.settings || !Array.isArray(source.settings)) {\n return [];\n }\n let settings = source.settings;\n let result = [], resultLen = 0;\n for (let i = 0, len = settings.length; i < len; i++) {\n let entry = settings[i];\n if (!entry.settings) {\n continue;\n }\n let scopes;\n if (typeof entry.scope === 'string') {\n let _scope = entry.scope;\n // remove leading commas\n _scope = _scope.replace(/^[,]+/, '');\n // remove trailing commans\n _scope = _scope.replace(/[,]+$/, '');\n scopes = _scope.split(',');\n }\n else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n }\n else {\n scopes = [''];\n }\n let fontStyle = -1 /* FontStyle.NotSet */;\n if (typeof entry.settings.fontStyle === 'string') {\n fontStyle = 0 /* FontStyle.None */;\n let segments = entry.settings.fontStyle.split(' ');\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n let segment = segments[j];\n switch (segment) {\n case 'italic':\n fontStyle = fontStyle | 1 /* FontStyle.Italic */;\n break;\n case 'bold':\n fontStyle = fontStyle | 2 /* FontStyle.Bold */;\n break;\n case 'underline':\n fontStyle = fontStyle | 4 /* FontStyle.Underline */;\n break;\n case 'strikethrough':\n fontStyle = fontStyle | 8 /* FontStyle.Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.settings.foreground === 'string' && isValidHexColor(entry.settings.foreground)) {\n foreground = entry.settings.foreground;\n }\n let background = null;\n if (typeof entry.settings.background === 'string' && isValidHexColor(entry.settings.background)) {\n background = entry.settings.background;\n }\n for (let j = 0, lenJ = scopes.length; j < lenJ; j++) {\n let _scope = scopes[j].trim();\n let segments = _scope.split(' ');\n let scope = segments[segments.length - 1];\n let parentScopes = null;\n if (segments.length > 1) {\n parentScopes = segments.slice(0, segments.length - 1);\n parentScopes.reverse();\n }\n result[resultLen++] = new ParsedThemeRule(scope, parentScopes, i, fontStyle, foreground, background);\n }\n }\n return result;\n}\nclass ParsedThemeRule {\n scope;\n parentScopes;\n index;\n fontStyle;\n foreground;\n background;\n constructor(scope, parentScopes, index, fontStyle, foreground, background) {\n this.scope = scope;\n this.parentScopes = parentScopes;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n}\n/**\n * Resolve rules (i.e. inheritance).\n */\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n // Sort rules lexicographically, and then by index if necessary\n parsedThemeRules.sort((a, b) => {\n let r = strcmp(a.scope, b.scope);\n if (r !== 0) {\n return r;\n }\n r = strArrCmp(a.parentScopes, b.parentScopes);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n // Determine defaults\n let defaultFontStyle = 0 /* FontStyle.None */;\n let defaultForeground = '#000000';\n let defaultBackground = '#ffffff';\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === '') {\n let incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* FontStyle.NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n let colorMap = new ColorMap(_colorMap);\n let defaults = new StyleAttributes(defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));\n let root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1 /* FontStyle.NotSet */, 0, 0), []);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n let rule = parsedThemeRules[i];\n root.insert(0, rule.scope, rule.parentScopes, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new Theme(colorMap, defaults, root);\n}\nclass ColorMap {\n _isFrozen;\n _lastColorId;\n _id2color;\n _color2id;\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = Object.create(null);\n if (Array.isArray(_colorMap)) {\n this._isFrozen = true;\n for (let i = 0, len = _colorMap.length; i < len; i++) {\n this._color2id[_colorMap[i]] = i;\n this._id2color[i] = _colorMap[i];\n }\n }\n else {\n this._isFrozen = false;\n }\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n color = color.toUpperCase();\n let value = this._color2id[color];\n if (value) {\n return value;\n }\n if (this._isFrozen) {\n throw new Error(`Missing color in color map - ${color}`);\n }\n value = ++this._lastColorId;\n this._color2id[color] = value;\n this._id2color[value] = color;\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n}\nclass ThemeTrieElementRule {\n scopeDepth;\n parentScopes;\n fontStyle;\n foreground;\n background;\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n clone() {\n return new ThemeTrieElementRule(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }\n static cloneArr(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = arr[i].clone();\n }\n return r;\n }\n acceptOverwrite(scopeDepth, fontStyle, foreground, background) {\n if (this.scopeDepth > scopeDepth) {\n console.log('how did this happen?');\n }\n else {\n this.scopeDepth = scopeDepth;\n }\n // console.log('TODO -> my depth: ' + this.scopeDepth + ', overwriting depth: ' + scopeDepth);\n if (fontStyle !== -1 /* FontStyle.NotSet */) {\n this.fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n this.foreground = foreground;\n }\n if (background !== 0) {\n this.background = background;\n }\n }\n}\nclass ThemeTrieElement {\n _mainRule;\n _children;\n _rulesWithParentScopes;\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n static _sortBySpecificity(arr) {\n if (arr.length === 1) {\n return arr;\n }\n arr.sort(this._cmpBySpecificity);\n return arr;\n }\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth === b.scopeDepth) {\n const aParentScopes = a.parentScopes;\n const bParentScopes = b.parentScopes;\n let aParentScopesLen = aParentScopes === null ? 0 : aParentScopes.length;\n let bParentScopesLen = bParentScopes === null ? 0 : bParentScopes.length;\n if (aParentScopesLen === bParentScopesLen) {\n for (let i = 0; i < aParentScopesLen; i++) {\n const aLen = aParentScopes[i].length;\n const bLen = bParentScopes[i].length;\n if (aLen !== bLen) {\n return bLen - aLen;\n }\n }\n }\n return bParentScopesLen - aParentScopesLen;\n }\n return b.scopeDepth - a.scopeDepth;\n }\n match(scope) {\n if (scope === '') {\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\n else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n if (this._children.hasOwnProperty(head)) {\n return this._children[head].match(tail);\n }\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n insert(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {\n if (scope === '') {\n this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);\n return;\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\n else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n let child;\n if (this._children.hasOwnProperty(head)) {\n child = this._children[head];\n }\n else {\n child = new ThemeTrieElement(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));\n this._children[head] = child;\n }\n child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);\n }\n _doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background) {\n if (parentScopes === null) {\n // Merge into the main rule\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n // Try to merge into existing rule\n for (let i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {\n let rule = this._rulesWithParentScopes[i];\n if (strArrCmp(rule.parentScopes, parentScopes) === 0) {\n // bingo! => we get to merge this into an existing one\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n // Must add a new rule\n // Inherit from main rule\n if (fontStyle === -1 /* FontStyle.NotSet */) {\n fontStyle = this._mainRule.fontStyle;\n }\n if (foreground === 0) {\n foreground = this._mainRule.foreground;\n }\n if (background === 0) {\n background = this._mainRule.background;\n }\n this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass BasicScopeAttributes {\n languageId;\n tokenType;\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n}\nclass BasicScopeAttributesProvider {\n _defaultAttributes;\n _embeddedLanguagesMatcher;\n constructor(initialLanguageId, embeddedLanguages) {\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* OptionalStandardTokenType.NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n static _NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n _getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* OptionalStandardTokenType.NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* OptionalStandardTokenType.Comment */;\n case \"string\":\n return 2 /* OptionalStandardTokenType.String */;\n case \"regex\":\n return 3 /* OptionalStandardTokenType.RegEx */;\n case \"meta.embedded\":\n return 0 /* OptionalStandardTokenType.Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n static STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\n}\nclass ScopeMatcher {\n values;\n scopesRegExp;\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n }\n else {\n this.values = new Map(values);\n // create the regex\n const escapedScopes = values.map(([scopeName, value]) => escapeRegExpCharacters(scopeName));\n escapedScopes.sort();\n escapedScopes.reverse(); // Longest scope first\n this.scopesRegExp = new RegExp(`^((${escapedScopes.join(\")|(\")}))($|\\\\.)`, \"\");\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return undefined;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n // no scopes matched\n return undefined;\n }\n return this.values.get(m[1]);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass TokenizeStringResult {\n stack;\n stoppedEarly;\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n}\n/**\n * Tokenize a string\n * @param grammar\n * @param lineText\n * @param isFirstLine\n * @param linePos\n * @param stack\n * @param lineTokens\n * @param checkWhileConditions\n * @param timeLimit Use `0` to indicate no time limit\n * @returns the StackElement or StackElement.TIME_LIMIT_REACHED if the time limit has been reached\n */\nfunction _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTokens, checkWhileConditions, timeLimit) {\n const lineLength = lineText.content.length;\n let STOP = false;\n let anchorPosition = -1;\n if (checkWhileConditions) {\n const whileCheckResult = _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens);\n stack = whileCheckResult.stack;\n linePos = whileCheckResult.linePos;\n isFirstLine = whileCheckResult.isFirstLine;\n anchorPosition = whileCheckResult.anchorPosition;\n }\n const startTime = Date.now();\n while (!STOP) {\n if (timeLimit !== 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime > timeLimit) {\n return new TokenizeStringResult(stack, true);\n }\n }\n scanNext(); // potentially modifies linePos && anchorPosition\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n const r = matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!r) {\n // No match\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n const captureIndices = r.captureIndices;\n const matchedRuleId = r.matchedRuleId;\n const hasAdvanced = captureIndices && captureIndices.length > 0\n ? captureIndices[0].end > linePos\n : false;\n if (matchedRuleId === endRuleId) {\n // We matched the `end` for this rule => pop it\n const poppedRule = stack.getRule(grammar);\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, poppedRule.endCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n // See https://github.com/Microsoft/vscode-textmate/issues/12\n // Let's assume this was a mistake by the grammar author and the intent was to continue in this state\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n // We matched a rule!\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n // push it on the stack rule\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n stack = stack.push(matchedRuleId, linePos, anchorPosition, captureIndices[0].end === lineLength, null, nameScopesList, nameScopesList);\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getEndWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getWhileWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n const matchingRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, matchingRule.captures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop rule immediately since it is a MatchRule\n stack = stack.pop();\n if (!hasAdvanced) {\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n // Advance stream\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\n/**\n * Walk the stack from bottom to top, and check each while condition in this order.\n * If any fails, cut off the entire stack above the failed while condition. While conditions\n * may also advance the linePosition.\n */\nfunction _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens) {\n let anchorPosition = (stack.beginRuleCapturedEOL ? 0 : -1);\n const whileRules = [];\n for (let node = stack; node; node = node.pop()) {\n const nodeRule = node.getRule(grammar);\n if (nodeRule instanceof BeginWhileRule) {\n whileRules.push({\n rule: nodeRule,\n stack: node\n });\n }\n }\n for (let whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {\n const { ruleScanner, findOptions } = prepareRuleWhileSearch(whileRule.rule, grammar, whileRule.stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n // we shouldn't end up here\n stack = whileRule.stack.pop();\n break;\n }\n if (r.captureIndices && r.captureIndices.length) {\n lineTokens.produce(whileRule.stack, r.captureIndices[0].start);\n handleCaptures(grammar, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);\n lineTokens.produce(whileRule.stack, r.captureIndices[0].end);\n anchorPosition = r.captureIndices[0].end;\n if (r.captureIndices[0].end > linePos) {\n linePos = r.captureIndices[0].end;\n isFirstLine = false;\n }\n }\n }\n else {\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack: stack, linePos: linePos, anchorPosition: anchorPosition, isFirstLine: isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // Look for normal grammar rule\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n // Look for injected rules\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n // No injections whatsoever => early return\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n // No injections matched => early return\n return matchResult;\n }\n if (!matchResult) {\n // Only injections matched => early return\n return injectionResult;\n }\n // Decide if `matchResult` or `injectionResult` should win\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || (injectionResult.priorityMatch && injectionResultScore === matchResultScore)) {\n // injection won!\n return injectionResult;\n }\n return matchResult;\n}\nfunction matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const rule = stack.getRule(grammar);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n return {\n captureIndices: r.captureIndices,\n matchedRuleId: r.ruleId\n };\n }\n return null;\n}\nfunction matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // The lower the better\n let bestMatchRating = Number.MAX_VALUE;\n let bestMatchCaptureIndices = null;\n let bestMatchRuleId;\n let bestMatchResultPriority = 0;\n const scopes = stack.contentNameScopesList.getScopeNames();\n for (let i = 0, len = injections.length; i < len; i++) {\n const injection = injections[i];\n if (!injection.matcher(scopes)) {\n // injection selector doesn't match stack\n continue;\n }\n const rule = grammar.getRule(injection.ruleId);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, null, isFirstLine, linePos === anchorPosition);\n const matchResult = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (!matchResult) {\n continue;\n }\n const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n // Injections are sorted by priority, so the previous injection had a better or equal priority\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n // No more need to look at the rest of the injections.\n break;\n }\n }\n if (bestMatchCaptureIndices) {\n return {\n priorityMatch: bestMatchResultPriority === -1,\n captureIndices: bestMatchCaptureIndices,\n matchedRuleId: bestMatchRuleId\n };\n }\n return null;\n}\nfunction prepareRuleSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {\n if (captures.length === 0) {\n return;\n }\n const lineTextContent = lineText.content;\n const len = Math.min(captures.length, captureIndices.length);\n const localStack = [];\n const maxEnd = captureIndices[0].end;\n for (let i = 0; i < len; i++) {\n const captureRule = captures[i];\n if (captureRule === null) {\n // Not interested\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n // Nothing really captured\n continue;\n }\n if (captureIndex.start > maxEnd) {\n // Capture going beyond consumed string\n break;\n }\n // pop captures while needed\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n if (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);\n }\n else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n // the capture requires additional matching\n const scopeName = captureRule.getName(lineTextContent, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n const contentName = captureRule.getContentName(lineTextContent, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n const stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, -1, false, null, nameScopesList, contentNameScopesList);\n const onigSubStr = grammar.createOnigString(lineTextContent.substring(0, captureIndex.end));\n _tokenizeString(grammar, onigSubStr, (isFirstLine && captureIndex.start === 0), captureIndex.start, stackClone, lineTokens, false, /* no time limit */ 0);\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n // push\n const base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;\n const captureRuleScopesList = base.pushAttributed(captureRuleScopeName, grammar);\n localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));\n }\n }\n while (localStack.length > 0) {\n // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nclass LocalStackElement {\n scopes;\n endPos;\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib); //TODO\n}\nfunction collectInjections(result, selector, rule, ruleFactoryHelper, grammar) {\n const matchers = createMatchers(selector, nameMatcher);\n const ruleId = RuleFactory.getCompiledRuleId(rule, ruleFactoryHelper, grammar.repository);\n for (const matcher of matchers) {\n result.push({\n debugSelector: selector,\n matcher: matcher.matcher,\n ruleId: ruleId,\n grammar: grammar,\n priority: matcher.priority\n });\n }\n}\nfunction nameMatcher(identifers, scopes) {\n if (scopes.length < identifers.length) {\n return false;\n }\n let lastIndex = 0;\n return identifers.every(identifier => {\n for (let i = lastIndex; i < scopes.length; i++) {\n if (scopesAreMatching(scopes[i], identifier)) {\n lastIndex = i + 1;\n return true;\n }\n }\n return false;\n });\n}\nfunction scopesAreMatching(thisScopeName, scopeName) {\n if (!thisScopeName) {\n return false;\n }\n if (thisScopeName === scopeName) {\n return true;\n }\n const len = scopeName.length;\n return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === '.';\n}\nclass Grammar {\n _rootScopeName;\n balancedBracketSelectors;\n _onigLib;\n _rootId;\n _lastRuleId;\n _ruleId2desc;\n _includedGrammars;\n _grammarRepository;\n _grammar;\n _injections;\n _basicScopeAttributesProvider;\n _tokenTypeMatchers;\n get themeProvider() { return this._grammarRepository; }\n constructor(_rootScopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, _onigLib) {\n this._rootScopeName = _rootScopeName;\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._onigLib = _onigLib;\n this._basicScopeAttributesProvider = new BasicScopeAttributesProvider(initialLanguage, embeddedLanguages);\n this._rootId = -1;\n this._lastRuleId = 0;\n this._ruleId2desc = [null];\n this._includedGrammars = {};\n this._grammarRepository = grammarRepository;\n this._grammar = initGrammar(grammar, null);\n this._injections = null;\n this._tokenTypeMatchers = [];\n if (tokenTypes) {\n for (const selector of Object.keys(tokenTypes)) {\n const matchers = createMatchers(selector, nameMatcher);\n for (const matcher of matchers) {\n this._tokenTypeMatchers.push({\n matcher: matcher.matcher,\n type: tokenTypes[selector],\n });\n }\n }\n }\n }\n dispose() {\n for (const rule of this._ruleId2desc) {\n if (rule) {\n rule.dispose();\n }\n }\n }\n createOnigScanner(sources) {\n return this._onigLib.createOnigScanner(sources);\n }\n createOnigString(sources) {\n return this._onigLib.createOnigString(sources);\n }\n getMetadataForScope(scope) {\n return this._basicScopeAttributesProvider.getBasicScopeAttributes(scope);\n }\n _collectInjections() {\n const grammarRepository = {\n lookup: (scopeName) => {\n if (scopeName === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName);\n },\n injections: (scopeName) => {\n return this._grammarRepository.injections(scopeName);\n },\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n // add injections from the current grammar\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(result, expression, rawInjections[expression], this, grammar);\n }\n }\n // add injection grammars contributed for the current scope\n const injectionScopeNames = this._grammarRepository.injections(scopeName);\n if (injectionScopeNames) {\n injectionScopeNames.forEach((injectionScopeName) => {\n const injectionGrammar = this.getExternalGrammar(injectionScopeName);\n if (injectionGrammar) {\n const selector = injectionGrammar.injectionSelector;\n if (selector) {\n collectInjections(result, selector, injectionGrammar, this, injectionGrammar);\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority); // sort by priority\n return result;\n }\n getInjections() {\n if (this._injections === null) {\n this._injections = this._collectInjections();\n }\n return this._injections;\n }\n registerRule(factory) {\n const id = ++this._lastRuleId;\n const result = factory(ruleIdFromNumber(id));\n this._ruleId2desc[id] = result;\n return result;\n }\n getRule(ruleId) {\n return this._ruleId2desc[ruleIdToNumber(ruleId)];\n }\n getExternalGrammar(scopeName, repository) {\n if (this._includedGrammars[scopeName]) {\n return this._includedGrammars[scopeName];\n }\n else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n // console.log('LOADED GRAMMAR ' + pattern.include);\n this._includedGrammars[scopeName] = initGrammar(rawIncludedGrammar, repository && repository.$base);\n return this._includedGrammars[scopeName];\n }\n }\n return undefined;\n }\n tokenizeLine(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, false, timeLimit);\n return {\n tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n tokenizeLine2(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, true, timeLimit);\n return {\n tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n _tokenize(lineText, prevState, emitBinaryTokens, timeLimit) {\n if (this._rootId === -1) {\n this._rootId = RuleFactory.getCompiledRuleId(this._grammar.repository.$self, this, this._grammar.repository);\n // This ensures ids are deterministic, and thus equal in renderer and webworker.\n this.getInjections();\n }\n let isFirstLine;\n if (!prevState || prevState === StateStackImpl.NULL) {\n isFirstLine = true;\n const rawDefaultMetadata = this._basicScopeAttributesProvider.getDefaultAttributes();\n const defaultStyle = this.themeProvider.getDefaults();\n const defaultMetadata = EncodedTokenAttributes.set(0, rawDefaultMetadata.languageId, rawDefaultMetadata.tokenType, null, defaultStyle.fontStyle, defaultStyle.foregroundId, defaultStyle.backgroundId);\n const rootScopeName = this.getRule(this._rootId).getName(null, null);\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(rootScopeName, defaultMetadata, this);\n }\n else {\n scopeList = AttributedScopeStack.createRoot(\"unknown\", defaultMetadata);\n }\n prevState = new StateStackImpl(null, this._rootId, -1, -1, false, null, scopeList, scopeList);\n }\n else {\n isFirstLine = false;\n prevState.reset();\n }\n lineText = lineText + \"\\n\";\n const onigLineText = this.createOnigString(lineText);\n const lineLength = onigLineText.content.length;\n const lineTokens = new LineTokens(emitBinaryTokens, lineText, this._tokenTypeMatchers, this.balancedBracketSelectors);\n const r = _tokenizeString(this, onigLineText, isFirstLine, 0, prevState, lineTokens, true, timeLimit);\n disposeOnigString(onigLineText);\n return {\n lineLength: lineLength,\n lineTokens: lineTokens,\n ruleStack: r.stack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n}\nfunction initGrammar(grammar, base) {\n grammar = clone(grammar);\n grammar.repository = grammar.repository || {};\n grammar.repository.$self = {\n $vscodeTextmateLocation: grammar.$vscodeTextmateLocation,\n patterns: grammar.patterns,\n name: grammar.scopeName\n };\n grammar.repository.$base = base || grammar.repository.$self;\n return grammar;\n}\nclass AttributedScopeStack {\n parent;\n scopePath;\n tokenAttributes;\n static fromExtension(namesScopeList, contentNameScopesList) {\n let current = namesScopeList;\n let scopeNames = namesScopeList?.scopePath ?? null;\n for (const frame of contentNameScopesList) {\n scopeNames = ScopeStack.push(scopeNames, frame.scopeNames);\n current = new AttributedScopeStack(current, scopeNames, frame.encodedTokenAttributes);\n }\n return current;\n }\n static createRoot(scopeName, tokenAttributes) {\n return new AttributedScopeStack(null, new ScopeStack(null, scopeName), tokenAttributes);\n }\n static createRootAndLookUpScopeName(scopeName, tokenAttributes, grammar) {\n const rawRootMetadata = grammar.getMetadataForScope(scopeName);\n const scopePath = new ScopeStack(null, scopeName);\n const rootStyle = grammar.themeProvider.themeMatch(scopePath);\n const resolvedTokenAttributes = AttributedScopeStack.mergeAttributes(tokenAttributes, rawRootMetadata, rootStyle);\n return new AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() { return this.scopePath.scopeName; }\n /**\n * Invariant:\n * ```\n * if (parent && !scopePath.extends(parent.scopePath)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, scopePath, tokenAttributes) {\n this.parent = parent;\n this.scopePath = scopePath;\n this.tokenAttributes = tokenAttributes;\n }\n toString() {\n return this.getScopeNames().join(' ');\n }\n equals(other) {\n return AttributedScopeStack.equals(this, other);\n }\n static equals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* FontStyle.NotSet */;\n let foreground = 0;\n let background = 0;\n if (styleAttributes !== null) {\n fontStyle = styleAttributes.fontStyle;\n foreground = styleAttributes.foregroundId;\n background = styleAttributes.backgroundId;\n }\n return EncodedTokenAttributes.set(existingTokenAttributes, basicScopeAttributes.languageId, basicScopeAttributes.tokenType, null, fontStyle, foreground, background);\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(' ') === -1) {\n // This is the common case and much faster\n return AttributedScopeStack._pushAttributed(this, scopePath, grammar);\n }\n const scopes = scopePath.split(/ /g);\n let result = this;\n for (const scope of scopes) {\n result = AttributedScopeStack._pushAttributed(result, scope, grammar);\n }\n return result;\n }\n static _pushAttributed(target, scopeName, grammar) {\n const rawMetadata = grammar.getMetadataForScope(scopeName);\n const newPath = target.scopePath.push(scopeName);\n const scopeThemeMatchResult = grammar.themeProvider.themeMatch(newPath);\n const metadata = AttributedScopeStack.mergeAttributes(target.tokenAttributes, rawMetadata, scopeThemeMatchResult);\n return new AttributedScopeStack(target, newPath, metadata);\n }\n getScopeNames() {\n return this.scopePath.getSegments();\n }\n getExtensionIfDefined(base) {\n const result = [];\n let self = this;\n while (self && self !== base) {\n result.push({\n encodedTokenAttributes: self.tokenAttributes,\n scopeNames: self.scopePath.getExtensionIfDefined(self.parent?.scopePath ?? null),\n });\n self = self.parent;\n }\n return self === base ? result.reverse() : undefined;\n }\n}\n/**\n * Represents a \"pushed\" state on the stack (as a linked list element).\n */\nclass StateStackImpl {\n parent;\n ruleId;\n beginRuleCapturedEOL;\n endRule;\n nameScopesList;\n contentNameScopesList;\n _stackElementBrand = undefined;\n // TODO remove me\n static NULL = new StateStackImpl(null, 0, 0, 0, false, null, null, null);\n /**\n * The position on the current line where this state was pushed.\n * This is relevant only while tokenizing a line, to detect endless loops.\n * Its value is meaningless across lines.\n */\n _enterPos;\n /**\n * The captured anchor position when this stack element was pushed.\n * This is relevant only while tokenizing a line, to restore the anchor position when popping.\n * Its value is meaningless across lines.\n */\n _anchorPos;\n /**\n * The depth of the stack.\n */\n depth;\n /**\n * Invariant:\n * ```\n * if (contentNameScopesList !== nameScopesList && contentNameScopesList?.parent !== nameScopesList) {\n * \tthrow new Error();\n * }\n * if (this.parent && !nameScopesList.extends(this.parent.contentNameScopesList)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(\n /**\n * The previous state on the stack (or null for the root state).\n */\n parent, \n /**\n * The state (rule) that this element represents.\n */\n ruleId, enterPos, anchorPos, \n /**\n * The state has entered and captured \\n. This means that the next line should have an anchorPosition of 0.\n */\n beginRuleCapturedEOL, \n /**\n * The \"pop\" (end) condition for this state in case that it was dynamically generated through captured text.\n */\n endRule, \n /**\n * The list of scopes containing the \"name\" for this state.\n */\n nameScopesList, \n /**\n * The list of scopes containing the \"contentName\" (besides \"name\") for this state.\n * This list **must** contain as an element `scopeName`.\n */\n contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n equals(other) {\n if (other === null) {\n return false;\n }\n return StateStackImpl._equals(this, other);\n }\n static _equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!this._structuralEquals(a, b)) {\n return false;\n }\n return AttributedScopeStack.equals(a.contentNameScopesList, b.contentNameScopesList);\n }\n /**\n * A structural equals check. Does not take into account `scopes`.\n */\n static _structuralEquals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.depth !== b.depth ||\n a.ruleId !== b.ruleId ||\n a.endRule !== b.endRule) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n clone() {\n return this;\n }\n static _reset(el) {\n while (el) {\n el._enterPos = -1;\n el._anchorPos = -1;\n el = el.parent;\n }\n }\n reset() {\n StateStackImpl._reset(this);\n }\n pop() {\n return this.parent;\n }\n safePop() {\n if (this.parent) {\n return this.parent;\n }\n return this;\n }\n push(ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n return new StateStackImpl(this, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList);\n }\n getEnterPos() {\n return this._enterPos;\n }\n getAnchorPos() {\n return this._anchorPos;\n }\n getRule(grammar) {\n return grammar.getRule(this.ruleId);\n }\n toString() {\n const r = [];\n this._writeString(r, 0);\n return \"[\" + r.join(\",\") + \"]\";\n }\n _writeString(res, outIndex) {\n if (this.parent) {\n outIndex = this.parent._writeString(res, outIndex);\n }\n res[outIndex++] = `(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`;\n return outIndex;\n }\n withContentNameScopesList(contentNameScopeStack) {\n if (this.contentNameScopesList === contentNameScopeStack) {\n return this;\n }\n return this.parent.push(this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, this.endRule, this.nameScopesList, contentNameScopeStack);\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new StateStackImpl(this.parent, this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, endRule, this.nameScopesList, this.contentNameScopesList);\n }\n // Used to warn of endless loops\n hasSameRuleAs(other) {\n let el = this;\n while (el && el._enterPos === other._enterPos) {\n if (el.ruleId === other.ruleId) {\n return true;\n }\n el = el.parent;\n }\n return false;\n }\n toStateStackFrame() {\n return {\n ruleId: ruleIdToNumber(this.ruleId),\n beginRuleCapturedEOL: this.beginRuleCapturedEOL,\n endRule: this.endRule,\n nameScopesList: this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList ?? null) ?? [],\n contentNameScopesList: this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList) ?? [],\n };\n }\n static pushFrame(self, frame) {\n const namesScopeList = AttributedScopeStack.fromExtension(self?.nameScopesList ?? null, frame.nameScopesList);\n return new StateStackImpl(self, ruleIdFromNumber(frame.ruleId), frame.enterPos ?? -1, frame.anchorPos ?? -1, frame.beginRuleCapturedEOL, frame.endRule, namesScopeList, AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList));\n }\n}\nclass BalancedBracketSelectors {\n balancedBracketScopes;\n unbalancedBracketScopes;\n allowAny = false;\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.balancedBracketScopes = balancedBracketScopes.flatMap((selector) => {\n if (selector === '*') {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n });\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap((selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher));\n }\n get matchesAlways() {\n return this.allowAny && this.unbalancedBracketScopes.length === 0;\n }\n get matchesNever() {\n return this.balancedBracketScopes.length === 0 && !this.allowAny;\n }\n match(scopes) {\n for (const excluder of this.unbalancedBracketScopes) {\n if (excluder(scopes)) {\n return false;\n }\n }\n for (const includer of this.balancedBracketScopes) {\n if (includer(scopes)) {\n return true;\n }\n }\n return this.allowAny;\n }\n}\nclass LineTokens {\n balancedBracketSelectors;\n _emitBinaryTokens;\n /**\n * defined only if `false`.\n */\n _lineText;\n /**\n * used only if `_emitBinaryTokens` is false.\n */\n _tokens;\n /**\n * used only if `_emitBinaryTokens` is true.\n */\n _binaryTokens;\n _lastTokenEndIndex;\n _tokenTypeOverrides;\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n {\n this._lineText = null;\n }\n this._tokens = [];\n this._binaryTokens = [];\n this._lastTokenEndIndex = 0;\n }\n produce(stack, endIndex) {\n this.produceFromScopes(stack.contentNameScopesList, endIndex);\n }\n produceFromScopes(scopesList, endIndex) {\n if (this._lastTokenEndIndex >= endIndex) {\n return;\n }\n if (this._emitBinaryTokens) {\n let metadata = scopesList?.tokenAttributes ?? 0;\n let containsBalancedBrackets = false;\n if (this.balancedBracketSelectors?.matchesAlways) {\n containsBalancedBrackets = true;\n }\n if (this._tokenTypeOverrides.length > 0 || (this.balancedBracketSelectors && !this.balancedBracketSelectors.matchesAlways && !this.balancedBracketSelectors.matchesNever)) {\n // Only generate scope array when required to improve performance\n const scopes = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes)) {\n metadata = EncodedTokenAttributes.set(metadata, 0, toOptionalTokenType(tokenType.type), null, -1 /* FontStyle.NotSet */, 0, 0);\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenAttributes.set(metadata, 0, 8 /* OptionalStandardTokenType.NotSet */, containsBalancedBrackets, -1 /* FontStyle.NotSet */, 0, 0);\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n // no need to push a token with the same metadata\n this._lastTokenEndIndex = endIndex;\n return;\n }\n this._binaryTokens.push(this._lastTokenEndIndex);\n this._binaryTokens.push(metadata);\n this._lastTokenEndIndex = endIndex;\n return;\n }\n const scopes = scopesList?.getScopeNames() ?? [];\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex: endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes: scopes\n });\n this._lastTokenEndIndex = endIndex;\n }\n getResult(stack, lineLength) {\n if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {\n // pop produced token for newline\n this._tokens.pop();\n }\n if (this._tokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._tokens[this._tokens.length - 1].startIndex = 0;\n }\n return this._tokens;\n }\n getBinaryResult(stack, lineLength) {\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {\n // pop produced token for newline\n this._binaryTokens.pop();\n this._binaryTokens.pop();\n }\n if (this._binaryTokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._binaryTokens[this._binaryTokens.length - 2] = 0;\n }\n const result = new Uint32Array(this._binaryTokens.length);\n for (let i = 0, len = this._binaryTokens.length; i < len; i++) {\n result[i] = this._binaryTokens[i];\n }\n return result;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass SyncRegistry {\n _onigLibPromise;\n _grammars = new Map();\n _rawGrammars = new Map();\n _injectionGrammars = new Map();\n _theme;\n constructor(theme, _onigLibPromise) {\n this._onigLibPromise = _onigLibPromise;\n this._theme = theme;\n }\n dispose() {\n for (const grammar of this._grammars.values()) {\n grammar.dispose();\n }\n }\n setTheme(theme) {\n this._theme = theme;\n }\n getColorMap() {\n return this._theme.getColorMap();\n }\n /**\n * Add `grammar` to registry and return a list of referenced scope names\n */\n addGrammar(grammar, injectionScopeNames) {\n this._rawGrammars.set(grammar.scopeName, grammar);\n if (injectionScopeNames) {\n this._injectionGrammars.set(grammar.scopeName, injectionScopeNames);\n }\n }\n /**\n * Lookup a raw grammar.\n */\n lookup(scopeName) {\n return this._rawGrammars.get(scopeName);\n }\n /**\n * Returns the injections for the given grammar\n */\n injections(targetScope) {\n return this._injectionGrammars.get(targetScope);\n }\n /**\n * Get the default theme settings\n */\n getDefaults() {\n return this._theme.getDefaults();\n }\n /**\n * Match a scope in the theme.\n */\n themeMatch(scopePath) {\n return this._theme.match(scopePath);\n }\n /**\n * Lookup a grammar.\n */\n async grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n if (!this._grammars.has(scopeName)) {\n let rawGrammar = this._rawGrammars.get(scopeName);\n if (!rawGrammar) {\n return null;\n }\n this._grammars.set(scopeName, createGrammar(scopeName, rawGrammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, this, await this._onigLibPromise));\n }\n return this._grammars.get(scopeName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * The registry that will hold all grammars.\n */\nlet Registry$1 = class Registry {\n _options;\n _syncRegistry;\n _ensureGrammarCache;\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(Theme.createFromRawTheme(options.theme, options.colorMap), options.onigLib);\n this._ensureGrammarCache = new Map();\n }\n dispose() {\n this._syncRegistry.dispose();\n }\n /**\n * Change the theme. Once called, no previous `ruleStack` should be used anymore.\n */\n setTheme(theme, colorMap) {\n this._syncRegistry.setTheme(Theme.createFromRawTheme(theme, colorMap));\n }\n /**\n * Returns a lookup array for color ids.\n */\n getColorMap() {\n return this._syncRegistry.getColorMap();\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithEmbeddedLanguages(initialScopeName, initialLanguage, embeddedLanguages) {\n return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithConfiguration(initialScopeName, initialLanguage, configuration) {\n return this._loadGrammar(initialScopeName, initialLanguage, configuration.embeddedLanguages, configuration.tokenTypes, new BalancedBracketSelectors(configuration.balancedBracketSelectors || [], configuration.unbalancedBracketSelectors || []));\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n */\n loadGrammar(initialScopeName) {\n return this._loadGrammar(initialScopeName, 0, null, null, null);\n }\n async _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n await Promise.all(dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName)));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n async _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._ensureGrammarCache.set(scopeName, this._doLoadSingleGrammar(scopeName));\n }\n return this._ensureGrammarCache.get(scopeName);\n }\n async _doLoadSingleGrammar(scopeName) {\n const grammar = await this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : undefined;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n async addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return (await this._grammarForScopeName(rawGrammar.scopeName, initialLanguage, embeddedLanguages));\n }\n /**\n * Get the grammar for `scopeName`. The grammar must first be created via `loadGrammar` or `addGrammar`.\n */\n _grammarForScopeName(scopeName, initialLanguage = 0, embeddedLanguages = null, tokenTypes = null, balancedBracketSelectors = null) {\n return this._syncRegistry.grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n};\nconst INITIAL = StateStackImpl.NULL;\n\n/**\n * Helpers to manage the \"collapsed\" metadata of an entire StackElement stack.\n * The following assumptions have been made:\n * - languageId < 256 => needs 8 bits\n * - unique color count < 512 => needs 9 bits\n *\n * The binary format is:\n * - -------------------------------------------\n * 3322 2222 2222 1111 1111 1100 0000 0000\n * 1098 7654 3210 9876 5432 1098 7654 3210\n * - -------------------------------------------\n * xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx\n * bbbb bbbb bfff ffff ffFF FTTT LLLL LLLL\n * - -------------------------------------------\n * - L = LanguageId (8 bits)\n * - T = StandardTokenType (3 bits)\n * - F = FontStyle (3 bits)\n * - f = foreground color (9 bits)\n * - b = background color (9 bits)\n */\nconst MetadataConsts = {\n LANGUAGEID_MASK: 0b00000000000000000000000011111111,\n TOKEN_TYPE_MASK: 0b00000000000000000000001100000000,\n BALANCED_BRACKETS_MASK: 0b00000000000000000000010000000000,\n FONT_STYLE_MASK: 0b00000000000000000011100000000000,\n FOREGROUND_MASK: 0b00000000011111111100000000000000,\n BACKGROUND_MASK: 0b11111111100000000000000000000000,\n LANGUAGEID_OFFSET: 0,\n TOKEN_TYPE_OFFSET: 8,\n BALANCED_BRACKETS_OFFSET: 10,\n FONT_STYLE_OFFSET: 11,\n FOREGROUND_OFFSET: 15,\n BACKGROUND_OFFSET: 24,\n};\nclass StackElementMetadata {\n static toBinaryStr(metadata) {\n let r = metadata.toString(2);\n while (r.length < 32)\n r = `0${r}`;\n return r;\n }\n // public static printMetadata(metadata: number): void {\n // const languageId = StackElementMetadata.getLanguageId(metadata)\n // const tokenType = StackElementMetadata.getTokenType(metadata)\n // const fontStyle = StackElementMetadata.getFontStyle(metadata)\n // const foreground = StackElementMetadata.getForeground(metadata)\n // const background = StackElementMetadata.getBackground(metadata)\n // console.log({\n // languageId,\n // tokenType,\n // fontStyle,\n // foreground,\n // background,\n // })\n // }\n static getLanguageId(metadata) {\n return (metadata & MetadataConsts.LANGUAGEID_MASK) >>> MetadataConsts.LANGUAGEID_OFFSET;\n }\n static getTokenType(metadata) {\n return (metadata & MetadataConsts.TOKEN_TYPE_MASK) >>> MetadataConsts.TOKEN_TYPE_OFFSET;\n }\n static getFontStyle(metadata) {\n return (metadata & MetadataConsts.FONT_STYLE_MASK) >>> MetadataConsts.FONT_STYLE_OFFSET;\n }\n static getForeground(metadata) {\n return (metadata & MetadataConsts.FOREGROUND_MASK) >>> MetadataConsts.FOREGROUND_OFFSET;\n }\n static getBackground(metadata) {\n return (metadata & MetadataConsts.BACKGROUND_MASK) >>> MetadataConsts.BACKGROUND_OFFSET;\n }\n static containsBalancedBrackets(metadata) {\n return (metadata & MetadataConsts.BALANCED_BRACKETS_MASK) !== 0;\n }\n static set(metadata, languageId, tokenType, fontStyle, foreground, background) {\n let _languageId = StackElementMetadata.getLanguageId(metadata);\n let _tokenType = StackElementMetadata.getTokenType(metadata);\n let _fontStyle = StackElementMetadata.getFontStyle(metadata);\n let _foreground = StackElementMetadata.getForeground(metadata);\n let _background = StackElementMetadata.getBackground(metadata);\n const _containsBalancedBracketsBit = StackElementMetadata.containsBalancedBrackets(metadata)\n ? 1\n : 0;\n if (languageId !== 0)\n _languageId = languageId;\n if (tokenType !== 0 /* TemporaryStandardTokenType.Other */) {\n _tokenType\n = tokenType === 8 /* TemporaryStandardTokenType.MetaEmbedded */ ? 0 /* StandardTokenType.Other */ : tokenType;\n }\n if (fontStyle !== FontStyle.NotSet)\n _fontStyle = fontStyle;\n if (foreground !== 0)\n _foreground = foreground;\n if (background !== 0)\n _background = background;\n return (((_languageId << MetadataConsts.LANGUAGEID_OFFSET)\n | (_tokenType << MetadataConsts.TOKEN_TYPE_OFFSET)\n | (_fontStyle << MetadataConsts.FONT_STYLE_OFFSET)\n | (_containsBalancedBracketsBit << MetadataConsts.BALANCED_BRACKETS_OFFSET)\n | (_foreground << MetadataConsts.FOREGROUND_OFFSET)\n | (_background << MetadataConsts.BACKGROUND_OFFSET))\n >>> 0);\n }\n}\n\nexport { INITIAL, Registry$1 as Registry, StackElementMetadata, Theme };\n","import { INITIAL, StackElementMetadata, Registry as Registry$1, Theme } from './textmate.mjs';\nimport { FontStyle } from './types.mjs';\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\n/**\n * Split a string into lines, each line preserves the line ending.\n */\nfunction splitLines(code, preserveEnding = false) {\n const parts = code.split(/(\\r?\\n)/g);\n let index = 0;\n const lines = [];\n for (let i = 0; i < parts.length; i += 2) {\n const line = preserveEnding\n ? parts[i] + (parts[i + 1] || '')\n : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\n/**\n * Check if the language is plaintext that is ignored by Shiki.\n *\n * Hard-coded plain text languages: `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isPlainLang(lang) {\n return !lang || ['plaintext', 'txt', 'text', 'plain'].includes(lang);\n}\n/**\n * Check if the language is specially handled or bypassed by Shiki.\n *\n * Hard-coded languages: `ansi` and plaintexts like `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isSpecialLang(lang) {\n return lang === 'ansi' || isPlainLang(lang);\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isNoneTheme(theme) {\n return theme === 'none';\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\n/**\n * Utility to append class to a hast node\n *\n * If the `property.class` is a string, it will be splitted by space and converted to an array.\n */\nfunction addClassToHast(node, className) {\n if (!className)\n return node;\n node.properties ||= {};\n node.properties.class ||= [];\n if (typeof node.properties.class === 'string')\n node.properties.class = node.properties.class.split(/\\s+/g);\n if (!Array.isArray(node.properties.class))\n node.properties.class = [];\n const targets = Array.isArray(className) ? className : className.split(/\\s+/g);\n for (const c of targets) {\n if (c && !node.properties.class.includes(c))\n node.properties.class.push(c);\n }\n return node;\n}\n/**\n * Split a token into multiple tokens by given offsets.\n *\n * The offsets are relative to the token, and should be sorted.\n */\nfunction splitToken(token, offsets) {\n let lastOffset = 0;\n const tokens = [];\n for (const offset of offsets) {\n if (offset > lastOffset) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset, offset),\n offset: token.offset + lastOffset,\n });\n }\n lastOffset = offset;\n }\n if (lastOffset < token.content.length) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset),\n offset: token.offset + lastOffset,\n });\n }\n return tokens;\n}\n/**\n * Split 2D tokens array by given breakpoints.\n */\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array.from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints))\n .sort((a, b) => a - b);\n if (!sorted.length)\n return tokens;\n return tokens.map((line) => {\n return line.flatMap((token) => {\n const breakpointsInToken = sorted\n .filter(i => token.offset < i && i < token.offset + token.content.length)\n .map(i => i - token.offset)\n .sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\nfunction resolveColorReplacements(theme, options) {\n const replacements = typeof theme === 'string' ? {} : { ...theme.colorReplacements };\n const themeName = typeof theme === 'string' ? theme : theme.name;\n for (const [key, value] of Object.entries(options?.colorReplacements || {})) {\n if (typeof value === 'string')\n replacements[key] = value;\n else if (key === themeName)\n Object.assign(replacements, value);\n }\n return replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n if (!color)\n return color;\n return replacements?.[color?.toLowerCase()] || color;\n}\nfunction getTokenStyleObject(token) {\n const styles = {};\n if (token.color)\n styles.color = token.color;\n if (token.bgColor)\n styles['background-color'] = token.bgColor;\n if (token.fontStyle) {\n if (token.fontStyle & FontStyle.Italic)\n styles['font-style'] = 'italic';\n if (token.fontStyle & FontStyle.Bold)\n styles['font-weight'] = 'bold';\n if (token.fontStyle & FontStyle.Underline)\n styles['text-decoration'] = 'underline';\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(';');\n}\n/**\n * Creates a converter between index and position in a code block.\n *\n * Overflow/underflow are unchecked.\n */\nfunction createPositionConverter(code) {\n const lines = splitLines(code, true).map(([line]) => line);\n function indexToPos(index) {\n if (index === code.length) {\n return {\n line: lines.length - 1,\n character: lines[lines.length - 1].length,\n };\n }\n let character = index;\n let line = 0;\n for (const lineText of lines) {\n if (character < lineText.length)\n break;\n character -= lineText.length;\n line++;\n }\n return { line, character };\n }\n function posToIndex(line, character) {\n let index = 0;\n for (let i = 0; i < line; i++)\n index += lines[i].length;\n index += character;\n return index;\n }\n return {\n lines,\n indexToPos,\n posToIndex,\n };\n}\n\n// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B[\", position);\n if (nextEscape !== -1) {\n const nextClose = value.indexOf(\"m\", nextEscape);\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence, index) {\n let offset = 1;\n const colorMode = sequence[index + offset++];\n let color;\n if (colorMode === \"2\") {\n const rgb = [\n sequence[index + offset++],\n sequence[index + offset++],\n sequence[index + offset]\n ].map((x) => Number.parseInt(x));\n if (rgb.length === 3 && !rgb.some((x) => Number.isNaN(x))) {\n color = {\n type: \"rgb\",\n rgb\n };\n }\n } else if (colorMode === \"5\") {\n const colorIndex = Number.parseInt(sequence[index + offset]);\n if (!Number.isNaN(colorIndex)) {\n color = { type: \"table\", index: Number(colorIndex) };\n }\n }\n return [offset, color];\n}\nfunction parseSequence(sequence) {\n const commands = [];\n for (let i = 0; i < sequence.length; i++) {\n const code = sequence[i];\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\n\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const colorPalette = createColorPalette(Object.fromEntries(namedColors.map(name => [\n name,\n theme.colors?.[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`],\n ])));\n const parser = createAnsiSequenceParser();\n return lines.map(line => parser.parse(line[0]).map((token) => {\n let color;\n let bgColor;\n if (token.decorations.has('reverse')) {\n color = token.background ? colorPalette.value(token.background) : theme.bg;\n bgColor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n }\n else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : undefined;\n }\n color = applyColorReplacements(color, colorReplacements);\n bgColor = applyColorReplacements(bgColor, colorReplacements);\n if (token.decorations.has('dim'))\n color = dimColor(color);\n let fontStyle = FontStyle.None;\n if (token.decorations.has('bold'))\n fontStyle |= FontStyle.Bold;\n if (token.decorations.has('italic'))\n fontStyle |= FontStyle.Italic;\n if (token.decorations.has('underline'))\n fontStyle |= FontStyle.Underline;\n return {\n content: token.value,\n offset: line[1], // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle,\n };\n }));\n}\n/**\n * Adds 50% alpha to a hex color string or the \"-dim\" postfix to a CSS variable\n */\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);\n if (hexMatch) {\n if (hexMatch[3]) {\n // convert from #rrggbbaa to #rrggbb(aa/2)\n const alpha = Math.round(Number.parseInt(hexMatch[3], 16) / 2)\n .toString(16)\n .padStart(2, '0');\n return `#${hexMatch[1]}${hexMatch[2]}${alpha}`;\n }\n else if (hexMatch[2]) {\n // convert from #rrggbb to #rrggbb80\n return `#${hexMatch[1]}${hexMatch[2]}80`;\n }\n else {\n // convert from #rgb to #rrggbb80\n return `#${Array.from(hexMatch[1])\n .map(x => `${x}${x}`)\n .join('')}80`;\n }\n }\n const cssVarMatch = color.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);\n if (cssVarMatch)\n return `var(${cssVarMatch[1]}-dim)`;\n return color;\n}\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ShikiError';\n }\n}\n\n/**\n * GrammarState is a special reference object that holds the state of a grammar.\n *\n * It's used to highlight code snippets that are part of the target language.\n */\nclass GrammarState {\n _stack;\n lang;\n theme;\n /**\n * Static method to create a initial grammar state.\n */\n static initial(lang, theme) {\n return new GrammarState(INITIAL, lang, theme);\n }\n constructor(_stack, lang, theme) {\n this._stack = _stack;\n this.lang = lang;\n this.theme = theme;\n }\n get scopes() {\n return getScopes(this._stack);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n scopes: this.scopes,\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = new Set();\n function pushScope(stack) {\n if (visited.has(stack))\n return;\n visited.add(stack);\n const name = stack?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack.parent)\n pushScope(stack.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state) {\n if (!(state instanceof GrammarState))\n throw new ShikiError('Invalid grammar state');\n // @ts-expect-error _stack is private\n return state._stack;\n}\n\n/**\n * Code to tokens, with a simple theme.\n */\nfunction codeToTokensBase(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n return splitLines(code).map(line => [{ content: line[0], offset: line[1] }]);\n const { theme, colorMap } = internal.setTheme(themeName);\n if (lang === 'ansi')\n return tokenizeAnsiWithTheme(theme, code, options);\n const _grammar = internal.getLanguage(lang);\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (options.grammarState.theme !== themeName) {\n throw new ShikiError(`Grammar state theme \"${options.grammarState.theme}\" does not match highlight theme \"${themeName}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError('Plain language does not have grammar state');\n if (lang === 'ansi')\n throw new ShikiError('ANSI language does not have grammar state');\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(_tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack, _grammar.name, theme.name);\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n return _tokenizeWithTheme(code, grammar, theme, colorMap, options).tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const { tokenizeMaxLineLength = 0, tokenizeTimeLimit = 500, } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState\n ? getGrammarStack(options.grammarState)\n : options.grammarContextCode != null\n ? _tokenizeWithTheme(options.grammarContextCode, grammar, theme, colorMap, {\n ...options,\n grammarState: undefined,\n grammarContextCode: undefined,\n }).stateStack\n : INITIAL;\n let actual = [];\n const final = [];\n const themeSettingsSelectors = [];\n if (options.includeExplanation) {\n for (const setting of theme.settings) {\n let selectors;\n switch (typeof setting.scope) {\n case 'string':\n selectors = setting.scope.split(/,/).map(scope => scope.trim());\n break;\n case 'object':\n selectors = setting.scope;\n break;\n default:\n continue;\n }\n themeSettingsSelectors.push({\n settings: setting,\n selectors: selectors.map(selector => selector.split(/ /)),\n });\n }\n }\n for (let i = 0, len = lines.length; i < len; i++) {\n const [line, lineOffset] = lines[i];\n if (line === '') {\n actual = [];\n final.push([]);\n continue;\n }\n // Do not attempt to tokenize if the line length is longer than the `tokenizationMaxLineLength`\n if (tokenizeMaxLineLength > 0 && line.length >= tokenizeMaxLineLength) {\n actual = [];\n final.push([{\n content: line,\n offset: lineOffset,\n color: '',\n fontStyle: 0,\n }]);\n continue;\n }\n let resultWithScopes;\n let tokensWithScopes;\n let tokensWithScopesIndex;\n if (options.includeExplanation) {\n resultWithScopes = grammar.tokenizeLine(line, stateStack);\n tokensWithScopes = resultWithScopes.tokens;\n tokensWithScopesIndex = 0;\n }\n const result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n const tokensLength = result.tokens.length / 2;\n for (let j = 0; j < tokensLength; j++) {\n const startIndex = result.tokens[2 * j];\n const nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n if (startIndex === nextStartIndex)\n continue;\n const metadata = result.tokens[2 * j + 1];\n const color = applyColorReplacements(colorMap[StackElementMetadata.getForeground(metadata)], colorReplacements);\n const fontStyle = StackElementMetadata.getFontStyle(metadata);\n const token = {\n content: line.substring(startIndex, nextStartIndex),\n offset: lineOffset + startIndex,\n color,\n fontStyle,\n };\n if (options.includeExplanation) {\n token.explanation = [];\n let offset = 0;\n while (startIndex + offset < nextStartIndex) {\n const tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n const tokenWithScopesText = line.substring(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: explainThemeScopes(themeSettingsSelectors, tokenWithScopes.scopes),\n });\n tokensWithScopesIndex += 1;\n }\n }\n actual.push(token);\n }\n final.push(actual);\n actual = [];\n stateStack = result.ruleStack;\n }\n return {\n tokens: final,\n stateStack,\n };\n}\nfunction explainThemeScopes(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const parentScopes = scopes.slice(0, i);\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, parentScopes),\n };\n }\n return result;\n}\nfunction matchesOne(selector, scope) {\n return selector === scope\n || (scope.substring(0, selector.length) === selector && scope[selector.length] === '.');\n}\nfunction matches(selectors, scope, parentScopes) {\n if (!matchesOne(selectors[selectors.length - 1], scope))\n return false;\n let selectorParentIndex = selectors.length - 2;\n let parentIndex = parentScopes.length - 1;\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex]))\n selectorParentIndex -= 1;\n parentIndex -= 1;\n }\n if (selectorParentIndex === -1)\n return true;\n return false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n const result = [];\n for (const { selectors, settings } of themeSettingsSelectors) {\n for (const selectorPieces of selectors) {\n if (matches(selectorPieces, scope, parentScopes)) {\n result.push(settings);\n break; // continue to the next theme settings\n }\n }\n }\n return result;\n}\n\n/**\n * Get tokens with multiple themes\n */\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }));\n const tokens = syncThemesTokenization(...themes.map(t => codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme,\n })));\n const mergedTokens = tokens[0]\n .map((line, lineIdx) => line\n .map((_token, tokenIdx) => {\n const mergedToken = {\n content: _token.content,\n variants: {},\n offset: _token.offset,\n };\n if ('includeExplanation' in options && options.includeExplanation) {\n mergedToken.explanation = _token.explanation;\n }\n tokens.forEach((t, themeIdx) => {\n const { content: _, explanation: __, offset: ___, ...styles } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n }));\n return mergedTokens;\n}\n/**\n * Break tokens from multiple themes into same tokenization.\n *\n * For example, given two themes that tokenize `console.log(\"hello\")` as:\n *\n * - `console . log (\" hello \")` (6 tokens)\n * - `console .log ( \"hello\" )` (5 tokens)\n *\n * This function will return:\n *\n * - `console . log ( \" hello \" )` (8 tokens)\n * - `console . log ( \" hello \" )` (8 tokens)\n */\nfunction syncThemesTokenization(...themes) {\n const outThemes = themes.map(() => []);\n const count = themes.length;\n for (let i = 0; i < themes[0].length; i++) {\n const lines = themes.map(t => t[i]);\n const outLines = outThemes.map(() => []);\n outThemes.forEach((t, i) => t.push(outLines[i]));\n const indexes = lines.map(() => 0);\n const current = lines.map(l => l[0]);\n while (current.every(t => t)) {\n const minLength = Math.min(...current.map(t => t.content.length));\n for (let n = 0; n < count; n++) {\n const token = current[n];\n if (token.content.length === minLength) {\n outLines[n].push(token);\n indexes[n] += 1;\n current[n] = lines[n][indexes[n]];\n }\n else {\n outLines[n].push({\n ...token,\n content: token.content.slice(0, minLength),\n });\n current[n] = {\n ...token,\n content: token.content.slice(minLength),\n offset: token.offset + minLength,\n };\n }\n }\n }\n }\n return outThemes;\n}\n\n/**\n * High-level code-to-tokens API.\n *\n * It will use `codeToTokensWithThemes` or `codeToTokensBase` based on the options.\n */\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n if ('themes' in options) {\n const { defaultColor = 'light', cssVariablePrefix = '--shiki-', } = options;\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }))\n .sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError('`themes` option must not be empty');\n const themeTokens = codeToTokensWithThemes(internal, code, options);\n if (defaultColor && !themes.find(t => t.color === defaultColor))\n throw new ShikiError(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n const themeRegs = themes.map(t => internal.getTheme(t.theme));\n const themesOrder = themes.map(t => t.color);\n tokens = themeTokens\n .map(line => line.map(token => mergeToken(token, themesOrder, cssVariablePrefix, defaultColor)));\n const themeColorReplacements = themes.map(t => resolveColorReplacements(t.theme, options));\n fg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}:`) + (applyColorReplacements(themeRegs[idx].fg, themeColorReplacements[idx]) || 'inherit')).join(';');\n bg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}-bg:`) + (applyColorReplacements(themeRegs[idx].bg, themeColorReplacements[idx]) || 'inherit')).join(';');\n themeName = `shiki-themes ${themeRegs.map(t => t.name).join(' ')}`;\n rootStyle = defaultColor ? undefined : [fg, bg].join(';');\n }\n else if ('theme' in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(internal, code, options);\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n }\n else {\n throw new ShikiError('Invalid options, either `theme` or `themes` must be provided');\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n };\n}\nfunction mergeToken(merged, variantsOrder, cssVariablePrefix, defaultColor) {\n const token = {\n content: merged.content,\n explanation: merged.explanation,\n offset: merged.offset,\n };\n const styles = variantsOrder.map(t => getTokenStyleObject(merged.variants[t]));\n // Get all style keys, for themes that missing some style, we put `inherit` to override as needed\n const styleKeys = new Set(styles.flatMap(t => Object.keys(t)));\n const mergedStyles = styles.reduce((acc, cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || 'inherit';\n if (idx === 0 && defaultColor) {\n acc[key] = value;\n }\n else {\n const keyName = key === 'color' ? '' : key === 'background-color' ? '-bg' : `-${key}`;\n const varKey = cssVariablePrefix + variantsOrder[idx] + (key === 'color' ? '' : keyName);\n if (acc[key])\n acc[key] += `;${varKey}:${value}`;\n else\n acc[key] = `${varKey}:${value}`;\n }\n }\n return acc;\n }, {});\n token.htmlStyle = defaultColor\n ? stringifyTokenStyle(mergedStyles)\n : Object.values(mergedStyles).join(';');\n return token;\n}\n\n/**\n * A built-in transformer to add decorations to the highlighted code.\n */\nfunction transformerDecorations() {\n const map = new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n const converter = createPositionConverter(shiki.source);\n function normalizePosition(p) {\n if (typeof p === 'number') {\n if (p < 0 || p > shiki.source.length)\n throw new ShikiError(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n return {\n ...converter.indexToPos(p),\n offset: p,\n };\n }\n else {\n const line = converter.lines[p.line];\n if (line === undefined)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n if (p.character < 0 || p.character > line.length)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n return {\n ...p,\n offset: converter.posToIndex(p.line, p.character),\n };\n }\n }\n const decorations = (shiki.options.decorations || [])\n .map((d) => ({\n ...d,\n start: normalizePosition(d.start),\n end: normalizePosition(d.end),\n }));\n verifyIntersections(decorations);\n map.set(shiki.meta, {\n decorations,\n converter,\n source: shiki.source,\n });\n }\n return map.get(shiki.meta);\n }\n function verifyIntersections(items) {\n for (let i = 0; i < items.length; i++) {\n const foo = items[i];\n if (foo.start.offset > foo.end.offset)\n throw new ShikiError(`Invalid decoration range: ${JSON.stringify(foo.start)} - ${JSON.stringify(foo.end)}`);\n for (let j = i + 1; j < items.length; j++) {\n const bar = items[j];\n const isFooHasBarStart = foo.start.offset < bar.start.offset && bar.start.offset < foo.end.offset;\n const isFooHasBarEnd = foo.start.offset < bar.end.offset && bar.end.offset < foo.end.offset;\n const isBarHasFooStart = bar.start.offset < foo.start.offset && foo.start.offset < bar.end.offset;\n const isBarHasFooEnd = bar.start.offset < foo.end.offset && foo.end.offset < bar.end.offset;\n if (isFooHasBarStart || isFooHasBarEnd || isBarHasFooStart || isBarHasFooEnd) {\n if (isFooHasBarEnd && isFooHasBarEnd)\n continue; // nested\n if (isBarHasFooStart && isBarHasFooEnd)\n continue; // nested\n throw new ShikiError(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n }\n return {\n name: 'shiki:decorations',\n tokens(tokens) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const breakpoints = ctx.decorations.flatMap(d => [d.start.offset, d.end.offset]);\n const splitted = splitTokens(tokens, breakpoints);\n return splitted;\n },\n code(codeEl) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const lines = Array.from(codeEl.children).filter(i => i.type === 'element' && i.tagName === 'span');\n if (lines.length !== ctx.converter.lines.length)\n throw new ShikiError(`Number of lines in code element (${lines.length}) does not match the number of lines in the source (${ctx.converter.lines.length}). Failed to apply decorations.`);\n function applyLineSection(line, start, end, decoration) {\n const lineEl = lines[line];\n let text = '';\n let startIndex = -1;\n let endIndex = -1;\n function stringify(el) {\n if (el.type === 'text')\n return el.value;\n if (el.type === 'element')\n return el.children.map(stringify).join('');\n return '';\n }\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n // Full line decoration\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, 'line');\n }\n // Single token decoration\n else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === 'element') {\n applyDecoration(children[0], decoration, 'token');\n }\n // Create a wrapper for the decoration\n else {\n const wrapper = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children,\n };\n applyDecoration(wrapper, decoration, 'wrapper');\n lineEl.children.splice(startIndex, children.length, wrapper);\n }\n }\n function applyLine(line, decoration) {\n lines[line] = applyDecoration(lines[line], decoration, 'line');\n }\n function applyDecoration(el, decoration, type) {\n const properties = decoration.properties || {};\n const transform = decoration.transform || (i => i);\n el.tagName = decoration.tagName || 'span';\n el.properties = {\n ...el.properties,\n ...properties,\n class: el.properties.class,\n };\n if (decoration.properties?.class)\n addClassToHast(el, decoration.properties.class);\n el = transform(el, type) || el;\n return el;\n }\n const lineApplies = [];\n // Apply decorations in reverse order so the nested ones get applied first.\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.offset);\n for (const decoration of sorted) {\n const { start, end } = decoration;\n if (start.line === end.line) {\n applyLineSection(start.line, start.character, end.character, decoration);\n }\n else if (start.line < end.line) {\n applyLineSection(start.line, start.character, Number.POSITIVE_INFINITY, decoration);\n for (let i = start.line + 1; i < end.line; i++)\n lineApplies.unshift(() => applyLine(i, decoration));\n applyLineSection(end.line, 0, end.character, decoration);\n }\n }\n lineApplies.forEach(i => i());\n },\n };\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations(),\n];\nfunction getTransformers(options) {\n return [\n ...options.transformers || [],\n ...builtInTransformers,\n ];\n}\n\nfunction codeToHast(internal, code, options, transformerContext = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options),\n}) {\n let input = code;\n for (const transformer of getTransformers(options))\n input = transformer.preprocess?.call(transformerContext, input, options) || input;\n let { tokens, fg, bg, themeName, rootStyle, } = codeToTokens(internal, input, options);\n const { mergeWhitespaces = true, } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === 'never')\n tokens = splitWhitespaceTokens(tokens);\n const contextSource = {\n ...transformerContext,\n get source() {\n return input;\n },\n };\n for (const transformer of getTransformers(options))\n tokens = transformer.tokens?.call(contextSource, tokens) || tokens;\n return tokensToHast(tokens, {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle,\n }, contextSource);\n}\nfunction tokensToHast(tokens, options, transformerContext) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: 'root',\n children: [],\n };\n const { structure = 'classic', } = options;\n let preNode = {\n type: 'element',\n tagName: 'pre',\n properties: {\n class: `shiki ${options.themeName || ''}`,\n style: options.rootStyle || `background-color:${options.bg};color:${options.fg}`,\n tabindex: '0',\n ...Object.fromEntries(Array.from(Object.entries(options.meta || {}))\n .filter(([key]) => !key.startsWith('_'))),\n },\n children: [],\n };\n let codeNode = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: lines,\n };\n const lineNodes = [];\n const context = {\n ...transformerContext,\n structure,\n addClassToHast,\n get source() {\n return transformerContext.source;\n },\n get tokens() {\n return tokens;\n },\n get options() {\n return options;\n },\n get root() {\n return root;\n },\n get pre() {\n return preNode;\n },\n get code() {\n return codeNode;\n },\n get lines() {\n return lineNodes;\n },\n };\n tokens.forEach((line, idx) => {\n if (idx) {\n if (structure === 'inline')\n root.children.push({ type: 'element', tagName: 'br', properties: {}, children: [] });\n else if (structure === 'classic')\n lines.push({ type: 'text', value: '\\n' });\n }\n let lineNode = {\n type: 'element',\n tagName: 'span',\n properties: { class: 'line' },\n children: [],\n };\n let col = 0;\n for (const token of line) {\n let tokenNode = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children: [{ type: 'text', value: token.content }],\n };\n const style = token.htmlStyle || stringifyTokenStyle(getTokenStyleObject(token));\n if (style)\n tokenNode.properties.style = style;\n for (const transformer of transformers)\n tokenNode = transformer?.span?.call(context, tokenNode, idx + 1, col, lineNode) || tokenNode;\n if (structure === 'inline')\n root.children.push(tokenNode);\n else if (structure === 'classic')\n lineNode.children.push(tokenNode);\n col += token.content.length;\n }\n if (structure === 'classic') {\n for (const transformer of transformers)\n lineNode = transformer?.line?.call(context, lineNode, idx + 1) || lineNode;\n lineNodes.push(lineNode);\n lines.push(lineNode);\n }\n });\n if (structure === 'classic') {\n for (const transformer of transformers)\n codeNode = transformer?.code?.call(context, codeNode) || codeNode;\n preNode.children.push(codeNode);\n for (const transformer of transformers)\n preNode = transformer?.pre?.call(context, preNode) || preNode;\n root.children.push(preNode);\n }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = '';\n let firstOffset = 0;\n line.forEach((token, idx) => {\n const isUnderline = token.fontStyle && token.fontStyle & FontStyle.Underline;\n const couldMerge = !isUnderline;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (!firstOffset)\n firstOffset = token.offset;\n carryOnContent += token.content;\n }\n else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content,\n });\n }\n else {\n newLine.push({\n content: carryOnContent,\n offset: firstOffset,\n }, token);\n }\n firstOffset = 0;\n carryOnContent = '';\n }\n else {\n newLine.push(token);\n }\n }\n });\n return newLine;\n });\n}\nfunction splitWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n return line.flatMap((token) => {\n if (token.content.match(/^\\s+$/))\n return token;\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n const match = token.content.match(/^(\\s*)(.*?)(\\s*)$/);\n if (!match)\n return token;\n const [, leading, content, trailing] = match;\n if (!leading && !trailing)\n return token;\n const expanded = [{\n ...token,\n offset: token.offset + leading.length,\n content,\n }];\n if (leading) {\n expanded.unshift({\n content: leading,\n offset: token.offset,\n });\n }\n if (trailing) {\n expanded.push({\n content: trailing,\n offset: token.offset + leading.length + content.length,\n });\n }\n return expanded;\n });\n });\n}\n\n/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nconst htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n];\n\n/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nclass Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property;\n this.normal = normal;\n if (space) {\n this.space = space;\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {};\n/** @type {Normal} */\nSchema.prototype.normal = {};\n/** @type {string|null} */\nSchema.prototype.space = null;\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nfunction merge(definitions, space) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n let index = -1;\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property);\n Object.assign(normal, definitions[index].normal);\n }\n\n return new Schema(property, normal, space)\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction normalize(value) {\n return value.toLowerCase()\n}\n\nclass Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property;\n /** @type {string} */\n this.attribute = attribute;\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null;\nInfo.prototype.boolean = false;\nInfo.prototype.booleanish = false;\nInfo.prototype.overloadedBoolean = false;\nInfo.prototype.number = false;\nInfo.prototype.commaSeparated = false;\nInfo.prototype.spaceSeparated = false;\nInfo.prototype.commaOrSpaceSeparated = false;\nInfo.prototype.mustUseProperty = false;\nInfo.prototype.defined = false;\n\nlet powers = 0;\n\nconst boolean = increment();\nconst booleanish = increment();\nconst overloadedBoolean = increment();\nconst number = increment();\nconst spaceSeparated = increment();\nconst commaSeparated = increment();\nconst commaOrSpaceSeparated = increment();\n\nfunction increment() {\n return 2 ** ++powers\n}\n\nvar types = /*#__PURE__*/Object.freeze({\n __proto__: null,\n boolean: boolean,\n booleanish: booleanish,\n commaOrSpaceSeparated: commaOrSpaceSeparated,\n commaSeparated: commaSeparated,\n number: number,\n overloadedBoolean: overloadedBoolean,\n spaceSeparated: spaceSeparated\n});\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types);\n\nclass DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1;\n\n super(property, attribute);\n\n mark(this, 'space', space);\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index];\n mark(this, checks[index], (mask & types[check]) === types[check]);\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true;\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value;\n }\n}\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\n\nconst own$3 = {}.hasOwnProperty;\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nfunction create(definition) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n /** @type {string} */\n let prop;\n\n for (prop in definition.properties) {\n if (own$3.call(definition.properties, prop)) {\n const value = definition.properties[prop];\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n );\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true;\n }\n\n property[prop] = info;\n\n normal[normalize(prop)] = prop;\n normal[normalize(info.attribute)] = prop;\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n\nconst xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n});\n\nconst xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n});\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n\nconst xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n});\n\nconst aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n});\n\nconst html$3 = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n});\n\nconst svg$1 = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n});\n\n/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\n\nconst valid = /^data[-\\w.:]+$/i;\nconst dash = /-[a-z]/g;\nconst cap = /[A-Z]/g;\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nfunction find(schema, value) {\n const normal = normalize(value);\n let prop = value;\n let Type = Info;\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase);\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1);\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4);\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab);\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes;\n }\n\n value = 'data' + dashes;\n }\n }\n\n Type = DefinedInfo;\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n\n/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nconst html$2 = merge([xml, xlink, xmlns, aria, html$3], 'html');\nconst svg = merge([xml, xlink, xmlns, aria, svg$1], 'svg');\n\n/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own$2 = {}.hasOwnProperty;\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n * Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nfunction zwitch(key, options) {\n const settings = options || {};\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid;\n const handlers = one.handlers;\n\n if (value && own$2.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key]);\n // @ts-expect-error Indexable.\n fn = own$2.call(handlers, id) ? handlers[id] : one.unknown;\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {};\n one.invalid = settings.invalid;\n one.unknown = settings.unknown;\n\n // @ts-expect-error: matches!\n return one\n}\n\n/**\n * @typedef CoreOptions\n * @property {Array<string>} [subset=[]]\n * Whether to only escape the given subset of characters.\n * @property {boolean} [escapeOnly=false]\n * Whether to only escape possibly dangerous characters.\n * Those characters are `\"`, `&`, `'`, `<`, `>`, and `` ` ``.\n *\n * @typedef FormatOptions\n * @property {(code: number, next: number, options: CoreWithFormatOptions) => string} format\n * Format strategy.\n *\n * @typedef {CoreOptions & FormatOptions & import('./util/format-smart.js').FormatSmartOptions} CoreWithFormatOptions\n */\n\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nfunction core(value, options) {\n value = value.replace(\n options.subset ? charactersToExpression(options.subset) : /[\"&'<>`]/g,\n basic\n );\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g,\n basic\n )\n )\n\n /**\n * @param {string} pair\n * @param {number} index\n * @param {string} all\n */\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n /**\n * @param {string} character\n * @param {number} index\n * @param {string} all\n */\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\n/**\n * @param {Array<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpression(subset) {\n /** @type {Array<string>} */\n const groups = [];\n let index = -1;\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'));\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n\n/**\n * Configurable ways to encode characters as hexadecimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nfunction toHexadecimal(code, next, omit) {\n const value = '&#x' + code.toString(16).toUpperCase();\n return omit && next && !/[\\dA-Fa-f]/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * Configurable ways to encode characters as decimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nfunction toDecimal(code, next, omit) {\n const value = '&#' + String(code);\n return omit && next && !/\\d/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nconst characterEntitiesLegacy = [\n 'AElig',\n 'AMP',\n 'Aacute',\n 'Acirc',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Auml',\n 'COPY',\n 'Ccedil',\n 'ETH',\n 'Eacute',\n 'Ecirc',\n 'Egrave',\n 'Euml',\n 'GT',\n 'Iacute',\n 'Icirc',\n 'Igrave',\n 'Iuml',\n 'LT',\n 'Ntilde',\n 'Oacute',\n 'Ocirc',\n 'Ograve',\n 'Oslash',\n 'Otilde',\n 'Ouml',\n 'QUOT',\n 'REG',\n 'THORN',\n 'Uacute',\n 'Ucirc',\n 'Ugrave',\n 'Uuml',\n 'Yacute',\n 'aacute',\n 'acirc',\n 'acute',\n 'aelig',\n 'agrave',\n 'amp',\n 'aring',\n 'atilde',\n 'auml',\n 'brvbar',\n 'ccedil',\n 'cedil',\n 'cent',\n 'copy',\n 'curren',\n 'deg',\n 'divide',\n 'eacute',\n 'ecirc',\n 'egrave',\n 'eth',\n 'euml',\n 'frac12',\n 'frac14',\n 'frac34',\n 'gt',\n 'iacute',\n 'icirc',\n 'iexcl',\n 'igrave',\n 'iquest',\n 'iuml',\n 'laquo',\n 'lt',\n 'macr',\n 'micro',\n 'middot',\n 'nbsp',\n 'not',\n 'ntilde',\n 'oacute',\n 'ocirc',\n 'ograve',\n 'ordf',\n 'ordm',\n 'oslash',\n 'otilde',\n 'ouml',\n 'para',\n 'plusmn',\n 'pound',\n 'quot',\n 'raquo',\n 'reg',\n 'sect',\n 'shy',\n 'sup1',\n 'sup2',\n 'sup3',\n 'szlig',\n 'thorn',\n 'times',\n 'uacute',\n 'ucirc',\n 'ugrave',\n 'uml',\n 'uuml',\n 'yacute',\n 'yen',\n 'yuml'\n];\n\n/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nconst characterEntitiesHtml4 = {\n nbsp: ' ',\n iexcl: '¡',\n cent: '¢',\n pound: '£',\n curren: '¤',\n yen: '¥',\n brvbar: '¦',\n sect: '§',\n uml: '¨',\n copy: '©',\n ordf: 'ª',\n laquo: '«',\n not: '¬',\n shy: '',\n reg: '®',\n macr: '¯',\n deg: '°',\n plusmn: '±',\n sup2: '²',\n sup3: '³',\n acute: '´',\n micro: 'µ',\n para: '¶',\n middot: '·',\n cedil: '¸',\n sup1: '¹',\n ordm: 'º',\n raquo: '»',\n frac14: '¼',\n frac12: '½',\n frac34: '¾',\n iquest: '¿',\n Agrave: 'À',\n Aacute: 'Á',\n Acirc: 'Â',\n Atilde: 'Ã',\n Auml: 'Ä',\n Aring: 'Å',\n AElig: 'Æ',\n Ccedil: 'Ç',\n Egrave: 'È',\n Eacute: 'É',\n Ecirc: 'Ê',\n Euml: 'Ë',\n Igrave: 'Ì',\n Iacute: 'Í',\n Icirc: 'Î',\n Iuml: 'Ï',\n ETH: 'Ð',\n Ntilde: 'Ñ',\n Ograve: 'Ò',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Otilde: 'Õ',\n Ouml: 'Ö',\n times: '×',\n Oslash: 'Ø',\n Ugrave: 'Ù',\n Uacute: 'Ú',\n Ucirc: 'Û',\n Uuml: 'Ü',\n Yacute: 'Ý',\n THORN: 'Þ',\n szlig: 'ß',\n agrave: 'à',\n aacute: 'á',\n acirc: 'â',\n atilde: 'ã',\n auml: 'ä',\n aring: 'å',\n aelig: 'æ',\n ccedil: 'ç',\n egrave: 'è',\n eacute: 'é',\n ecirc: 'ê',\n euml: 'ë',\n igrave: 'ì',\n iacute: 'í',\n icirc: 'î',\n iuml: 'ï',\n eth: 'ð',\n ntilde: 'ñ',\n ograve: 'ò',\n oacute: 'ó',\n ocirc: 'ô',\n otilde: 'õ',\n ouml: 'ö',\n divide: '÷',\n oslash: 'ø',\n ugrave: 'ù',\n uacute: 'ú',\n ucirc: 'û',\n uuml: 'ü',\n yacute: 'ý',\n thorn: 'þ',\n yuml: 'ÿ',\n fnof: 'ƒ',\n Alpha: 'Α',\n Beta: 'Β',\n Gamma: 'Γ',\n Delta: 'Δ',\n Epsilon: 'Ε',\n Zeta: 'Ζ',\n Eta: 'Η',\n Theta: 'Θ',\n Iota: 'Ι',\n Kappa: 'Κ',\n Lambda: 'Λ',\n Mu: 'Μ',\n Nu: 'Ν',\n Xi: 'Ξ',\n Omicron: 'Ο',\n Pi: 'Π',\n Rho: 'Ρ',\n Sigma: 'Σ',\n Tau: 'Τ',\n Upsilon: 'Υ',\n Phi: 'Φ',\n Chi: 'Χ',\n Psi: 'Ψ',\n Omega: 'Ω',\n alpha: 'α',\n beta: 'β',\n gamma: 'γ',\n delta: 'δ',\n epsilon: 'ε',\n zeta: 'ζ',\n eta: 'η',\n theta: 'θ',\n iota: 'ι',\n kappa: 'κ',\n lambda: 'λ',\n mu: 'μ',\n nu: 'ν',\n xi: 'ξ',\n omicron: 'ο',\n pi: 'π',\n rho: 'ρ',\n sigmaf: 'ς',\n sigma: 'σ',\n tau: 'τ',\n upsilon: 'υ',\n phi: 'φ',\n chi: 'χ',\n psi: 'ψ',\n omega: 'ω',\n thetasym: 'ϑ',\n upsih: 'ϒ',\n piv: 'ϖ',\n bull: '•',\n hellip: '…',\n prime: '′',\n Prime: '″',\n oline: '‾',\n frasl: '⁄',\n weierp: '℘',\n image: 'ℑ',\n real: 'ℜ',\n trade: '™',\n alefsym: 'ℵ',\n larr: '←',\n uarr: '↑',\n rarr: '→',\n darr: '↓',\n harr: '↔',\n crarr: '↵',\n lArr: '⇐',\n uArr: '⇑',\n rArr: '⇒',\n dArr: '⇓',\n hArr: '⇔',\n forall: '∀',\n part: '∂',\n exist: '∃',\n empty: '∅',\n nabla: '∇',\n isin: '∈',\n notin: '∉',\n ni: '∋',\n prod: '∏',\n sum: '∑',\n minus: '−',\n lowast: '∗',\n radic: '√',\n prop: '∝',\n infin: '∞',\n ang: '∠',\n and: '∧',\n or: '∨',\n cap: '∩',\n cup: '∪',\n int: '∫',\n there4: '∴',\n sim: '∼',\n cong: '≅',\n asymp: '≈',\n ne: '≠',\n equiv: '≡',\n le: '≤',\n ge: '≥',\n sub: '⊂',\n sup: '⊃',\n nsub: '⊄',\n sube: '⊆',\n supe: '⊇',\n oplus: '⊕',\n otimes: '⊗',\n perp: '⊥',\n sdot: '⋅',\n lceil: '⌈',\n rceil: '⌉',\n lfloor: '⌊',\n rfloor: '⌋',\n lang: '〈',\n rang: '〉',\n loz: '◊',\n spades: '♠',\n clubs: '♣',\n hearts: '♥',\n diams: '♦',\n quot: '\"',\n amp: '&',\n lt: '<',\n gt: '>',\n OElig: 'Œ',\n oelig: 'œ',\n Scaron: 'Š',\n scaron: 'š',\n Yuml: 'Ÿ',\n circ: 'ˆ',\n tilde: '˜',\n ensp: ' ',\n emsp: ' ',\n thinsp: ' ',\n zwnj: '',\n zwj: '',\n lrm: '',\n rlm: '',\n ndash: '–',\n mdash: '—',\n lsquo: '‘',\n rsquo: '’',\n sbquo: '‚',\n ldquo: '“',\n rdquo: '”',\n bdquo: '„',\n dagger: '†',\n Dagger: '‡',\n permil: '‰',\n lsaquo: '‹',\n rsaquo: '›',\n euro: '€'\n};\n\n/**\n * List of legacy (that don’t need a trailing `;`) named references which could,\n * depending on what follows them, turn into a different meaning\n *\n * @type {Array<string>}\n */\nconst dangerous = [\n 'cent',\n 'copy',\n 'divide',\n 'gt',\n 'lt',\n 'not',\n 'para',\n 'times'\n];\n\nconst own$1 = {}.hasOwnProperty;\n\n/**\n * `characterEntitiesHtml4` but inverted.\n *\n * @type {Record<string, string>}\n */\nconst characters = {};\n\n/** @type {string} */\nlet key;\n\nfor (key in characterEntitiesHtml4) {\n if (own$1.call(characterEntitiesHtml4, key)) {\n characters[characterEntitiesHtml4[key]] = key;\n }\n}\n\n/**\n * Configurable ways to encode characters as named references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @param {boolean|undefined} attribute\n * @returns {string}\n */\nfunction toNamed(code, next, omit, attribute) {\n const character = String.fromCharCode(code);\n\n if (own$1.call(characters, character)) {\n const name = characters[character];\n const value = '&' + name;\n\n if (\n omit &&\n characterEntitiesLegacy.includes(name) &&\n !dangerous.includes(name) &&\n (!attribute ||\n (next &&\n next !== 61 /* `=` */ &&\n /[^\\da-z]/i.test(String.fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\n\n/**\n * @typedef FormatSmartOptions\n * @property {boolean} [useNamedReferences=false]\n * Prefer named character references (`&`) where possible.\n * @property {boolean} [useShortestReferences=false]\n * Prefer the shortest possible reference, if that results in less bytes.\n * **Note**: `useNamedReferences` can be omitted when using `useShortestReferences`.\n * @property {boolean} [omitOptionalSemicolons=false]\n * Whether to omit semicolons when possible.\n * **Note**: This creates what HTML calls “parse errors” but is otherwise still valid HTML — don’t use this except when building a minifier.\n * Omitting semicolons is possible for certain named and numeric references in some cases.\n * @property {boolean} [attribute=false]\n * Create character references which don’t fail in attributes.\n * **Note**: `attribute` only applies when operating dangerously with\n * `omitOptionalSemicolons: true`.\n */\n\n\n/**\n * Configurable ways to encode a character yielding pretty or small results.\n *\n * @param {number} code\n * @param {number} next\n * @param {FormatSmartOptions} options\n * @returns {string}\n */\nfunction formatSmart(code, next, options) {\n let numeric = toHexadecimal(code, next, options.omitOptionalSemicolons);\n /** @type {string|undefined} */\n let named;\n\n if (options.useNamedReferences || options.useShortestReferences) {\n named = toNamed(\n code,\n next,\n options.omitOptionalSemicolons,\n options.attribute\n );\n }\n\n // Use the shortest numeric reference when requested.\n // A simple algorithm would use decimal for all code points under 100, as\n // those are shorter than hexadecimal:\n //\n // * `c` vs `c` (decimal shorter)\n // * `d` vs `d` (equal)\n //\n // However, because we take `next` into consideration when `omit` is used,\n // And it would be possible that decimals are shorter on bigger values as\n // well if `next` is hexadecimal but not decimal, we instead compare both.\n if (\n (options.useShortestReferences || !named) &&\n options.useShortestReferences\n ) {\n const decimal = toDecimal(code, next, options.omitOptionalSemicolons);\n\n if (decimal.length < numeric.length) {\n numeric = decimal;\n }\n }\n\n return named &&\n (!options.useShortestReferences || named.length < numeric.length)\n ? named\n : numeric\n}\n\n/**\n * @typedef {import('./core.js').CoreOptions & import('./util/format-smart.js').FormatSmartOptions} Options\n * @typedef {import('./core.js').CoreOptions} LightOptions\n */\n\n\n/**\n * Encode special characters in `value`.\n *\n * @param {string} value\n * Value to encode.\n * @param {Options} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nfunction stringifyEntities(value, options) {\n return core(value, Object.assign({format: formatSmart}, options))\n}\n\n/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\n\nconst htmlCommentRegex = /^>|^->|<!--|-->|--!>|<!-$/g;\n\n// Declare arrays as variables so it can be cached by `stringifyEntities`\nconst bogusCommentEntitySubset = ['>'];\nconst commentEntitySubset = ['<', '>'];\n\n/**\n * Serialize a comment.\n *\n * @param {Comment} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction comment(node, _1, _2, state) {\n // See: <https://html.spec.whatwg.org/multipage/syntax.html#comments>\n return state.settings.bogusComments\n ? '<?' +\n stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: bogusCommentEntitySubset\n })\n ) +\n '>'\n : '<!--' + node.value.replace(htmlCommentRegex, encode) + '-->'\n\n /**\n * @param {string} $0\n */\n function encode($0) {\n return stringifyEntities(\n $0,\n Object.assign({}, state.settings.characterReferences, {\n subset: commentEntitySubset\n })\n )\n }\n}\n\n/**\n * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Serialize a doctype.\n *\n * @param {Doctype} _1\n * Node to handle.\n * @param {number | undefined} _2\n * Index of `node` in `parent.\n * @param {Parents | undefined} _3\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction doctype(_1, _2, _3, state) {\n return (\n '<!' +\n (state.settings.upperDoctype ? 'DOCTYPE' : 'doctype') +\n (state.settings.tightDoctype ? '' : ' ') +\n 'html>'\n )\n}\n\n/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nfunction ccount(value, character) {\n const source = String(value);\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0;\n let index = source.indexOf(character);\n\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n\n return count\n}\n\n/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nfunction stringify$1(values, options) {\n const settings = options || {};\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values;\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n\n/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nfunction stringify(values) {\n return values.join(' ').trim()\n}\n\n/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g;\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nfunction whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\n */\n\n\nconst siblingAfter = siblings(1);\nconst siblingBefore = siblings(-1);\n\n/** @type {Array<RootContent>} */\nconst emptyChildren$1 = [];\n\n/**\n * Factory to check siblings in a direction.\n *\n * @param {number} increment\n */\nfunction siblings(increment) {\n return sibling\n\n /**\n * Find applicable siblings in a direction.\n *\n * @template {Parents} Parent\n * Parent type.\n * @param {Parent | undefined} parent\n * Parent.\n * @param {number | undefined} index\n * Index of child in `parent`.\n * @param {boolean | undefined} [includeWhitespace=false]\n * Whether to include whitespace (default: `false`).\n * @returns {Parent extends {children: Array<infer Child>} ? Child | undefined : never}\n * Child of parent.\n */\n function sibling(parent, index, includeWhitespace) {\n const siblings = parent ? parent.children : emptyChildren$1;\n let offset = (index || 0) + increment;\n let next = siblings[offset];\n\n if (!includeWhitespace) {\n while (next && whitespace(next)) {\n offset += increment;\n next = siblings[offset];\n }\n }\n\n // @ts-expect-error: it’s a correct child.\n return next\n }\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @callback OmitHandle\n * Check if a tag can be omitted.\n * @param {Element} element\n * Element to check.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether to omit a tag.\n *\n */\n\nconst own = {}.hasOwnProperty;\n\n/**\n * Factory to check if a given node can have a tag omitted.\n *\n * @param {Record<string, OmitHandle>} handlers\n * Omission handlers, where each key is a tag name, and each value is the\n * corresponding handler.\n * @returns {OmitHandle}\n * Whether to omit a tag of an element.\n */\nfunction omission(handlers) {\n return omit\n\n /**\n * Check if a given node can have a tag omitted.\n *\n * @type {OmitHandle}\n */\n function omit(node, index, parent) {\n return (\n own.call(handlers, node.tagName) &&\n handlers[node.tagName](node, index, parent)\n )\n }\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n\nconst closing = omission({\n body: body$1,\n caption: headOrColgroupOrCaption,\n colgroup: headOrColgroupOrCaption,\n dd,\n dt,\n head: headOrColgroupOrCaption,\n html: html$1,\n li,\n optgroup,\n option,\n p,\n rp: rubyElement,\n rt: rubyElement,\n tbody: tbody$1,\n td: cells,\n tfoot,\n th: cells,\n thead,\n tr\n});\n\n/**\n * Macro for `</head>`, `</colgroup>`, and `</caption>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction headOrColgroupOrCaption(_, index, parent) {\n const next = siblingAfter(parent, index, true);\n return (\n !next ||\n (next.type !== 'comment' &&\n !(next.type === 'text' && whitespace(next.value.charAt(0))))\n )\n}\n\n/**\n * Whether to omit `</html>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction html$1(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</body>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction body$1(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</p>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction p(_, index, parent) {\n const next = siblingAfter(parent, index);\n return next\n ? next.type === 'element' &&\n (next.tagName === 'address' ||\n next.tagName === 'article' ||\n next.tagName === 'aside' ||\n next.tagName === 'blockquote' ||\n next.tagName === 'details' ||\n next.tagName === 'div' ||\n next.tagName === 'dl' ||\n next.tagName === 'fieldset' ||\n next.tagName === 'figcaption' ||\n next.tagName === 'figure' ||\n next.tagName === 'footer' ||\n next.tagName === 'form' ||\n next.tagName === 'h1' ||\n next.tagName === 'h2' ||\n next.tagName === 'h3' ||\n next.tagName === 'h4' ||\n next.tagName === 'h5' ||\n next.tagName === 'h6' ||\n next.tagName === 'header' ||\n next.tagName === 'hgroup' ||\n next.tagName === 'hr' ||\n next.tagName === 'main' ||\n next.tagName === 'menu' ||\n next.tagName === 'nav' ||\n next.tagName === 'ol' ||\n next.tagName === 'p' ||\n next.tagName === 'pre' ||\n next.tagName === 'section' ||\n next.tagName === 'table' ||\n next.tagName === 'ul')\n : !parent ||\n // Confusing parent.\n !(\n parent.type === 'element' &&\n (parent.tagName === 'a' ||\n parent.tagName === 'audio' ||\n parent.tagName === 'del' ||\n parent.tagName === 'ins' ||\n parent.tagName === 'map' ||\n parent.tagName === 'noscript' ||\n parent.tagName === 'video')\n )\n}\n\n/**\n * Whether to omit `</li>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction li(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || (next.type === 'element' && next.tagName === 'li')\n}\n\n/**\n * Whether to omit `</dt>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dt(_, index, parent) {\n const next = siblingAfter(parent, index);\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd')\n )\n}\n\n/**\n * Whether to omit `</dd>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dd(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd'))\n )\n}\n\n/**\n * Whether to omit `</rt>` or `</rp>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction rubyElement(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'rp' || next.tagName === 'rt'))\n )\n}\n\n/**\n * Whether to omit `</optgroup>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction optgroup(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || (next.type === 'element' && next.tagName === 'optgroup')\n}\n\n/**\n * Whether to omit `</option>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction option(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'option' || next.tagName === 'optgroup'))\n )\n}\n\n/**\n * Whether to omit `</thead>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction thead(_, index, parent) {\n const next = siblingAfter(parent, index);\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot')\n )\n}\n\n/**\n * Whether to omit `</tbody>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tbody$1(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot'))\n )\n}\n\n/**\n * Whether to omit `</tfoot>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tfoot(_, index, parent) {\n return !siblingAfter(parent, index)\n}\n\n/**\n * Whether to omit `</tr>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tr(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || (next.type === 'element' && next.tagName === 'tr')\n}\n\n/**\n * Whether to omit `</td>` or `</th>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction cells(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'td' || next.tagName === 'th'))\n )\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n\nconst opening = omission({\n body,\n colgroup,\n head,\n html,\n tbody\n});\n\n/**\n * Whether to omit `<html>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction html(node) {\n const head = siblingAfter(node, -1);\n return !head || head.type !== 'comment'\n}\n\n/**\n * Whether to omit `<head>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction head(node) {\n const children = node.children;\n /** @type {Array<string>} */\n const seen = [];\n let index = -1;\n\n while (++index < children.length) {\n const child = children[index];\n if (\n child.type === 'element' &&\n (child.tagName === 'title' || child.tagName === 'base')\n ) {\n if (seen.includes(child.tagName)) return false\n seen.push(child.tagName);\n }\n }\n\n return children.length > 0\n}\n\n/**\n * Whether to omit `<body>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction body(node) {\n const head = siblingAfter(node, -1, true);\n\n return (\n !head ||\n (head.type !== 'comment' &&\n !(head.type === 'text' && whitespace(head.value.charAt(0))) &&\n !(\n head.type === 'element' &&\n (head.tagName === 'meta' ||\n head.tagName === 'link' ||\n head.tagName === 'script' ||\n head.tagName === 'style' ||\n head.tagName === 'template')\n ))\n )\n}\n\n/**\n * Whether to omit `<colgroup>`.\n * The spec describes some logic for the opening tag, but it’s easier to\n * implement in the closing tag, to the same effect, so we handle it there\n * instead.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction colgroup(node, index, parent) {\n const previous = siblingBefore(parent, index);\n const head = siblingAfter(node, -1, true);\n\n // Previous colgroup was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n previous.tagName === 'colgroup' &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'col')\n}\n\n/**\n * Whether to omit `<tbody>`.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction tbody(node, index, parent) {\n const previous = siblingBefore(parent, index);\n const head = siblingAfter(node, -1);\n\n // Previous table section was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n (previous.tagName === 'thead' || previous.tagName === 'tbody') &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'tr')\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Properties} Properties\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Maps of subsets.\n *\n * Each value is a matrix of tuples.\n * The value at `0` causes parse errors, the value at `1` is valid.\n * Of both, the value at `0` is unsafe, and the value at `1` is safe.\n *\n * @type {Record<'double' | 'name' | 'single' | 'unquoted', Array<[Array<string>, Array<string>]>>}\n */\nconst constants = {\n // See: <https://html.spec.whatwg.org/#attribute-name-state>.\n name: [\n ['\\t\\n\\f\\r &/=>'.split(''), '\\t\\n\\f\\r \"&\\'/=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'/<=>'.split(''), '\\0\\t\\n\\f\\r \"&\\'/<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(unquoted)-state>.\n unquoted: [\n ['\\t\\n\\f\\r &>'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'<=>`'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(single-quoted)-state>.\n single: [\n [\"&'\".split(''), '\"&\\'`'.split('')],\n [\"\\0&'\".split(''), '\\0\"&\\'`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(double-quoted)-state>.\n double: [\n ['\"&'.split(''), '\"&\\'`'.split('')],\n ['\\0\"&'.split(''), '\\0\"&\\'`'.split('')]\n ]\n};\n\n/**\n * Serialize an element node.\n *\n * @param {Element} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction element(node, index, parent, state) {\n const schema = state.schema;\n const omit = schema.space === 'svg' ? false : state.settings.omitOptionalTags;\n let selfClosing =\n schema.space === 'svg'\n ? state.settings.closeEmptyElements\n : state.settings.voids.includes(node.tagName.toLowerCase());\n /** @type {Array<string>} */\n const parts = [];\n /** @type {string} */\n let last;\n\n if (schema.space === 'html' && node.tagName === 'svg') {\n state.schema = svg;\n }\n\n const attributes = serializeAttributes(state, node.properties);\n\n const content = state.all(\n schema.space === 'html' && node.tagName === 'template' ? node.content : node\n );\n\n state.schema = schema;\n\n // If the node is categorised as void, but it has children, remove the\n // categorisation.\n // This enables for example `menuitem`s, which are void in W3C HTML but not\n // void in WHATWG HTML, to be stringified properly.\n // Note: `menuitem` has since been removed from the HTML spec, and so is no\n // longer void.\n if (content) selfClosing = false;\n\n if (attributes || !omit || !opening(node, index, parent)) {\n parts.push('<', node.tagName, attributes ? ' ' + attributes : '');\n\n if (\n selfClosing &&\n (schema.space === 'svg' || state.settings.closeSelfClosing)\n ) {\n last = attributes.charAt(attributes.length - 1);\n if (\n !state.settings.tightSelfClosing ||\n last === '/' ||\n (last && last !== '\"' && last !== \"'\")\n ) {\n parts.push(' ');\n }\n\n parts.push('/');\n }\n\n parts.push('>');\n }\n\n parts.push(content);\n\n if (!selfClosing && (!omit || !closing(node, index, parent))) {\n parts.push('</' + node.tagName + '>');\n }\n\n return parts.join('')\n}\n\n/**\n * @param {State} state\n * @param {Properties | null | undefined} properties\n * @returns {string}\n */\nfunction serializeAttributes(state, properties) {\n /** @type {Array<string>} */\n const values = [];\n let index = -1;\n /** @type {string} */\n let key;\n\n if (properties) {\n for (key in properties) {\n if (properties[key] !== null && properties[key] !== undefined) {\n const value = serializeAttribute(state, key, properties[key]);\n if (value) values.push(value);\n }\n }\n }\n\n while (++index < values.length) {\n const last = state.settings.tightAttributes\n ? values[index].charAt(values[index].length - 1)\n : undefined;\n\n // In tight mode, don’t add a space after quoted attributes.\n if (index !== values.length - 1 && last !== '\"' && last !== \"'\") {\n values[index] += ' ';\n }\n }\n\n return values.join('')\n}\n\n/**\n * @param {State} state\n * @param {string} key\n * @param {Properties[keyof Properties]} value\n * @returns {string}\n */\nfunction serializeAttribute(state, key, value) {\n const info = find(state.schema, key);\n const x =\n state.settings.allowParseErrors && state.schema.space === 'html' ? 0 : 1;\n const y = state.settings.allowDangerousCharacters ? 0 : 1;\n let quote = state.quote;\n /** @type {string | undefined} */\n let result;\n\n if (info.overloadedBoolean && (value === info.attribute || value === '')) {\n value = true;\n } else if (\n info.boolean ||\n (info.overloadedBoolean && typeof value !== 'string')\n ) {\n value = Boolean(value);\n }\n\n if (\n value === null ||\n value === undefined ||\n value === false ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return ''\n }\n\n const name = stringifyEntities(\n info.attribute,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: constants.name[x][y]\n })\n );\n\n // No value.\n // There is currently only one boolean property in SVG: `[download]` on\n // `<a>`.\n // This property does not seem to work in browsers (Firefox, Safari, Chrome),\n // so I can’t test if dropping the value works.\n // But I assume that it should:\n //\n // ```html\n // <!doctype html>\n // <svg viewBox=\"0 0 100 100\">\n // <a href=https://example.com download>\n // <circle cx=50 cy=40 r=35 />\n // </a>\n // </svg>\n // ```\n //\n // See: <https://github.com/wooorm/property-information/blob/main/lib/svg.js>\n if (value === true) return name\n\n // `spaces` doesn’t accept a second argument, but it’s given here just to\n // keep the code cleaner.\n value = Array.isArray(value)\n ? (info.commaSeparated ? stringify$1 : stringify)(value, {\n padLeft: !state.settings.tightCommaSeparatedLists\n })\n : String(value);\n\n if (state.settings.collapseEmptyAttributes && !value) return name\n\n // Check unquoted value.\n if (state.settings.preferUnquoted) {\n result = stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n attribute: true,\n subset: constants.unquoted[x][y]\n })\n );\n }\n\n // If we don’t want unquoted, or if `value` contains character references when\n // unquoted…\n if (result !== value) {\n // If the alternative is less common than `quote`, switch.\n if (\n state.settings.quoteSmart &&\n ccount(value, quote) > ccount(value, state.alternative)\n ) {\n quote = state.alternative;\n }\n\n result =\n quote +\n stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: (quote === \"'\" ? constants.single : constants.double)[x][y],\n attribute: true\n })\n ) +\n quote;\n }\n\n // Don’t add a `=` for unquoted empties.\n return name + (result ? '=' + result : result)\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n// Declare array as variable so it can be cached by `stringifyEntities`\nconst textEntitySubset = ['<', '&'];\n\n/**\n * Serialize a text node.\n *\n * @param {Raw | Text} node\n * Node to handle.\n * @param {number | undefined} _\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction text(node, _, parent, state) {\n // Check if content of `node` should be escaped.\n return parent &&\n parent.type === 'element' &&\n (parent.tagName === 'script' || parent.tagName === 'style')\n ? node.value\n : stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: textEntitySubset\n })\n )\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Serialize a raw node.\n *\n * @param {Raw} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction raw(node, index, parent, state) {\n return state.settings.allowDangerousHtml\n ? node.value\n : text(node, index, parent, state)\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Serialize a root.\n *\n * @param {Root} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction root(node, _1, _2, state) {\n return state.all(node)\n}\n\n/**\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * @type {(node: Nodes, index: number | undefined, parent: Parents | undefined, state: State) => string}\n */\nconst handle = zwitch('type', {\n invalid,\n unknown,\n handlers: {comment, doctype, element, raw, root, text}\n});\n\n/**\n * Fail when a non-node is found in the tree.\n *\n * @param {unknown} node\n * Unknown value.\n * @returns {never}\n * Never.\n */\nfunction invalid(node) {\n throw new Error('Expected node, not `' + node + '`')\n}\n\n/**\n * Fail when a node with an unknown type is found in the tree.\n *\n * @param {unknown} node_\n * Unknown node.\n * @returns {never}\n * Never.\n */\nfunction unknown(node_) {\n // `type` is guaranteed by runtime JS.\n const node = /** @type {Nodes} */ (node_);\n throw new Error('Cannot compile unknown node `' + node.type + '`')\n}\n\n/**\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('stringify-entities').Options} StringifyEntitiesOptions\n */\n\n\n/** @type {Options} */\nconst emptyOptions = {};\n\n/** @type {CharacterReferences} */\nconst emptyCharacterReferences = {};\n\n/** @type {Array<never>} */\nconst emptyChildren = [];\n\n/**\n * Serialize hast as HTML.\n *\n * @param {Array<RootContent> | Nodes} tree\n * Tree to serialize.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized HTML.\n */\nfunction toHtml(tree, options) {\n const options_ = options || emptyOptions;\n const quote = options_.quote || '\"';\n const alternative = quote === '\"' ? \"'\" : '\"';\n\n if (quote !== '\"' && quote !== \"'\") {\n throw new Error('Invalid quote `' + quote + '`, expected `\\'` or `\"`')\n }\n\n /** @type {State} */\n const state = {\n one,\n all,\n settings: {\n omitOptionalTags: options_.omitOptionalTags || false,\n allowParseErrors: options_.allowParseErrors || false,\n allowDangerousCharacters: options_.allowDangerousCharacters || false,\n quoteSmart: options_.quoteSmart || false,\n preferUnquoted: options_.preferUnquoted || false,\n tightAttributes: options_.tightAttributes || false,\n upperDoctype: options_.upperDoctype || false,\n tightDoctype: options_.tightDoctype || false,\n bogusComments: options_.bogusComments || false,\n tightCommaSeparatedLists: options_.tightCommaSeparatedLists || false,\n tightSelfClosing: options_.tightSelfClosing || false,\n collapseEmptyAttributes: options_.collapseEmptyAttributes || false,\n allowDangerousHtml: options_.allowDangerousHtml || false,\n voids: options_.voids || htmlVoidElements,\n characterReferences:\n options_.characterReferences || emptyCharacterReferences,\n closeSelfClosing: options_.closeSelfClosing || false,\n closeEmptyElements: options_.closeEmptyElements || false\n },\n schema: options_.space === 'svg' ? svg : html$2,\n quote,\n alternative\n };\n\n return state.one(\n Array.isArray(tree) ? {type: 'root', children: tree} : tree,\n undefined,\n undefined\n )\n}\n\n/**\n * Serialize a node.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Nodes} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {string}\n * Serialized node.\n */\nfunction one(node, index, parent) {\n return handle(node, index, parent, this)\n}\n\n/**\n * Serialize all children of `parent`.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Parents | undefined} parent\n * Parent whose children to serialize.\n * @returns {string}\n */\nfunction all(parent) {\n /** @type {Array<string>} */\n const results = [];\n const children = (parent && parent.children) || emptyChildren;\n let index = -1;\n\n while (++index < children.length) {\n results[index] = this.one(children[index], index, parent);\n }\n\n return results.join('')\n}\n\n/**\n * Get highlighted code in HTML.\n */\nfunction codeToHtml(internal, code, options) {\n const context = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options),\n };\n let result = toHtml(codeToHast(internal, code, options, context));\n for (const transformer of getTransformers(options))\n result = transformer.postprocess?.call(context, result, options) || result;\n return result;\n}\n\nasync function main(init) {\n let wasmMemory;\n let buffer;\n const binding = {};\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n binding.HEAPU8 = new Uint8Array(buf);\n binding.HEAPU32 = new Uint32Array(buf);\n }\n function _emscripten_get_now() {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n }\n function _emscripten_memcpy_big(dest, src, num) {\n binding.HEAPU8.copyWithin(dest, src, src + num);\n }\n function getHeapMax() {\n return 2147483648;\n }\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n }\n catch { }\n }\n function _emscripten_resize_heap(requestedSize) {\n const oldSize = binding.HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n const maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize)\n return false;\n const alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple);\n for (let cutDown = 1; cutDown <= 4; cutDown *= 2) {\n let overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n const newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n const replacement = emscripten_realloc_buffer(newSize);\n if (replacement)\n return true;\n }\n return false;\n }\n const UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead = 1024) {\n const endIdx = idx + maxBytesToRead;\n let endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx))\n ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n let str = '';\n while (idx < endPtr) {\n let u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n const u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) === 192) {\n str += String.fromCharCode(((u0 & 31) << 6) | u1);\n continue;\n }\n const u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) === 224) {\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\n }\n else {\n u0 = ((u0 & 7) << 18)\n | (u1 << 12)\n | (u2 << 6)\n | (heapOrArray[idx++] & 63);\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n }\n else {\n const ch = u0 - 65536;\n str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(binding.HEAPU8, ptr, maxBytesToRead) : '';\n }\n const asmLibraryArg = {\n emscripten_get_now: _emscripten_get_now,\n emscripten_memcpy_big: _emscripten_memcpy_big,\n emscripten_resize_heap: _emscripten_resize_heap,\n fd_write: () => 0,\n };\n async function createWasm() {\n const info = {\n env: asmLibraryArg,\n wasi_snapshot_preview1: asmLibraryArg,\n };\n const exports = await init(info);\n wasmMemory = exports.memory;\n updateGlobalBufferAndViews(wasmMemory.buffer);\n Object.assign(binding, exports);\n binding.UTF8ToString = UTF8ToString;\n }\n await createWasm();\n return binding;\n}\n\n/* ---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *-------------------------------------------------------- */\nlet onigBinding = null;\nlet defaultDebugCall = false;\nfunction throwLastOnigError(onigBinding) {\n throw new ShikiError(onigBinding.UTF8ToString(onigBinding.getLastOnigError()));\n}\nclass UtfString {\n static _utf8ByteLength(str) {\n let result = 0;\n for (let i = 0, len = str.length; i < len; i++) {\n const charCode = str.charCodeAt(i);\n let codepoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i + 1 < len) {\n const nextCharCode = str.charCodeAt(i + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codepoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (codepoint <= 0x7F)\n result += 1;\n else if (codepoint <= 0x7FF)\n result += 2;\n else if (codepoint <= 0xFFFF)\n result += 3;\n else\n result += 4;\n if (wasSurrogatePair)\n i++;\n }\n return result;\n }\n utf16Length;\n utf8Length;\n utf16Value;\n utf8Value;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n constructor(str) {\n const utf16Length = str.length;\n const utf8Length = UtfString._utf8ByteLength(str);\n const computeIndicesMapping = (utf8Length !== utf16Length);\n const utf16OffsetToUtf8 = computeIndicesMapping ? new Uint32Array(utf16Length + 1) : null;\n if (computeIndicesMapping)\n utf16OffsetToUtf8[utf16Length] = utf8Length;\n const utf8OffsetToUtf16 = computeIndicesMapping ? new Uint32Array(utf8Length + 1) : null;\n if (computeIndicesMapping)\n utf8OffsetToUtf16[utf8Length] = utf16Length;\n const utf8Value = new Uint8Array(utf8Length);\n let i8 = 0;\n for (let i16 = 0; i16 < utf16Length; i16++) {\n const charCode = str.charCodeAt(i16);\n let codePoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i16 + 1 < utf16Length) {\n const nextCharCode = str.charCodeAt(i16 + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codePoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (computeIndicesMapping) {\n utf16OffsetToUtf8[i16] = i8;\n if (wasSurrogatePair)\n utf16OffsetToUtf8[i16 + 1] = i8;\n if (codePoint <= 0x7F) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n }\n else if (codePoint <= 0x7FF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n }\n else if (codePoint <= 0xFFFF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n }\n else {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n utf8OffsetToUtf16[i8 + 3] = i16;\n }\n }\n if (codePoint <= 0x7F) {\n utf8Value[i8++] = codePoint;\n }\n else if (codePoint <= 0x7FF) {\n utf8Value[i8++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else if (codePoint <= 0xFFFF) {\n utf8Value[i8++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else {\n utf8Value[i8++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n if (wasSurrogatePair)\n i16++;\n }\n this.utf16Length = utf16Length;\n this.utf8Length = utf8Length;\n this.utf16Value = str;\n this.utf8Value = utf8Value;\n this.utf16OffsetToUtf8 = utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utf8OffsetToUtf16;\n }\n createString(onigBinding) {\n const result = onigBinding.omalloc(this.utf8Length);\n onigBinding.HEAPU8.set(this.utf8Value, result);\n return result;\n }\n}\nclass OnigString {\n static LAST_ID = 0;\n static _sharedPtr = 0; // a pointer to a string of 10000 bytes\n static _sharedPtrInUse = false;\n id = (++OnigString.LAST_ID);\n _onigBinding;\n content;\n utf16Length;\n utf8Length;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n ptr;\n constructor(str) {\n if (!onigBinding)\n throw new ShikiError('Must invoke loadWasm first.');\n this._onigBinding = onigBinding;\n this.content = str;\n const utfString = new UtfString(str);\n this.utf16Length = utfString.utf16Length;\n this.utf8Length = utfString.utf8Length;\n this.utf16OffsetToUtf8 = utfString.utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utfString.utf8OffsetToUtf16;\n if (this.utf8Length < 10000 && !OnigString._sharedPtrInUse) {\n if (!OnigString._sharedPtr)\n OnigString._sharedPtr = onigBinding.omalloc(10000);\n OnigString._sharedPtrInUse = true;\n onigBinding.HEAPU8.set(utfString.utf8Value, OnigString._sharedPtr);\n this.ptr = OnigString._sharedPtr;\n }\n else {\n this.ptr = utfString.createString(onigBinding);\n }\n }\n convertUtf8OffsetToUtf16(utf8Offset) {\n if (this.utf8OffsetToUtf16) {\n if (utf8Offset < 0)\n return 0;\n if (utf8Offset > this.utf8Length)\n return this.utf16Length;\n return this.utf8OffsetToUtf16[utf8Offset];\n }\n return utf8Offset;\n }\n convertUtf16OffsetToUtf8(utf16Offset) {\n if (this.utf16OffsetToUtf8) {\n if (utf16Offset < 0)\n return 0;\n if (utf16Offset > this.utf16Length)\n return this.utf8Length;\n return this.utf16OffsetToUtf8[utf16Offset];\n }\n return utf16Offset;\n }\n dispose() {\n if (this.ptr === OnigString._sharedPtr)\n OnigString._sharedPtrInUse = false;\n else\n this._onigBinding.ofree(this.ptr);\n }\n}\nclass OnigScanner {\n _onigBinding;\n _ptr;\n constructor(patterns) {\n if (!onigBinding)\n throw new ShikiError('Must invoke loadWasm first.');\n const strPtrsArr = [];\n const strLenArr = [];\n for (let i = 0, len = patterns.length; i < len; i++) {\n const utfString = new UtfString(patterns[i]);\n strPtrsArr[i] = utfString.createString(onigBinding);\n strLenArr[i] = utfString.utf8Length;\n }\n const strPtrsPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strPtrsArr, strPtrsPtr / 4);\n const strLenPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strLenArr, strLenPtr / 4);\n const scannerPtr = onigBinding.createOnigScanner(strPtrsPtr, strLenPtr, patterns.length);\n for (let i = 0, len = patterns.length; i < len; i++)\n onigBinding.ofree(strPtrsArr[i]);\n onigBinding.ofree(strLenPtr);\n onigBinding.ofree(strPtrsPtr);\n if (scannerPtr === 0)\n throwLastOnigError(onigBinding);\n this._onigBinding = onigBinding;\n this._ptr = scannerPtr;\n }\n dispose() {\n this._onigBinding.freeOnigScanner(this._ptr);\n }\n findNextMatchSync(string, startPosition, arg) {\n let debugCall = defaultDebugCall;\n let options = 0 /* FindOption.None */;\n if (typeof arg === 'number') {\n if (arg & 8 /* FindOption.DebugCall */)\n debugCall = true;\n options = arg;\n }\n else if (typeof arg === 'boolean') {\n debugCall = arg;\n }\n if (typeof string === 'string') {\n string = new OnigString(string);\n const result = this._findNextMatchSync(string, startPosition, debugCall, options);\n string.dispose();\n return result;\n }\n return this._findNextMatchSync(string, startPosition, debugCall, options);\n }\n _findNextMatchSync(string, startPosition, debugCall, options) {\n const onigBinding = this._onigBinding;\n let resultPtr;\n if (debugCall)\n resultPtr = onigBinding.findNextOnigScannerMatchDbg(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n else\n resultPtr = onigBinding.findNextOnigScannerMatch(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n if (resultPtr === 0) {\n // no match\n return null;\n }\n const HEAPU32 = onigBinding.HEAPU32;\n let offset = resultPtr / 4; // byte offset -> uint32 offset\n const index = HEAPU32[offset++];\n const count = HEAPU32[offset++];\n const captureIndices = [];\n for (let i = 0; i < count; i++) {\n const beg = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n const end = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n captureIndices[i] = {\n start: beg,\n end,\n length: end - beg,\n };\n }\n return {\n index,\n captureIndices,\n };\n }\n}\nfunction isInstantiatorOptionsObject(dataOrOptions) {\n return (typeof dataOrOptions.instantiator === 'function');\n}\nfunction isInstantiatorModule(dataOrOptions) {\n return (typeof dataOrOptions.default === 'function');\n}\nfunction isDataOptionsObject(dataOrOptions) {\n return (typeof dataOrOptions.data !== 'undefined');\n}\nfunction isResponse(dataOrOptions) {\n return (typeof Response !== 'undefined' && dataOrOptions instanceof Response);\n}\nfunction isArrayBuffer(data) {\n return (typeof ArrayBuffer !== 'undefined' && (data instanceof ArrayBuffer || ArrayBuffer.isView(data)))\n // eslint-disable-next-line node/prefer-global/buffer\n || (typeof Buffer !== 'undefined' && Buffer.isBuffer?.(data))\n || (typeof SharedArrayBuffer !== 'undefined' && data instanceof SharedArrayBuffer)\n || (typeof Uint32Array !== 'undefined' && data instanceof Uint32Array);\n}\nlet initPromise;\nfunction loadWasm(options) {\n if (initPromise)\n return initPromise;\n async function _load() {\n onigBinding = await main(async (info) => {\n let instance = options;\n instance = await instance;\n if (typeof instance === 'function')\n instance = await instance(info);\n if (typeof instance === 'function')\n instance = await instance(info);\n if (isInstantiatorOptionsObject(instance)) {\n instance = await instance.instantiator(info);\n }\n else if (isInstantiatorModule(instance)) {\n instance = await instance.default(info);\n }\n else {\n if (isDataOptionsObject(instance))\n instance = instance.data;\n if (isResponse(instance)) {\n if (typeof WebAssembly.instantiateStreaming === 'function')\n instance = await _makeResponseStreamingLoader(instance)(info);\n else\n instance = await _makeResponseNonStreamingLoader(instance)(info);\n }\n else if (isArrayBuffer(instance)) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n // import(\"shiki/onig.wasm\") returns `{ default: WebAssembly.Module }` on cloudflare workers\n // https://developers.cloudflare.com/workers/wrangler/bundling/\n else if (instance instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n else if ('default' in instance && instance.default instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance.default)(info);\n }\n }\n if ('instance' in instance)\n instance = instance.instance;\n if ('exports' in instance)\n instance = instance.exports;\n return instance;\n });\n }\n initPromise = _load();\n return initPromise;\n}\nfunction _makeArrayBufferLoader(data) {\n return importObject => WebAssembly.instantiate(data, importObject);\n}\nfunction _makeResponseStreamingLoader(data) {\n return importObject => WebAssembly.instantiateStreaming(data, importObject);\n}\nfunction _makeResponseNonStreamingLoader(data) {\n return async (importObject) => {\n const arrayBuffer = await data.arrayBuffer();\n return WebAssembly.instantiate(arrayBuffer, importObject);\n };\n}\nfunction createOnigString(str) {\n return new OnigString(str);\n}\nfunction createOnigScanner(patterns) {\n return new OnigScanner(patterns);\n}\n\n/**\n * https://github.com/microsoft/vscode/blob/f7f05dee53fb33fe023db2e06e30a89d3094488f/src/vs/platform/theme/common/colorRegistry.ts#L258-L268\n */\nconst VSCODE_FALLBACK_EDITOR_FG = { light: '#333333', dark: '#bbbbbb' };\nconst VSCODE_FALLBACK_EDITOR_BG = { light: '#fffffe', dark: '#1e1e1e' };\nconst RESOLVED_KEY = '__shiki_resolved';\n/**\n * Normalize a textmate theme to shiki theme\n */\nfunction normalizeTheme(rawTheme) {\n // @ts-expect-error private field\n if (rawTheme?.[RESOLVED_KEY])\n return rawTheme;\n const theme = {\n ...rawTheme,\n };\n // Fallback settings\n if (theme.tokenColors && !theme.settings) {\n theme.settings = theme.tokenColors;\n delete theme.tokenColors;\n }\n theme.type ||= 'dark';\n theme.colorReplacements = { ...theme.colorReplacements };\n theme.settings ||= [];\n // Guess fg/bg colors\n let { bg, fg } = theme;\n if (!bg || !fg) {\n /**\n * First try:\n * Theme might contain a global `tokenColor` without `name` or `scope`\n * Used as default value for foreground/background\n */\n const globalSetting = theme.settings\n ? theme.settings.find((s) => !s.name && !s.scope)\n : undefined;\n if (globalSetting?.settings?.foreground)\n fg = globalSetting.settings.foreground;\n if (globalSetting?.settings?.background)\n bg = globalSetting.settings.background;\n /**\n * Second try:\n * If there's no global `tokenColor` without `name` or `scope`\n * Use `editor.foreground` and `editor.background`\n */\n if (!fg && theme?.colors?.['editor.foreground'])\n fg = theme.colors['editor.foreground'];\n if (!bg && theme?.colors?.['editor.background'])\n bg = theme.colors['editor.background'];\n /**\n * Last try:\n * If there's no fg/bg color specified in theme, use default\n */\n if (!fg)\n fg = theme.type === 'light' ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark;\n if (!bg)\n bg = theme.type === 'light' ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark;\n theme.fg = fg;\n theme.bg = bg;\n }\n // Push a no-scope setting with fallback colors\n if (!(theme.settings[0] && theme.settings[0].settings && !theme.settings[0].scope)) {\n theme.settings.unshift({\n settings: {\n foreground: theme.fg,\n background: theme.bg,\n },\n });\n }\n // Push non-hex colors to color replacements, as `vscode-textmate` doesn't support them\n let replacementCount = 0;\n const replacementMap = new Map();\n function getReplacementColor(value) {\n if (replacementMap.has(value))\n return replacementMap.get(value);\n replacementCount += 1;\n const hex = `#${replacementCount.toString(16).padStart(8, '0').toLowerCase()}`;\n if (theme.colorReplacements?.[`#${hex}`]) // already exists\n return getReplacementColor(value);\n replacementMap.set(value, hex);\n return hex;\n }\n theme.settings = theme.settings.map((setting) => {\n const replaceFg = setting.settings?.foreground && !setting.settings.foreground.startsWith('#');\n const replaceBg = setting.settings?.background && !setting.settings.background.startsWith('#');\n if (!replaceFg && !replaceBg)\n return setting;\n const clone = {\n ...setting,\n settings: {\n ...setting.settings,\n },\n };\n if (replaceFg) {\n const replacement = getReplacementColor(setting.settings.foreground);\n theme.colorReplacements[replacement] = setting.settings.foreground;\n clone.settings.foreground = replacement;\n }\n if (replaceBg) {\n const replacement = getReplacementColor(setting.settings.background);\n theme.colorReplacements[replacement] = setting.settings.background;\n clone.settings.background = replacement;\n }\n return clone;\n });\n for (const key of Object.keys(theme.colors || {})) {\n // Only patch for known keys\n if (key === 'editor.foreground' || key === 'editor.background' || key.startsWith('terminal.ansi')) {\n if (!theme.colors[key]?.startsWith('#')) {\n const replacement = getReplacementColor(theme.colors[key]);\n theme.colorReplacements[replacement] = theme.colors[key];\n theme.colors[key] = replacement;\n }\n }\n }\n Object.defineProperty(theme, RESOLVED_KEY, {\n enumerable: false,\n writable: false,\n value: true,\n });\n return theme;\n}\n\nclass Registry extends Registry$1 {\n _resolver;\n _themes;\n _langs;\n _alias;\n _resolvedThemes = new Map();\n _resolvedGrammars = new Map();\n _langMap = new Map();\n _langGraph = new Map();\n _textmateThemeCache = new WeakMap();\n _loadedThemesCache = null;\n _loadedLanguagesCache = null;\n constructor(_resolver, _themes, _langs, _alias = {}) {\n super(_resolver);\n this._resolver = _resolver;\n this._themes = _themes;\n this._langs = _langs;\n this._alias = _alias;\n _themes.forEach(t => this.loadTheme(t));\n _langs.forEach(l => this.loadLanguage(l));\n }\n getTheme(theme) {\n if (typeof theme === 'string')\n return this._resolvedThemes.get(theme);\n else\n return this.loadTheme(theme);\n }\n loadTheme(theme) {\n const _theme = normalizeTheme(theme);\n if (_theme.name) {\n this._resolvedThemes.set(_theme.name, _theme);\n // Reset cache\n this._loadedThemesCache = null;\n }\n return _theme;\n }\n getLoadedThemes() {\n if (!this._loadedThemesCache)\n this._loadedThemesCache = [...this._resolvedThemes.keys()];\n return this._loadedThemesCache;\n }\n // Override and re-implement this method to cache the textmate themes as `TextMateTheme.createFromRawTheme`\n // is expensive. Themes can switch often especially for dual-theme support.\n //\n // The parent class also accepts `colorMap` as the second parameter, but since we don't use that,\n // we omit here so it's easier to cache the themes.\n setTheme(theme) {\n let textmateTheme = this._textmateThemeCache.get(theme);\n if (!textmateTheme) {\n textmateTheme = Theme.createFromRawTheme(theme);\n this._textmateThemeCache.set(theme, textmateTheme);\n }\n // @ts-expect-error Access private `_syncRegistry`, but should work in runtime\n this._syncRegistry.setTheme(textmateTheme);\n }\n getGrammar(name) {\n if (this._alias[name]) {\n const resolved = new Set([name]);\n while (this._alias[name]) {\n name = this._alias[name];\n if (resolved.has(name))\n throw new ShikiError(`Circular alias \\`${Array.from(resolved).join(' -> ')} -> ${name}\\``);\n resolved.add(name);\n }\n }\n return this._resolvedGrammars.get(name);\n }\n async loadLanguage(lang) {\n if (this.getGrammar(lang.name))\n return;\n const embeddedLazilyBy = new Set([...this._langMap.values()]\n .filter(i => i.embeddedLangsLazy?.includes(lang.name)));\n this._resolver.addLanguage(lang);\n const grammarConfig = {\n balancedBracketSelectors: lang.balancedBracketSelectors || ['*'],\n unbalancedBracketSelectors: lang.unbalancedBracketSelectors || [],\n };\n // @ts-expect-error Private members, set this to override the previous grammar (that can be a stub)\n this._syncRegistry._rawGrammars.set(lang.scopeName, lang);\n const g = await this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig);\n g.name = lang.name;\n this._resolvedGrammars.set(lang.name, g);\n if (lang.aliases) {\n lang.aliases.forEach((alias) => {\n this._alias[alias] = lang.name;\n });\n }\n // Reset cache\n this._loadedLanguagesCache = null;\n // If there is a language that embeds this language lazily, we need to reload it\n if (embeddedLazilyBy.size) {\n for (const e of embeddedLazilyBy) {\n this._resolvedGrammars.delete(e.name);\n // Reset cache\n this._loadedLanguagesCache = null;\n // @ts-expect-error clear cache\n this._syncRegistry?._injectionGrammars?.delete(e.scopeName);\n // @ts-expect-error clear cache\n this._syncRegistry?._grammars?.delete(e.scopeName);\n await this.loadLanguage(this._langMap.get(e.name));\n }\n }\n }\n async init() {\n this._themes.map(t => this.loadTheme(t));\n await this.loadLanguages(this._langs);\n }\n dispose() {\n super.dispose();\n this._resolvedThemes.clear();\n this._resolvedGrammars.clear();\n this._langMap.clear();\n this._langGraph.clear();\n this._loadedThemesCache = null;\n }\n async loadLanguages(langs) {\n for (const lang of langs)\n this.resolveEmbeddedLanguages(lang);\n const langsGraphArray = Array.from(this._langGraph.entries());\n const missingLangs = langsGraphArray.filter(([_, lang]) => !lang);\n if (missingLangs.length) {\n const dependents = langsGraphArray\n .filter(([_, lang]) => lang && lang.embeddedLangs?.some(l => missingLangs.map(([name]) => name).includes(l)))\n .filter(lang => !missingLangs.includes(lang));\n throw new ShikiError(`Missing languages ${missingLangs.map(([name]) => `\\`${name}\\``).join(', ')}, required by ${dependents.map(([name]) => `\\`${name}\\``).join(', ')}`);\n }\n for (const [_, lang] of langsGraphArray)\n this._resolver.addLanguage(lang);\n for (const [_, lang] of langsGraphArray)\n await this.loadLanguage(lang);\n }\n getLoadedLanguages() {\n if (!this._loadedLanguagesCache) {\n this._loadedLanguagesCache = [\n ...new Set([...this._resolvedGrammars.keys(), ...Object.keys(this._alias)]),\n ];\n }\n return this._loadedLanguagesCache;\n }\n resolveEmbeddedLanguages(lang) {\n this._langMap.set(lang.name, lang);\n this._langGraph.set(lang.name, lang);\n if (lang.embeddedLangs) {\n for (const embeddedLang of lang.embeddedLangs)\n this._langGraph.set(embeddedLang, this._langMap.get(embeddedLang));\n }\n }\n}\n\nclass Resolver {\n _langs = new Map();\n _scopeToLang = new Map();\n _injections = new Map();\n _onigLibPromise;\n constructor(onigLibPromise, langs) {\n this._onigLibPromise = onigLibPromise;\n langs.forEach(i => this.addLanguage(i));\n }\n get onigLib() {\n return this._onigLibPromise;\n }\n getLangRegistration(langIdOrAlias) {\n return this._langs.get(langIdOrAlias);\n }\n async loadGrammar(scopeName) {\n return this._scopeToLang.get(scopeName);\n }\n addLanguage(l) {\n this._langs.set(l.name, l);\n if (l.aliases) {\n l.aliases.forEach((a) => {\n this._langs.set(a, l);\n });\n }\n this._scopeToLang.set(l.scopeName, l);\n if (l.injectTo) {\n l.injectTo.forEach((i) => {\n if (!this._injections.get(i))\n this._injections.set(i, []);\n this._injections.get(i).push(l.scopeName);\n });\n }\n }\n getInjections(scopeName) {\n const scopeParts = scopeName.split('.');\n let injections = [];\n for (let i = 1; i <= scopeParts.length; i++) {\n const subScopeName = scopeParts.slice(0, i).join('.');\n injections = [...injections, ...(this._injections.get(subScopeName) || [])];\n }\n return injections;\n }\n}\n\nlet _defaultWasmLoader;\n/**\n * Set the default wasm loader for `loadWasm`.\n * @internal\n */\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\nlet instancesCount = 0;\n/**\n * Get the minimal shiki context for rendering.\n */\nasync function createShikiInternal(options = {}) {\n instancesCount += 1;\n if (options.warnings !== false && instancesCount >= 10 && instancesCount % 10 === 0)\n console.warn(`[Shiki] ${instancesCount} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \\`highlighter.dispose()\\` to release unused instances.`);\n let isDisposed = false;\n async function normalizeGetter(p) {\n return Promise.resolve(typeof p === 'function' ? p() : p).then(r => r.default || r);\n }\n async function resolveLangs(langs) {\n return Array.from(new Set((await Promise.all(langs\n .filter(l => !isSpecialLang(l))\n .map(async (lang) => await normalizeGetter(lang).then(r => Array.isArray(r) ? r : [r])))).flat()));\n }\n const wasmLoader = options.loadWasm || _defaultWasmLoader;\n const [themes, langs,] = await Promise.all([\n Promise.all((options.themes || []).map(normalizeGetter)).then(r => r.map(normalizeTheme)),\n resolveLangs(options.langs || []),\n wasmLoader ? loadWasm(wasmLoader) : undefined,\n ]);\n const resolver = new Resolver(Promise.resolve({\n createOnigScanner(patterns) {\n return createOnigScanner(patterns);\n },\n createOnigString(s) {\n return createOnigString(s);\n },\n }), langs);\n const _registry = new Registry(resolver, themes, langs, options.langAlias);\n await _registry.init();\n let _lastTheme;\n function getLanguage(name) {\n ensureNotDisposed();\n const _lang = _registry.getGrammar(typeof name === 'string' ? name : name.name);\n if (!_lang)\n throw new ShikiError(`Language \\`${name}\\` not found, you may need to load it first`);\n return _lang;\n }\n function getTheme(name) {\n if (name === 'none')\n return { bg: '', fg: '', name: 'none', settings: [], type: 'dark' };\n ensureNotDisposed();\n const _theme = _registry.getTheme(name);\n if (!_theme)\n throw new ShikiError(`Theme \\`${name}\\` not found, you may need to load it first`);\n return _theme;\n }\n function setTheme(name) {\n ensureNotDisposed();\n const theme = getTheme(name);\n if (_lastTheme !== name) {\n _registry.setTheme(theme);\n _lastTheme = name;\n }\n const colorMap = _registry.getColorMap();\n return {\n theme,\n colorMap,\n };\n }\n function getLoadedThemes() {\n ensureNotDisposed();\n return _registry.getLoadedThemes();\n }\n function getLoadedLanguages() {\n ensureNotDisposed();\n return _registry.getLoadedLanguages();\n }\n async function loadLanguage(...langs) {\n ensureNotDisposed();\n await _registry.loadLanguages(await resolveLangs(langs));\n }\n async function loadTheme(...themes) {\n ensureNotDisposed();\n await Promise.all(themes.map(async (theme) => isSpecialTheme(theme)\n ? null\n : _registry.loadTheme(await normalizeGetter(theme))));\n }\n function ensureNotDisposed() {\n if (isDisposed)\n throw new ShikiError('Shiki instance has been disposed');\n }\n function dispose() {\n if (isDisposed)\n return;\n isDisposed = true;\n _registry.dispose();\n instancesCount -= 1;\n }\n return {\n setTheme,\n getTheme,\n getLanguage,\n getLoadedThemes,\n getLoadedLanguages,\n loadLanguage,\n loadTheme,\n dispose,\n [Symbol.dispose]: dispose,\n };\n}\n/**\n * @deprecated Use `createShikiInternal` instead.\n */\nfunction getShikiInternal(options = {}) {\n // TODO: next: console.warn('`getShikiInternal` is deprecated. Use `createShikiInternal` instead.')\n return createShikiInternal(options);\n}\n\n/**\n * Create a Shiki core highlighter instance, with no languages or themes bundled.\n * Wasm and each language and theme must be loaded manually.\n *\n * @see http://shiki.style/guide/install#fine-grained-bundle\n */\nasync function createHighlighterCore(options = {}) {\n const internal = await createShikiInternal(options);\n return {\n getLastGrammarState: (code, options) => getLastGrammarState(internal, code, options),\n codeToTokensBase: (code, options) => codeToTokensBase(internal, code, options),\n codeToTokensWithThemes: (code, options) => codeToTokensWithThemes(internal, code, options),\n codeToTokens: (code, options) => codeToTokens(internal, code, options),\n codeToHast: (code, options) => codeToHast(internal, code, options),\n codeToHtml: (code, options) => codeToHtml(internal, code, options),\n ...internal,\n getInternalContext: () => internal,\n };\n}\nfunction makeSingletonHighlighterCore(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighterCore(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || [],\n });\n return _shiki;\n }\n else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...(options.themes || [])),\n s.loadLanguage(...(options.langs || [])),\n ]);\n return s;\n }\n }\n return getSingletonHighlighterCore;\n}\nconst getSingletonHighlighterCore = /* @__PURE__ */ makeSingletonHighlighterCore(createHighlighterCore);\n/**\n * @deprecated Use `createHighlighterCore` or `getSingletonHighlighterCore` instead.\n */\n/* v8 ignore next 5 */\nfunction getHighlighterCore(options = {}) {\n // TODO: next: console.warn('`getHighlighterCore` is deprecated. Use `createHighlighterCore` or `getSingletonHighlighterCore` instead.')\n return createHighlighterCore(options);\n}\n\n/**\n * Create a `createHighlighter` function with bundled themes and languages.\n *\n * @param bundledLanguages\n * @param bundledThemes\n * @param loadWasm\n */\nfunction createdBundledHighlighter(bundledLanguages, bundledThemes, loadWasm) {\n async function createHighlighter(options) {\n function resolveLang(lang) {\n if (typeof lang === 'string') {\n if (isSpecialLang(lang))\n return [];\n const bundle = bundledLanguages[lang];\n if (!bundle)\n throw new ShikiError(`Language \\`${lang}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return lang;\n }\n function resolveTheme(theme) {\n if (isSpecialTheme(theme))\n return 'none';\n if (typeof theme === 'string') {\n const bundle = bundledThemes[theme];\n if (!bundle)\n throw new ShikiError(`Theme \\`${theme}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return theme;\n }\n const _themes = (options.themes ?? []).map(i => resolveTheme(i));\n const langs = (options.langs ?? [])\n .map(i => resolveLang(i));\n const core = await createHighlighterCore({\n ...options,\n themes: _themes,\n langs,\n loadWasm,\n });\n return {\n ...core,\n loadLanguage(...langs) {\n return core.loadLanguage(...langs.map(resolveLang));\n },\n loadTheme(...themes) {\n return core.loadTheme(...themes.map(resolveTheme));\n },\n };\n }\n return createHighlighter;\n}\nfunction makeSingletonHighlighter(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighter(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || [],\n });\n return _shiki;\n }\n else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...(options.themes || [])),\n s.loadLanguage(...(options.langs || [])),\n ]);\n return s;\n }\n }\n return getSingletonHighlighter;\n}\nfunction createSingletonShorthands(createHighlighter) {\n const getSingletonHighlighter = makeSingletonHighlighter(createHighlighter);\n return {\n getSingletonHighlighter(options) {\n return getSingletonHighlighter(options);\n },\n async codeToHtml(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToHtml(code, options);\n },\n async codeToHast(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToHast(code, options);\n },\n async codeToTokens(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToTokens(code, options);\n },\n async codeToTokensBase(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme],\n });\n return shiki.codeToTokensBase(code, options);\n },\n async codeToTokensWithThemes(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: Object.values(options.themes).filter(Boolean),\n });\n return shiki.codeToTokensWithThemes(code, options);\n },\n async getLastGrammarState(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme],\n });\n return shiki.getLastGrammarState(code, options);\n },\n };\n}\n\nexport { FontStyle, ShikiError, addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighterCore, createPositionConverter, createShikiInternal, createSingletonShorthands, createdBundledHighlighter, getHighlighterCore, getShikiInternal, getSingletonHighlighterCore, getTokenStyleObject, toHtml as hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, loadWasm, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeTheme, resolveColorReplacements, setDefaultWasmLoader, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations };\n","import { bundledLanguages } from './langs.mjs';\nexport { bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo } from './langs.mjs';\nimport { g as getWasmInlined } from './chunks/wasm-dynamic.mjs';\nimport { bundledThemes } from './themes.mjs';\nexport { bundledThemesInfo } from './themes.mjs';\nimport { createdBundledHighlighter, createSingletonShorthands } from '@shikijs/core';\nexport * from '@shikijs/core';\nexport { createCssVariablesTheme } from './theme-css-variables.mjs';\n\nconst createHighlighter = /* @__PURE__ */ createdBundledHighlighter(\n bundledLanguages,\n bundledThemes,\n getWasmInlined\n);\nconst {\n codeToHtml,\n codeToHast,\n codeToTokens,\n codeToTokensBase,\n codeToTokensWithThemes,\n getSingletonHighlighter,\n getLastGrammarState\n} = /* @__PURE__ */ createSingletonShorthands(\n createHighlighter\n);\nconst getHighlighter = (options) => {\n return createHighlighter(options);\n};\n\nexport { bundledLanguages, bundledThemes, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighter, getHighlighter, getLastGrammarState, getSingletonHighlighter, getWasmInlined };\n","const bundledLanguagesInfo = [\n {\n \"id\": \"abap\",\n \"name\": \"ABAP\",\n \"import\": () => import('./langs/abap.mjs')\n },\n {\n \"id\": \"actionscript-3\",\n \"name\": \"ActionScript\",\n \"import\": () => import('./langs/actionscript-3.mjs')\n },\n {\n \"id\": \"ada\",\n \"name\": \"Ada\",\n \"import\": () => import('./langs/ada.mjs')\n },\n {\n \"id\": \"angular-html\",\n \"name\": \"Angular HTML\",\n \"import\": () => import('./langs/angular-html.mjs')\n },\n {\n \"id\": \"angular-ts\",\n \"name\": \"Angular TypeScript\",\n \"import\": () => import('./langs/angular-ts.mjs')\n },\n {\n \"id\": \"apache\",\n \"name\": \"Apache Conf\",\n \"import\": () => import('./langs/apache.mjs')\n },\n {\n \"id\": \"apex\",\n \"name\": \"Apex\",\n \"import\": () => import('./langs/apex.mjs')\n },\n {\n \"id\": \"apl\",\n \"name\": \"APL\",\n \"import\": () => import('./langs/apl.mjs')\n },\n {\n \"id\": \"applescript\",\n \"name\": \"AppleScript\",\n \"import\": () => import('./langs/applescript.mjs')\n },\n {\n \"id\": \"ara\",\n \"name\": \"Ara\",\n \"import\": () => import('./langs/ara.mjs')\n },\n {\n \"id\": \"asciidoc\",\n \"name\": \"AsciiDoc\",\n \"aliases\": [\n \"adoc\"\n ],\n \"import\": () => import('./langs/asciidoc.mjs')\n },\n {\n \"id\": \"asm\",\n \"name\": \"Assembly\",\n \"import\": () => import('./langs/asm.mjs')\n },\n {\n \"id\": \"astro\",\n \"name\": \"Astro\",\n \"import\": () => import('./langs/astro.mjs')\n },\n {\n \"id\": \"awk\",\n \"name\": \"AWK\",\n \"import\": () => import('./langs/awk.mjs')\n },\n {\n \"id\": \"ballerina\",\n \"name\": \"Ballerina\",\n \"import\": () => import('./langs/ballerina.mjs')\n },\n {\n \"id\": \"bat\",\n \"name\": \"Batch File\",\n \"aliases\": [\n \"batch\"\n ],\n \"import\": () => import('./langs/bat.mjs')\n },\n {\n \"id\": \"beancount\",\n \"name\": \"Beancount\",\n \"import\": () => import('./langs/beancount.mjs')\n },\n {\n \"id\": \"berry\",\n \"name\": \"Berry\",\n \"aliases\": [\n \"be\"\n ],\n \"import\": () => import('./langs/berry.mjs')\n },\n {\n \"id\": \"bibtex\",\n \"name\": \"BibTeX\",\n \"import\": () => import('./langs/bibtex.mjs')\n },\n {\n \"id\": \"bicep\",\n \"name\": \"Bicep\",\n \"import\": () => import('./langs/bicep.mjs')\n },\n {\n \"id\": \"blade\",\n \"name\": \"Blade\",\n \"import\": () => import('./langs/blade.mjs')\n },\n {\n \"id\": \"c\",\n \"name\": \"C\",\n \"import\": () => import('./langs/c.mjs')\n },\n {\n \"id\": \"cadence\",\n \"name\": \"Cadence\",\n \"aliases\": [\n \"cdc\"\n ],\n \"import\": () => import('./langs/cadence.mjs')\n },\n {\n \"id\": \"clarity\",\n \"name\": \"Clarity\",\n \"import\": () => import('./langs/clarity.mjs')\n },\n {\n \"id\": \"clojure\",\n \"name\": \"Clojure\",\n \"aliases\": [\n \"clj\"\n ],\n \"import\": () => import('./langs/clojure.mjs')\n },\n {\n \"id\": \"cmake\",\n \"name\": \"CMake\",\n \"import\": () => import('./langs/cmake.mjs')\n },\n {\n \"id\": \"cobol\",\n \"name\": \"COBOL\",\n \"import\": () => import('./langs/cobol.mjs')\n },\n {\n \"id\": \"codeowners\",\n \"name\": \"CODEOWNERS\",\n \"import\": () => import('./langs/codeowners.mjs')\n },\n {\n \"id\": \"codeql\",\n \"name\": \"CodeQL\",\n \"aliases\": [\n \"ql\"\n ],\n \"import\": () => import('./langs/codeql.mjs')\n },\n {\n \"id\": \"coffee\",\n \"name\": \"CoffeeScript\",\n \"aliases\": [\n \"coffeescript\"\n ],\n \"import\": () => import('./langs/coffee.mjs')\n },\n {\n \"id\": \"common-lisp\",\n \"name\": \"Common Lisp\",\n \"aliases\": [\n \"lisp\"\n ],\n \"import\": () => import('./langs/common-lisp.mjs')\n },\n {\n \"id\": \"cpp\",\n \"name\": \"C++\",\n \"aliases\": [\n \"c++\"\n ],\n \"import\": () => import('./langs/cpp.mjs')\n },\n {\n \"id\": \"crystal\",\n \"name\": \"Crystal\",\n \"import\": () => import('./langs/crystal.mjs')\n },\n {\n \"id\": \"csharp\",\n \"name\": \"C#\",\n \"aliases\": [\n \"c#\",\n \"cs\"\n ],\n \"import\": () => import('./langs/csharp.mjs')\n },\n {\n \"id\": \"css\",\n \"name\": \"CSS\",\n \"import\": () => import('./langs/css.mjs')\n },\n {\n \"id\": \"csv\",\n \"name\": \"CSV\",\n \"import\": () => import('./langs/csv.mjs')\n },\n {\n \"id\": \"cue\",\n \"name\": \"CUE\",\n \"import\": () => import('./langs/cue.mjs')\n },\n {\n \"id\": \"cypher\",\n \"name\": \"Cypher\",\n \"aliases\": [\n \"cql\"\n ],\n \"import\": () => import('./langs/cypher.mjs')\n },\n {\n \"id\": \"d\",\n \"name\": \"D\",\n \"import\": () => import('./langs/d.mjs')\n },\n {\n \"id\": \"dart\",\n \"name\": \"Dart\",\n \"import\": () => import('./langs/dart.mjs')\n },\n {\n \"id\": \"dax\",\n \"name\": \"DAX\",\n \"import\": () => import('./langs/dax.mjs')\n },\n {\n \"id\": \"desktop\",\n \"name\": \"Desktop\",\n \"import\": () => import('./langs/desktop.mjs')\n },\n {\n \"id\": \"diff\",\n \"name\": \"Diff\",\n \"import\": () => import('./langs/diff.mjs')\n },\n {\n \"id\": \"docker\",\n \"name\": \"Dockerfile\",\n \"aliases\": [\n \"dockerfile\"\n ],\n \"import\": () => import('./langs/docker.mjs')\n },\n {\n \"id\": \"dotenv\",\n \"name\": \"dotEnv\",\n \"import\": () => import('./langs/dotenv.mjs')\n },\n {\n \"id\": \"dream-maker\",\n \"name\": \"Dream Maker\",\n \"import\": () => import('./langs/dream-maker.mjs')\n },\n {\n \"id\": \"edge\",\n \"name\": \"Edge\",\n \"import\": () => import('./langs/edge.mjs')\n },\n {\n \"id\": \"elixir\",\n \"name\": \"Elixir\",\n \"import\": () => import('./langs/elixir.mjs')\n },\n {\n \"id\": \"elm\",\n \"name\": \"Elm\",\n \"import\": () => import('./langs/elm.mjs')\n },\n {\n \"id\": \"emacs-lisp\",\n \"name\": \"Emacs Lisp\",\n \"aliases\": [\n \"elisp\"\n ],\n \"import\": () => import('./langs/emacs-lisp.mjs')\n },\n {\n \"id\": \"erb\",\n \"name\": \"ERB\",\n \"import\": () => import('./langs/erb.mjs')\n },\n {\n \"id\": \"erlang\",\n \"name\": \"Erlang\",\n \"aliases\": [\n \"erl\"\n ],\n \"import\": () => import('./langs/erlang.mjs')\n },\n {\n \"id\": \"fennel\",\n \"name\": \"Fennel\",\n \"import\": () => import('./langs/fennel.mjs')\n },\n {\n \"id\": \"fish\",\n \"name\": \"Fish\",\n \"import\": () => import('./langs/fish.mjs')\n },\n {\n \"id\": \"fluent\",\n \"name\": \"Fluent\",\n \"aliases\": [\n \"ftl\"\n ],\n \"import\": () => import('./langs/fluent.mjs')\n },\n {\n \"id\": \"fortran-fixed-form\",\n \"name\": \"Fortran (Fixed Form)\",\n \"aliases\": [\n \"f\",\n \"for\",\n \"f77\"\n ],\n \"import\": () => import('./langs/fortran-fixed-form.mjs')\n },\n {\n \"id\": \"fortran-free-form\",\n \"name\": \"Fortran (Free Form)\",\n \"aliases\": [\n \"f90\",\n \"f95\",\n \"f03\",\n \"f08\",\n \"f18\"\n ],\n \"import\": () => import('./langs/fortran-free-form.mjs')\n },\n {\n \"id\": \"fsharp\",\n \"name\": \"F#\",\n \"aliases\": [\n \"f#\",\n \"fs\"\n ],\n \"import\": () => import('./langs/fsharp.mjs')\n },\n {\n \"id\": \"gdresource\",\n \"name\": \"GDResource\",\n \"import\": () => import('./langs/gdresource.mjs')\n },\n {\n \"id\": \"gdscript\",\n \"name\": \"GDScript\",\n \"import\": () => import('./langs/gdscript.mjs')\n },\n {\n \"id\": \"gdshader\",\n \"name\": \"GDShader\",\n \"import\": () => import('./langs/gdshader.mjs')\n },\n {\n \"id\": \"genie\",\n \"name\": \"Genie\",\n \"import\": () => import('./langs/genie.mjs')\n },\n {\n \"id\": \"gherkin\",\n \"name\": \"Gherkin\",\n \"import\": () => import('./langs/gherkin.mjs')\n },\n {\n \"id\": \"git-commit\",\n \"name\": \"Git Commit Message\",\n \"import\": () => import('./langs/git-commit.mjs')\n },\n {\n \"id\": \"git-rebase\",\n \"name\": \"Git Rebase Message\",\n \"import\": () => import('./langs/git-rebase.mjs')\n },\n {\n \"id\": \"gleam\",\n \"name\": \"Gleam\",\n \"import\": () => import('./langs/gleam.mjs')\n },\n {\n \"id\": \"glimmer-js\",\n \"name\": \"Glimmer JS\",\n \"aliases\": [\n \"gjs\"\n ],\n \"import\": () => import('./langs/glimmer-js.mjs')\n },\n {\n \"id\": \"glimmer-ts\",\n \"name\": \"Glimmer TS\",\n \"aliases\": [\n \"gts\"\n ],\n \"import\": () => import('./langs/glimmer-ts.mjs')\n },\n {\n \"id\": \"glsl\",\n \"name\": \"GLSL\",\n \"import\": () => import('./langs/glsl.mjs')\n },\n {\n \"id\": \"gnuplot\",\n \"name\": \"Gnuplot\",\n \"import\": () => import('./langs/gnuplot.mjs')\n },\n {\n \"id\": \"go\",\n \"name\": \"Go\",\n \"import\": () => import('./langs/go.mjs')\n },\n {\n \"id\": \"graphql\",\n \"name\": \"GraphQL\",\n \"aliases\": [\n \"gql\"\n ],\n \"import\": () => import('./langs/graphql.mjs')\n },\n {\n \"id\": \"groovy\",\n \"name\": \"Groovy\",\n \"import\": () => import('./langs/groovy.mjs')\n },\n {\n \"id\": \"hack\",\n \"name\": \"Hack\",\n \"import\": () => import('./langs/hack.mjs')\n },\n {\n \"id\": \"haml\",\n \"name\": \"Ruby Haml\",\n \"import\": () => import('./langs/haml.mjs')\n },\n {\n \"id\": \"handlebars\",\n \"name\": \"Handlebars\",\n \"aliases\": [\n \"hbs\"\n ],\n \"import\": () => import('./langs/handlebars.mjs')\n },\n {\n \"id\": \"haskell\",\n \"name\": \"Haskell\",\n \"aliases\": [\n \"hs\"\n ],\n \"import\": () => import('./langs/haskell.mjs')\n },\n {\n \"id\": \"haxe\",\n \"name\": \"Haxe\",\n \"import\": () => import('./langs/haxe.mjs')\n },\n {\n \"id\": \"hcl\",\n \"name\": \"HashiCorp HCL\",\n \"import\": () => import('./langs/hcl.mjs')\n },\n {\n \"id\": \"hjson\",\n \"name\": \"Hjson\",\n \"import\": () => import('./langs/hjson.mjs')\n },\n {\n \"id\": \"hlsl\",\n \"name\": \"HLSL\",\n \"import\": () => import('./langs/hlsl.mjs')\n },\n {\n \"id\": \"html\",\n \"name\": \"HTML\",\n \"import\": () => import('./langs/html.mjs')\n },\n {\n \"id\": \"html-derivative\",\n \"name\": \"HTML (Derivative)\",\n \"import\": () => import('./langs/html-derivative.mjs')\n },\n {\n \"id\": \"http\",\n \"name\": \"HTTP\",\n \"import\": () => import('./langs/http.mjs')\n },\n {\n \"id\": \"hxml\",\n \"name\": \"HXML\",\n \"import\": () => import('./langs/hxml.mjs')\n },\n {\n \"id\": \"hy\",\n \"name\": \"Hy\",\n \"import\": () => import('./langs/hy.mjs')\n },\n {\n \"id\": \"imba\",\n \"name\": \"Imba\",\n \"import\": () => import('./langs/imba.mjs')\n },\n {\n \"id\": \"ini\",\n \"name\": \"INI\",\n \"aliases\": [\n \"properties\"\n ],\n \"import\": () => import('./langs/ini.mjs')\n },\n {\n \"id\": \"java\",\n \"name\": \"Java\",\n \"import\": () => import('./langs/java.mjs')\n },\n {\n \"id\": \"javascript\",\n \"name\": \"JavaScript\",\n \"aliases\": [\n \"js\"\n ],\n \"import\": () => import('./langs/javascript.mjs')\n },\n {\n \"id\": \"jinja\",\n \"name\": \"Jinja\",\n \"import\": () => import('./langs/jinja.mjs')\n },\n {\n \"id\": \"jison\",\n \"name\": \"Jison\",\n \"import\": () => import('./langs/jison.mjs')\n },\n {\n \"id\": \"json\",\n \"name\": \"JSON\",\n \"import\": () => import('./langs/json.mjs')\n },\n {\n \"id\": \"json5\",\n \"name\": \"JSON5\",\n \"import\": () => import('./langs/json5.mjs')\n },\n {\n \"id\": \"jsonc\",\n \"name\": \"JSON with Comments\",\n \"import\": () => import('./langs/jsonc.mjs')\n },\n {\n \"id\": \"jsonl\",\n \"name\": \"JSON Lines\",\n \"import\": () => import('./langs/jsonl.mjs')\n },\n {\n \"id\": \"jsonnet\",\n \"name\": \"Jsonnet\",\n \"import\": () => import('./langs/jsonnet.mjs')\n },\n {\n \"id\": \"jssm\",\n \"name\": \"JSSM\",\n \"aliases\": [\n \"fsl\"\n ],\n \"import\": () => import('./langs/jssm.mjs')\n },\n {\n \"id\": \"jsx\",\n \"name\": \"JSX\",\n \"import\": () => import('./langs/jsx.mjs')\n },\n {\n \"id\": \"julia\",\n \"name\": \"Julia\",\n \"aliases\": [\n \"jl\"\n ],\n \"import\": () => import('./langs/julia.mjs')\n },\n {\n \"id\": \"kotlin\",\n \"name\": \"Kotlin\",\n \"aliases\": [\n \"kt\",\n \"kts\"\n ],\n \"import\": () => import('./langs/kotlin.mjs')\n },\n {\n \"id\": \"kusto\",\n \"name\": \"Kusto\",\n \"aliases\": [\n \"kql\"\n ],\n \"import\": () => import('./langs/kusto.mjs')\n },\n {\n \"id\": \"latex\",\n \"name\": \"LaTeX\",\n \"import\": () => import('./langs/latex.mjs')\n },\n {\n \"id\": \"lean\",\n \"name\": \"Lean 4\",\n \"aliases\": [\n \"lean4\"\n ],\n \"import\": () => import('./langs/lean.mjs')\n },\n {\n \"id\": \"less\",\n \"name\": \"Less\",\n \"import\": () => import('./langs/less.mjs')\n },\n {\n \"id\": \"liquid\",\n \"name\": \"Liquid\",\n \"import\": () => import('./langs/liquid.mjs')\n },\n {\n \"id\": \"log\",\n \"name\": \"Log file\",\n \"import\": () => import('./langs/log.mjs')\n },\n {\n \"id\": \"logo\",\n \"name\": \"Logo\",\n \"import\": () => import('./langs/logo.mjs')\n },\n {\n \"id\": \"lua\",\n \"name\": \"Lua\",\n \"import\": () => import('./langs/lua.mjs')\n },\n {\n \"id\": \"luau\",\n \"name\": \"Luau\",\n \"import\": () => import('./langs/luau.mjs')\n },\n {\n \"id\": \"make\",\n \"name\": \"Makefile\",\n \"aliases\": [\n \"makefile\"\n ],\n \"import\": () => import('./langs/make.mjs')\n },\n {\n \"id\": \"markdown\",\n \"name\": \"Markdown\",\n \"aliases\": [\n \"md\"\n ],\n \"import\": () => import('./langs/markdown.mjs')\n },\n {\n \"id\": \"marko\",\n \"name\": \"Marko\",\n \"import\": () => import('./langs/marko.mjs')\n },\n {\n \"id\": \"matlab\",\n \"name\": \"MATLAB\",\n \"import\": () => import('./langs/matlab.mjs')\n },\n {\n \"id\": \"mdc\",\n \"name\": \"MDC\",\n \"import\": () => import('./langs/mdc.mjs')\n },\n {\n \"id\": \"mdx\",\n \"name\": \"MDX\",\n \"import\": () => import('./langs/mdx.mjs')\n },\n {\n \"id\": \"mermaid\",\n \"name\": \"Mermaid\",\n \"import\": () => import('./langs/mermaid.mjs')\n },\n {\n \"id\": \"mojo\",\n \"name\": \"Mojo\",\n \"import\": () => import('./langs/mojo.mjs')\n },\n {\n \"id\": \"move\",\n \"name\": \"Move\",\n \"import\": () => import('./langs/move.mjs')\n },\n {\n \"id\": \"narrat\",\n \"name\": \"Narrat Language\",\n \"aliases\": [\n \"nar\"\n ],\n \"import\": () => import('./langs/narrat.mjs')\n },\n {\n \"id\": \"nextflow\",\n \"name\": \"Nextflow\",\n \"aliases\": [\n \"nf\"\n ],\n \"import\": () => import('./langs/nextflow.mjs')\n },\n {\n \"id\": \"nginx\",\n \"name\": \"Nginx\",\n \"import\": () => import('./langs/nginx.mjs')\n },\n {\n \"id\": \"nim\",\n \"name\": \"Nim\",\n \"import\": () => import('./langs/nim.mjs')\n },\n {\n \"id\": \"nix\",\n \"name\": \"Nix\",\n \"import\": () => import('./langs/nix.mjs')\n },\n {\n \"id\": \"nushell\",\n \"name\": \"nushell\",\n \"aliases\": [\n \"nu\"\n ],\n \"import\": () => import('./langs/nushell.mjs')\n },\n {\n \"id\": \"objective-c\",\n \"name\": \"Objective-C\",\n \"aliases\": [\n \"objc\"\n ],\n \"import\": () => import('./langs/objective-c.mjs')\n },\n {\n \"id\": \"objective-cpp\",\n \"name\": \"Objective-C++\",\n \"import\": () => import('./langs/objective-cpp.mjs')\n },\n {\n \"id\": \"ocaml\",\n \"name\": \"OCaml\",\n \"import\": () => import('./langs/ocaml.mjs')\n },\n {\n \"id\": \"pascal\",\n \"name\": \"Pascal\",\n \"import\": () => import('./langs/pascal.mjs')\n },\n {\n \"id\": \"perl\",\n \"name\": \"Perl\",\n \"import\": () => import('./langs/perl.mjs')\n },\n {\n \"id\": \"php\",\n \"name\": \"PHP\",\n \"import\": () => import('./langs/php.mjs')\n },\n {\n \"id\": \"plsql\",\n \"name\": \"PL/SQL\",\n \"import\": () => import('./langs/plsql.mjs')\n },\n {\n \"id\": \"po\",\n \"name\": \"Gettext PO\",\n \"aliases\": [\n \"pot\",\n \"potx\"\n ],\n \"import\": () => import('./langs/po.mjs')\n },\n {\n \"id\": \"postcss\",\n \"name\": \"PostCSS\",\n \"import\": () => import('./langs/postcss.mjs')\n },\n {\n \"id\": \"powerquery\",\n \"name\": \"PowerQuery\",\n \"import\": () => import('./langs/powerquery.mjs')\n },\n {\n \"id\": \"powershell\",\n \"name\": \"PowerShell\",\n \"aliases\": [\n \"ps\",\n \"ps1\"\n ],\n \"import\": () => import('./langs/powershell.mjs')\n },\n {\n \"id\": \"prisma\",\n \"name\": \"Prisma\",\n \"import\": () => import('./langs/prisma.mjs')\n },\n {\n \"id\": \"prolog\",\n \"name\": \"Prolog\",\n \"import\": () => import('./langs/prolog.mjs')\n },\n {\n \"id\": \"proto\",\n \"name\": \"Protocol Buffer 3\",\n \"import\": () => import('./langs/proto.mjs')\n },\n {\n \"id\": \"pug\",\n \"name\": \"Pug\",\n \"aliases\": [\n \"jade\"\n ],\n \"import\": () => import('./langs/pug.mjs')\n },\n {\n \"id\": \"puppet\",\n \"name\": \"Puppet\",\n \"import\": () => import('./langs/puppet.mjs')\n },\n {\n \"id\": \"purescript\",\n \"name\": \"PureScript\",\n \"import\": () => import('./langs/purescript.mjs')\n },\n {\n \"id\": \"python\",\n \"name\": \"Python\",\n \"aliases\": [\n \"py\"\n ],\n \"import\": () => import('./langs/python.mjs')\n },\n {\n \"id\": \"qml\",\n \"name\": \"QML\",\n \"import\": () => import('./langs/qml.mjs')\n },\n {\n \"id\": \"qmldir\",\n \"name\": \"QML Directory\",\n \"import\": () => import('./langs/qmldir.mjs')\n },\n {\n \"id\": \"qss\",\n \"name\": \"Qt Style Sheets\",\n \"import\": () => import('./langs/qss.mjs')\n },\n {\n \"id\": \"r\",\n \"name\": \"R\",\n \"import\": () => import('./langs/r.mjs')\n },\n {\n \"id\": \"racket\",\n \"name\": \"Racket\",\n \"import\": () => import('./langs/racket.mjs')\n },\n {\n \"id\": \"raku\",\n \"name\": \"Raku\",\n \"aliases\": [\n \"perl6\"\n ],\n \"import\": () => import('./langs/raku.mjs')\n },\n {\n \"id\": \"razor\",\n \"name\": \"ASP.NET Razor\",\n \"import\": () => import('./langs/razor.mjs')\n },\n {\n \"id\": \"reg\",\n \"name\": \"Windows Registry Script\",\n \"import\": () => import('./langs/reg.mjs')\n },\n {\n \"id\": \"regexp\",\n \"name\": \"RegExp\",\n \"aliases\": [\n \"regex\"\n ],\n \"import\": () => import('./langs/regexp.mjs')\n },\n {\n \"id\": \"rel\",\n \"name\": \"Rel\",\n \"import\": () => import('./langs/rel.mjs')\n },\n {\n \"id\": \"riscv\",\n \"name\": \"RISC-V\",\n \"import\": () => import('./langs/riscv.mjs')\n },\n {\n \"id\": \"rst\",\n \"name\": \"reStructuredText\",\n \"import\": () => import('./langs/rst.mjs')\n },\n {\n \"id\": \"ruby\",\n \"name\": \"Ruby\",\n \"aliases\": [\n \"rb\"\n ],\n \"import\": () => import('./langs/ruby.mjs')\n },\n {\n \"id\": \"rust\",\n \"name\": \"Rust\",\n \"aliases\": [\n \"rs\"\n ],\n \"import\": () => import('./langs/rust.mjs')\n },\n {\n \"id\": \"sas\",\n \"name\": \"SAS\",\n \"import\": () => import('./langs/sas.mjs')\n },\n {\n \"id\": \"sass\",\n \"name\": \"Sass\",\n \"import\": () => import('./langs/sass.mjs')\n },\n {\n \"id\": \"scala\",\n \"name\": \"Scala\",\n \"import\": () => import('./langs/scala.mjs')\n },\n {\n \"id\": \"scheme\",\n \"name\": \"Scheme\",\n \"import\": () => import('./langs/scheme.mjs')\n },\n {\n \"id\": \"scss\",\n \"name\": \"SCSS\",\n \"import\": () => import('./langs/scss.mjs')\n },\n {\n \"id\": \"shaderlab\",\n \"name\": \"ShaderLab\",\n \"aliases\": [\n \"shader\"\n ],\n \"import\": () => import('./langs/shaderlab.mjs')\n },\n {\n \"id\": \"shellscript\",\n \"name\": \"Shell\",\n \"aliases\": [\n \"bash\",\n \"sh\",\n \"shell\",\n \"zsh\"\n ],\n \"import\": () => import('./langs/shellscript.mjs')\n },\n {\n \"id\": \"shellsession\",\n \"name\": \"Shell Session\",\n \"aliases\": [\n \"console\"\n ],\n \"import\": () => import('./langs/shellsession.mjs')\n },\n {\n \"id\": \"smalltalk\",\n \"name\": \"Smalltalk\",\n \"import\": () => import('./langs/smalltalk.mjs')\n },\n {\n \"id\": \"solidity\",\n \"name\": \"Solidity\",\n \"import\": () => import('./langs/solidity.mjs')\n },\n {\n \"id\": \"soy\",\n \"name\": \"Closure Templates\",\n \"aliases\": [\n \"closure-templates\"\n ],\n \"import\": () => import('./langs/soy.mjs')\n },\n {\n \"id\": \"sparql\",\n \"name\": \"SPARQL\",\n \"import\": () => import('./langs/sparql.mjs')\n },\n {\n \"id\": \"splunk\",\n \"name\": \"Splunk Query Language\",\n \"aliases\": [\n \"spl\"\n ],\n \"import\": () => import('./langs/splunk.mjs')\n },\n {\n \"id\": \"sql\",\n \"name\": \"SQL\",\n \"import\": () => import('./langs/sql.mjs')\n },\n {\n \"id\": \"ssh-config\",\n \"name\": \"SSH Config\",\n \"import\": () => import('./langs/ssh-config.mjs')\n },\n {\n \"id\": \"stata\",\n \"name\": \"Stata\",\n \"import\": () => import('./langs/stata.mjs')\n },\n {\n \"id\": \"stylus\",\n \"name\": \"Stylus\",\n \"aliases\": [\n \"styl\"\n ],\n \"import\": () => import('./langs/stylus.mjs')\n },\n {\n \"id\": \"svelte\",\n \"name\": \"Svelte\",\n \"import\": () => import('./langs/svelte.mjs')\n },\n {\n \"id\": \"swift\",\n \"name\": \"Swift\",\n \"import\": () => import('./langs/swift.mjs')\n },\n {\n \"id\": \"system-verilog\",\n \"name\": \"SystemVerilog\",\n \"import\": () => import('./langs/system-verilog.mjs')\n },\n {\n \"id\": \"systemd\",\n \"name\": \"Systemd Units\",\n \"import\": () => import('./langs/systemd.mjs')\n },\n {\n \"id\": \"tasl\",\n \"name\": \"Tasl\",\n \"import\": () => import('./langs/tasl.mjs')\n },\n {\n \"id\": \"tcl\",\n \"name\": \"Tcl\",\n \"import\": () => import('./langs/tcl.mjs')\n },\n {\n \"id\": \"templ\",\n \"name\": \"Templ\",\n \"import\": () => import('./langs/templ.mjs')\n },\n {\n \"id\": \"terraform\",\n \"name\": \"Terraform\",\n \"aliases\": [\n \"tf\",\n \"tfvars\"\n ],\n \"import\": () => import('./langs/terraform.mjs')\n },\n {\n \"id\": \"tex\",\n \"name\": \"TeX\",\n \"import\": () => import('./langs/tex.mjs')\n },\n {\n \"id\": \"toml\",\n \"name\": \"TOML\",\n \"import\": () => import('./langs/toml.mjs')\n },\n {\n \"id\": \"ts-tags\",\n \"name\": \"TypeScript with Tags\",\n \"aliases\": [\n \"lit\"\n ],\n \"import\": () => import('./langs/ts-tags.mjs')\n },\n {\n \"id\": \"tsv\",\n \"name\": \"TSV\",\n \"import\": () => import('./langs/tsv.mjs')\n },\n {\n \"id\": \"tsx\",\n \"name\": \"TSX\",\n \"import\": () => import('./langs/tsx.mjs')\n },\n {\n \"id\": \"turtle\",\n \"name\": \"Turtle\",\n \"import\": () => import('./langs/turtle.mjs')\n },\n {\n \"id\": \"twig\",\n \"name\": \"Twig\",\n \"import\": () => import('./langs/twig.mjs')\n },\n {\n \"id\": \"typescript\",\n \"name\": \"TypeScript\",\n \"aliases\": [\n \"ts\"\n ],\n \"import\": () => import('./langs/typescript.mjs')\n },\n {\n \"id\": \"typespec\",\n \"name\": \"TypeSpec\",\n \"aliases\": [\n \"tsp\"\n ],\n \"import\": () => import('./langs/typespec.mjs')\n },\n {\n \"id\": \"typst\",\n \"name\": \"Typst\",\n \"aliases\": [\n \"typ\"\n ],\n \"import\": () => import('./langs/typst.mjs')\n },\n {\n \"id\": \"v\",\n \"name\": \"V\",\n \"import\": () => import('./langs/v.mjs')\n },\n {\n \"id\": \"vala\",\n \"name\": \"Vala\",\n \"import\": () => import('./langs/vala.mjs')\n },\n {\n \"id\": \"vb\",\n \"name\": \"Visual Basic\",\n \"aliases\": [\n \"cmd\"\n ],\n \"import\": () => import('./langs/vb.mjs')\n },\n {\n \"id\": \"verilog\",\n \"name\": \"Verilog\",\n \"import\": () => import('./langs/verilog.mjs')\n },\n {\n \"id\": \"vhdl\",\n \"name\": \"VHDL\",\n \"import\": () => import('./langs/vhdl.mjs')\n },\n {\n \"id\": \"viml\",\n \"name\": \"Vim Script\",\n \"aliases\": [\n \"vim\",\n \"vimscript\"\n ],\n \"import\": () => import('./langs/viml.mjs')\n },\n {\n \"id\": \"vue\",\n \"name\": \"Vue\",\n \"import\": () => import('./langs/vue.mjs')\n },\n {\n \"id\": \"vue-html\",\n \"name\": \"Vue HTML\",\n \"import\": () => import('./langs/vue-html.mjs')\n },\n {\n \"id\": \"vyper\",\n \"name\": \"Vyper\",\n \"aliases\": [\n \"vy\"\n ],\n \"import\": () => import('./langs/vyper.mjs')\n },\n {\n \"id\": \"wasm\",\n \"name\": \"WebAssembly\",\n \"import\": () => import('./langs/wasm.mjs')\n },\n {\n \"id\": \"wenyan\",\n \"name\": \"Wenyan\",\n \"aliases\": [\n \"\\u6587\\u8A00\"\n ],\n \"import\": () => import('./langs/wenyan.mjs')\n },\n {\n \"id\": \"wgsl\",\n \"name\": \"WGSL\",\n \"import\": () => import('./langs/wgsl.mjs')\n },\n {\n \"id\": \"wikitext\",\n \"name\": \"Wikitext\",\n \"aliases\": [\n \"mediawiki\",\n \"wiki\"\n ],\n \"import\": () => import('./langs/wikitext.mjs')\n },\n {\n \"id\": \"wolfram\",\n \"name\": \"Wolfram\",\n \"aliases\": [\n \"wl\"\n ],\n \"import\": () => import('./langs/wolfram.mjs')\n },\n {\n \"id\": \"xml\",\n \"name\": \"XML\",\n \"import\": () => import('./langs/xml.mjs')\n },\n {\n \"id\": \"xsl\",\n \"name\": \"XSL\",\n \"import\": () => import('./langs/xsl.mjs')\n },\n {\n \"id\": \"yaml\",\n \"name\": \"YAML\",\n \"aliases\": [\n \"yml\"\n ],\n \"import\": () => import('./langs/yaml.mjs')\n },\n {\n \"id\": \"zenscript\",\n \"name\": \"ZenScript\",\n \"import\": () => import('./langs/zenscript.mjs')\n },\n {\n \"id\": \"zig\",\n \"name\": \"Zig\",\n \"import\": () => import('./langs/zig.mjs')\n }\n];\nconst bundledLanguagesBase = Object.fromEntries(bundledLanguagesInfo.map((i) => [i.id, i.import]));\nconst bundledLanguagesAlias = Object.fromEntries(bundledLanguagesInfo.flatMap((i) => i.aliases?.map((a) => [a, i.import]) || []));\nconst bundledLanguages = {\n ...bundledLanguagesBase,\n ...bundledLanguagesAlias\n};\n\nexport { bundledLanguages, bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo };\n","const getWasmInlined = async (info) => {\n return import('shiki/wasm').then((wasm) => wasm.default(info));\n};\n\nexport { getWasmInlined as g };\n","const bundledThemesInfo = [\n {\n \"id\": \"andromeeda\",\n \"displayName\": \"Andromeeda\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/andromeeda.mjs')\n },\n {\n \"id\": \"aurora-x\",\n \"displayName\": \"Aurora X\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/aurora-x.mjs')\n },\n {\n \"id\": \"ayu-dark\",\n \"displayName\": \"Ayu Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/ayu-dark.mjs')\n },\n {\n \"id\": \"catppuccin-frappe\",\n \"displayName\": \"Catppuccin Frapp\\xE9\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-frappe.mjs')\n },\n {\n \"id\": \"catppuccin-latte\",\n \"displayName\": \"Catppuccin Latte\",\n \"type\": \"light\",\n \"import\": () => import('./themes/catppuccin-latte.mjs')\n },\n {\n \"id\": \"catppuccin-macchiato\",\n \"displayName\": \"Catppuccin Macchiato\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-macchiato.mjs')\n },\n {\n \"id\": \"catppuccin-mocha\",\n \"displayName\": \"Catppuccin Mocha\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-mocha.mjs')\n },\n {\n \"id\": \"dark-plus\",\n \"displayName\": \"Dark Plus\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dark-plus.mjs')\n },\n {\n \"id\": \"dracula\",\n \"displayName\": \"Dracula Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula.mjs')\n },\n {\n \"id\": \"dracula-soft\",\n \"displayName\": \"Dracula Theme Soft\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula-soft.mjs')\n },\n {\n \"id\": \"everforest-dark\",\n \"displayName\": \"Everforest Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/everforest-dark.mjs')\n },\n {\n \"id\": \"everforest-light\",\n \"displayName\": \"Everforest Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/everforest-light.mjs')\n },\n {\n \"id\": \"github-dark\",\n \"displayName\": \"GitHub Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark.mjs')\n },\n {\n \"id\": \"github-dark-default\",\n \"displayName\": \"GitHub Dark Default\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-default.mjs')\n },\n {\n \"id\": \"github-dark-dimmed\",\n \"displayName\": \"GitHub Dark Dimmed\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-dimmed.mjs')\n },\n {\n \"id\": \"github-light\",\n \"displayName\": \"GitHub Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light.mjs')\n },\n {\n \"id\": \"github-light-default\",\n \"displayName\": \"GitHub Light Default\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-default.mjs')\n },\n {\n \"id\": \"houston\",\n \"displayName\": \"Houston\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/houston.mjs')\n },\n {\n \"id\": \"laserwave\",\n \"displayName\": \"LaserWave\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/laserwave.mjs')\n },\n {\n \"id\": \"light-plus\",\n \"displayName\": \"Light Plus\",\n \"type\": \"light\",\n \"import\": () => import('./themes/light-plus.mjs')\n },\n {\n \"id\": \"material-theme\",\n \"displayName\": \"Material Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme.mjs')\n },\n {\n \"id\": \"material-theme-darker\",\n \"displayName\": \"Material Theme Darker\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-darker.mjs')\n },\n {\n \"id\": \"material-theme-lighter\",\n \"displayName\": \"Material Theme Lighter\",\n \"type\": \"light\",\n \"import\": () => import('./themes/material-theme-lighter.mjs')\n },\n {\n \"id\": \"material-theme-ocean\",\n \"displayName\": \"Material Theme Ocean\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-ocean.mjs')\n },\n {\n \"id\": \"material-theme-palenight\",\n \"displayName\": \"Material Theme Palenight\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-palenight.mjs')\n },\n {\n \"id\": \"min-dark\",\n \"displayName\": \"Min Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/min-dark.mjs')\n },\n {\n \"id\": \"min-light\",\n \"displayName\": \"Min Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/min-light.mjs')\n },\n {\n \"id\": \"monokai\",\n \"displayName\": \"Monokai\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/monokai.mjs')\n },\n {\n \"id\": \"night-owl\",\n \"displayName\": \"Night Owl\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/night-owl.mjs')\n },\n {\n \"id\": \"nord\",\n \"displayName\": \"Nord\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/nord.mjs')\n },\n {\n \"id\": \"one-dark-pro\",\n \"displayName\": \"One Dark Pro\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/one-dark-pro.mjs')\n },\n {\n \"id\": \"one-light\",\n \"displayName\": \"One Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/one-light.mjs')\n },\n {\n \"id\": \"poimandres\",\n \"displayName\": \"Poimandres\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/poimandres.mjs')\n },\n {\n \"id\": \"red\",\n \"displayName\": \"Red\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/red.mjs')\n },\n {\n \"id\": \"rose-pine\",\n \"displayName\": \"Ros\\xE9 Pine\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine.mjs')\n },\n {\n \"id\": \"rose-pine-dawn\",\n \"displayName\": \"Ros\\xE9 Pine Dawn\",\n \"type\": \"light\",\n \"import\": () => import('./themes/rose-pine-dawn.mjs')\n },\n {\n \"id\": \"rose-pine-moon\",\n \"displayName\": \"Ros\\xE9 Pine Moon\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine-moon.mjs')\n },\n {\n \"id\": \"slack-dark\",\n \"displayName\": \"Slack Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/slack-dark.mjs')\n },\n {\n \"id\": \"slack-ochin\",\n \"displayName\": \"Slack Ochin\",\n \"type\": \"light\",\n \"import\": () => import('./themes/slack-ochin.mjs')\n },\n {\n \"id\": \"snazzy-light\",\n \"displayName\": \"Snazzy Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/snazzy-light.mjs')\n },\n {\n \"id\": \"solarized-dark\",\n \"displayName\": \"Solarized Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/solarized-dark.mjs')\n },\n {\n \"id\": \"solarized-light\",\n \"displayName\": \"Solarized Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/solarized-light.mjs')\n },\n {\n \"id\": \"synthwave-84\",\n \"displayName\": \"Synthwave '84\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/synthwave-84.mjs')\n },\n {\n \"id\": \"tokyo-night\",\n \"displayName\": \"Tokyo Night\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/tokyo-night.mjs')\n },\n {\n \"id\": \"vesper\",\n \"displayName\": \"Vesper\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vesper.mjs')\n },\n {\n \"id\": \"vitesse-black\",\n \"displayName\": \"Vitesse Black\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-black.mjs')\n },\n {\n \"id\": \"vitesse-dark\",\n \"displayName\": \"Vitesse Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-dark.mjs')\n },\n {\n \"id\": \"vitesse-light\",\n \"displayName\": \"Vitesse Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/vitesse-light.mjs')\n }\n];\nconst bundledThemes = Object.fromEntries(bundledThemesInfo.map((i) => [i.id, i.import]));\n\nexport { bundledThemes, bundledThemesInfo };\n","var FontStyle;\n(function (FontStyle) {\n FontStyle[FontStyle[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle[FontStyle[\"None\"] = 0] = \"None\";\n FontStyle[FontStyle[\"Italic\"] = 1] = \"Italic\";\n FontStyle[FontStyle[\"Bold\"] = 2] = \"Bold\";\n FontStyle[FontStyle[\"Underline\"] = 4] = \"Underline\";\n})(FontStyle || (FontStyle = {}));\n\nexport { FontStyle };\n","/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html, property, CSSResultArray, TemplateResult, PropertyValueMap } from 'lit-element';\nimport { customElement, state } from 'lit/decorators.js';\nimport { styles } from './nile-highlighter.css';\nimport NileElement from '../internal/nile-element';\n\nimport { codeToHtml } from 'shiki'\nimport { ShikiTheme, ShikiLanguage } from './theme-list';\n\n\n/**\n * Nile highlighter component.\n *\n * @tag nile-highlighter\n *\n */\n@customElement('nile-highlighter')\nexport class NileHighlighter extends NileElement {\n\n\t@property({ type: String}) code = ``;\n\t\n\t@property({ type: String, reflect:true }) language : ShikiLanguage = 'javascript';\n\n\t@property({ type: String, reflect:true }) theme: ShikiTheme = 'min-light';\n\n\t@state() highlightedCode = '';\n\t\n\t/**\n\t * The styles for nile-highlighter\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t/* #endregion */\n\n\n\tprotected async updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>) {\n\t\tif (changedProperties.has('code') || changedProperties.has('language') || changedProperties.has('theme')) {\n\t\t\tthis.highlightedCode = await codeToHtml(this.code, {\n\t\t\t\tlang: this.language,\n\t\t\t\ttheme: this.theme\n\t\t\t})\n\t\t\tthis.requestUpdate();\n\t\t}\n\t}\n\t/* #region Methods */\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t\t\t<div class=\"code-container\" .innerHTML=${this.highlightedCode}></div>\n\t\t\t`;\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileHighlighter;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'nile-highlighter': NileHighlighter;\n\t}\n}"],"names":["createMatchers","selector","matchesName","results","tokenizer","input","regex","match","exec","next","res","newTokenizer","token","priority","length","charAt","console","log","matcher","parseConjunction","push","t","parseOperand","o","expressionToNegate","matcherInput","expressionInParents","matchers","some","parseInnerExpression","isIdentifier","identifiers","s","every","disposeOnigString","str","dispose","doClone","something","Array","isArray","arr","r","i","len","cloneArray","obj","key","cloneObj","mergeObjects","target","sources","forEach","source","basename","path","idx","lastIndexOf","substring","substr","strcmp","a","b","strArrCmp","len1","len2","isValidHexColor","hex","test","escapeRegExpCharacters","value","replace","collectReferencesOfReference","reference","baseGrammarScopeName","repo","result","selfGrammar","lookup","scopeName","Error","baseGrammar","TopLevelRuleReference","collectExternalReferencesInTopLevelRule","collectExternalReferencesInTopLevelRepositoryRule","ruleName","repository","injections","_iterator3","_createForOfIteratorHelper","_step3","n","done","injection","add","err","e","f","context","collectExternalReferencesInRules","patterns","Object","values","_objectSpread","rules","_iterator4","_step4","rule","visitedRule","has","patternRepository","include","parseInclude","kind","undefined","newContext","TopLevelRepositoryRuleReference","BaseReference","SelfReference","indexOfSharp","indexOf","TopLevelReference","RelativeReference","TopLevelRepositoryReference","_matchesScope","scopePattern","startsWith","_tokenizeString","grammar","lineText","isFirstLine","linePos","stack","lineTokens","checkWhileConditions","timeLimit","lineLength","content","STOP","anchorPosition","whileCheckResult","beginRuleCapturedEOL","whileRules","node","pop","nodeRule","getRule","BeginWhileRule","whileRule","_ft","prepareRuleWhileSearch","endRule","ruleScanner","findOptions","findNextMatchSync","ruleId","whileRuleId","captureIndices","produce","start","handleCaptures","whileCaptures","end","_checkWhileConditions","startTime","Date","now","TokenizeStringResult","scanNext","p","matchResult","prepareRuleSearch","matchedRuleId","matchRule","getInjections","injectionResult","bestMatchRuleId","bestMatchRating","Number","MAX_VALUE","bestMatchCaptureIndices","bestMatchResultPriority","scopes","contentNameScopesList","getScopeNames","matchRating","priorityMatch","matchInjections","matchResultScore","injectionResultScore","matchRuleOrInjections","hasAdvanced","endRuleId","poppedRule","withContentNameScopesList","nameScopesList","endCaptures","popped","parent","getAnchorPos","getEnterPos","_rule","beforePush","getName","pushAttributed","BeginEndRule","pushedRule","beginCaptures","contentName","getContentName","endHasBackReferences","withEndRule","getEndWithResolvedBackReferences","hasSameRuleAs","whileHasBackReferences","getWhileWithResolvedBackReferences","captures","safePop","endRegexSource","allowA","allowG","compileAG","compileWhileAG","lineTextContent","Math","min","localStack","maxEnd","captureRule","captureIndex","endPos","produceFromScopes","retokenizeCapturedWithRuleId","stackClone","onigSubStr","createOnigString","captureRuleScopeName","captureRuleScopesList","LocalStackElement","collectInjections","ruleFactoryHelper","nameMatcher","RuleFactory","getCompiledRuleId","_iterator9","_step9","debugSelector","identifers","lastIndex","identifier","scopesAreMatching","thisScopeName","initGrammar","base","$self","$vscodeTextmateLocation","name","$base","splitLines","code","preserveEnding","arguments","parts","split","index","lines","_n28","line","isPlainLang","lang","includes","isSpecialLang","isNoneTheme","theme","isSpecialTheme","addClassToHast","className","properties","class","targets","_iterator18","c","_step18","resolveColorReplacements","options","replacements","colorReplacements","themeName","_i17","_Object$entries","entries","_Object$entries$_i","_slicedToArray","assign","applyColorReplacements","color","toLowerCase","getTokenStyleObject","styles","bgColor","fontStyle","FontStyle","Italic","Bold","Underline","stringifyTokenStyle","map","_ref4","_ref5","concat","join","findSequence","position","nextEscape","nextClose","sequence","startPosition","parseColor","offset","colorMode","rgb","x","parseInt","isNaN","type","colorIndex","parseSequence","commands","codeInt","decorations","decoration","namedColors","_ne","_ne3","createColorPalette","namedColorsMap","defaultNamedColorsMap","namedColor","rgbColor","max","toString","padStart","colorTable","tableColor","levels","g","level","getColorTable","tokenizeAnsiWithTheme","fileContents","colorPalette","fromEntries","colors","toUpperCase","parser","foreground","background","decorations2","Set","parse","tokens","findResult","text","_iterator19","_step19","styleToken","clear","_iterator20","_step20","createAnsiSequenceParser","bg","fg","hexMatch","alpha","round","from","cssVarMatch","dimColor","None","codeToTokensBase","internal","_n$lang","getLoadedThemes","_n$theme","_t$setTheme","setTheme","colorMap","_grammar","getLanguage","grammarState","ShikiError","_tokenizeWithTheme","tokenizeWithTheme","tokenizeMaxLineLength","tokenizeTimeLimit","stateStack","state","GrammarState","_stack","getGrammarStack","grammarContextCode","INITIAL","actual","final","themeSettingsSelectors","includeExplanation","settings","_iterator21","_step21","setting","selectors","_typeof","scope","trim","_a$_t","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","tokenizeLine","tokenizeLine2","tokensLength","j","startIndex","nextStartIndex","metadata","StackElementMetadata","getForeground","getFontStyle","explanation","tokenWithScopes","tokenWithScopesText","endIndex","explainThemeScopes","ruleStack","themeSelectors","parentScopes","slice","themeMatches","explainThemeScope","matchesOne","matches","selectorParentIndex","parentIndex","_iterator22","_step22","_step22$value","_step23","_iterator23","selectorPieces","codeToTokensWithThemes","themes","filter","_len2","_key2","outThemes","count","_loop","_i26","outLines","indexes","current","l","minLength","syncThemesTokenization","mergedTokens","lineIdx","_token","tokenIdx","mergedToken","variants","themeIdx","_t$e$o","_","__","___","codeToTokens","rootStyle","_n$defaultColor","defaultColor","_n$cssVariablePrefix","cssVariablePrefix","sort","themeTokens","find","themeRegs","getTheme","themesOrder","merged","variantsOrder","styleKeys","flatMap","keys","mergedStyles","reduce","acc","cur","_step24","_iterator24","keyName","varKey","htmlStyle","mergeToken","themeColorReplacements","_theme","transformerDecorations","je","WeakMap","getContext","shiki","meta","normalizePosition","converter","indexToPos","JSON","stringify","character","posToIndex","_ref6","_ref7","_iterator25","_step25","createPositionConverter","d","items","foo","bar","isFooHasBarStart","isFooHasBarEnd","isBarHasFooStart","isBarHasFooEnd","verifyIntersections","set","get","this","splitted","breakpoints","sorted","breakpointsInToken","offsets","lastOffset","_iterator26","_step26","splitToken","splitTokens","codeEl","ctx","children","tagName","applyLineSection","lineEl","el","POSITIVE_INFINITY","alwaysWrap","wrapper","applyDecoration","splice","applyLine","transform","lineApplies","_iterator27","_loop3","_i30","unshift","_step27","_loop2","getTransformers","_toConsumableArray","transformers","builtInTransformers","codeToHast","transformerContext","_code","_options","_iterator28","_step28","transformer","preprocess","call","_ge","_n$mergeWhitespaces","mergeWhitespaces","newLine","carryOnContent","firstOffset","couldMerge","mergeWhitespaceTokens","_e37","leading","trailing","expanded","splitWhitespaceTokens","contextSource","_iterator29","_step29","root","structure","preNode","style","tabindex","_ref8","_ref9","codeNode","lineNodes","pre","lineNode","col","_iterator30","_step30","tokenNode","_iterator32","_step32","span","_iterator31","_step31","_iterator33","_step33","_iterator34","_step34","_iterator35","_step35","tokensToHast","merge","definitions","space","property","normal","Schema","normalize","increment","De","pow","powers","mark","create","definition","prop","own$3","info","DefinedInfo","attributes","mustUseProperty","attribute","caseSensitiveTransform","caseInsensitiveTransform","kebab","$0","camelcase","core","subset","groups","RegExp","charactersToExpression","basic","escapeOnly","pair","all","format","charCodeAt","formatSmart","named","numeric","omit","String","fromCharCode","toHexadecimal","omitOptionalSemicolons","useNamedReferences","useShortestReferences","own$1","characters","characterEntitiesLegacy","dangerous","toNamed","decimal","toDecimal","stringifyEntities","ccount","TypeError","stringify$1","padRight","padLeft","whitespace","thing","empty","re","siblings","includeWhitespace","emptyChildren$1","omission","handlers","own","headOrColgroupOrCaption","siblingAfter","rubyElement","cells","serializeAttribute","schema","Type","Info","valid","rest","dash","dashes","cap","allowParseErrors","y","allowDangerousCharacters","quote","overloadedBoolean","boolean","Boolean","characterReferences","constants","commaSeparated","tightCommaSeparatedLists","collapseEmptyAttributes","preferUnquoted","unquoted","quoteSmart","alternative","single","textEntitySubset","one","handle","emptyChildren","codeToHtml","tree","options_","emptyOptions","omitOptionalTags","tightAttributes","upperDoctype","tightDoctype","bogusComments","tightSelfClosing","allowDangerousHtml","voids","htmlVoidElements","emptyCharacterReferences","closeSelfClosing","closeEmptyElements","svg","html$2","toHtml","_iterator36","_step36","postprocess","async","main","init","updateGlobalBufferAndViews","emscripten_realloc_buffer","size","UTF8ToString","ptr","maxBytesToRead","heapOrArray","endIdx","endPtr","buffer","UTF8Decoder","decode","subarray","u0","u1","u2","ch","UTF8ArrayToString","binding","HEAPU8","wasmMemory","grow","byteLength","_unused","buf","Uint8Array","HEAPU32","Uint32Array","TextDecoder","asmLibraryArg","emscripten_get_now","performance","emscripten_memcpy_big","dest","src","num","copyWithin","emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","alignUp","multiple","cutDown","overGrownHeapSize","fd_write","_context25","env","wasi_snapshot_preview1","exports","memory","_context24","stop","_callee23","createWasm","_callee24","_Un","apply","loadWasm","initPromise","_regeneratorRuntime","wrap","_callee8$","_context9","prev","instance","instantiator","dataOrOptions","isInstantiatorModule","data","isDataOptionsObject","Response","isResponse","_Buffer$isBuffer","_Buffer","ArrayBuffer","isView","Buffer","isBuffer","SharedArrayBuffer","isArrayBuffer","WebAssembly","Module","_makeArrayBufferLoader","default","instantiateStreaming","importObject","t3","sent","_ref12","_asyncToGenerator","arrayBuffer","instantiate","_context8","_callee7","_x17","_makeResponseNonStreamingLoader","_callee8","_x16","_ref11","onigBinding","_load","normalizeTheme","rawTheme","RESOLVED_KEY","tokenColors","_t60$settings","_t60$settings2","_e$colors","_e$colors2","globalSetting","VSCODE_FALLBACK_EDITOR_FG","light","dark","VSCODE_FALLBACK_EDITOR_BG","replacementCount","replacementMap","Map","getReplacementColor","_e$colorReplacements","_t$settings","_t$settings2","replaceFg","replaceBg","clone","replacement","_i36","_Object$keys2","_e$colors$_t","defineProperty","enumerable","writable","createShikiInternal","normalizeGetter","resolveLangs","langs","ensureNotDisposed","isDisposed","_registry","instancesCount","_m7","_i41","_i43","Promise","then","flat","resolve","_context29","_callee28","warnings","warn","wasmLoader","_defaultWasmLoader","resolver","Resolver","createOnigScanner","OnigScanner","OnigString","Registry","langAlias","_context32","_lastTheme","getColorMap","_lang","getGrammar","getLoadedLanguages","loadLanguage","loadLanguages","loadTheme","_context27","t0","t1","t2","_x37","_ref24","_context28","_callee27","_loadTheme","Symbol","_callee31","createHighlighterCore","getLastGrammarState","_n$lang2","_n$theme2","_t$setTheme2","getInternalContext","_li","createdBundledHighlighter","bundledLanguages","bundledThemes","_ref23","_i$themes","_i$langs","resolveLang","resolveTheme","bundle","_themes","_len4","_len5","_x21","createSingletonShorthands","createHighlighter","getSingletonHighlighter","_shiki","_args15","_context16","abrupt","_callee15","makeSingletonHighlighter","_callee16","_codeToHast","_callee17","_callee18","_callee19","_codeToTokensWithThemes","_callee20","_callee21","_context22","_x32","_x33","_getLastGrammarState","setters","_tslib","bundledLanguagesInfo","id","import","_import","_context","aliases","getWasmInlined","wasm","bundledThemesInfo","displayName","NotSet","process","VSCODE_TEXTMATE_DEBUG","EncodedTokenAttributes","toBinaryStr","encodedTokenAttributes","print","languageId","getLanguageId","tokenType","getTokenType","getBackground","containsBalancedBrackets","_languageId","_tokenType","_containsBalancedBracketsBit","_fontStyle","_foreground","_background","CAPTURING_REGEX_SOURCE","RegexSource","hasCaptures","regexSource","replaceCaptures","captureSource","commandIndex","command","capture","CachedFn","fn","L","_createClass","cache","T","toKey","A","ExternalReferenceCollector","_seenReferenceKeys","_references","ScopeDependencyProcessor","O","initialScopeName","seenFullScopeRequests","Q","processQueue","q","deps","_iterator","_step","dep","_iterator2","references","_step2","seenPartialScopeRequests","$","B","I","HAS_BACK_REFERENCES","BACK_REFERENCING_END","Rule","$location","_name","_nameIsCapturing","_contentName","_contentNameIsCapturing","location","filename","constructor","CaptureRule","W","super","_this","_inherits","_q2","collectPatterns","out","compile","MatchRule","V","_defineProperty","_assertThisInitialized","_this2","_match","RegExpSource","_cachedCompiledPatterns","_q3","_getCachedCompiledPatterns","RegExpSourceList","IncludeOnlyRule","J","hasMissingPatterns","_this3","_q4","_iterator5","_step5","pattern","X","begin","applyEndPatternLast","_begin","_end","hasBackReferences","_this4","_q5","resolveBackReferences","_iterator6","_step6","setSource","K","_while","_cachedCompiledWhilePatterns","_this5","_q6","debugBeginRegExp","_iterator7","_step7","compileWhile","_getCachedCompiledWhilePatterns","createCaptureRule","helper","registerRule","desc","_compileCaptures","_compilePatterns","maximumCaptureId","captureId","numericCaptureId","localIncludedRule","externalGrammarName","externalGrammarInclude","externalGrammar","getExternalGrammar","externalIncludedRule","skipRule","regExpSource","lastPushedPos","output","hasAnchor","pos","nextCh","_anchorCache","_buildAnchorCache","newSource","capturedValues","g1","A0_G0_result","A0_G1_result","A1_G0_result","A1_G1_result","A0_G0","A0_G1","A1_G0","A1_G1","resolveAnchors","_items","Z","_hasAnchors","_cached","_disposeCaches","item","onigLib","regExps","CompiledRule","_resolveAnchors","tt","scanner","string","Theme","_colorMap","et","_defaults","_root","getDefaults","scopePath","effectiveRule","_cachedMatchRoot","v","_scopePathMatchesParentScopes","StyleAttributes","createFromRawTheme","createFromParsedTheme","resultLen","entry","_scope","segments","lenJ","reverse","ParsedThemeRule","parseTheme","parsedThemeRules","defaultFontStyle","defaultForeground","defaultBackground","incomingDefaults","shift","ColorMap","defaults","getId","ThemeTrieElement","ThemeTrieElementRule","insert","resolveParsedThemeRules","ScopeStack","nt","getSegments","_extends","other","getExtensionIfDefined","scopeNames","_iterator8","_step8","rt","foregroundId","backgroundId","ot","st","_classCallCheck","_lastColorId","_id2color","_color2id","_isFrozen","scopeDepth","lt","acceptOverwrite","cloneArr","at","_mainRule","rulesWithParentScopes","_children","_rulesWithParentScopes","_sortBySpecificity","head","tail","dotIndex","hasOwnProperty","_doInsertHere","child","_cmpBySpecificity","aParentScopes","bParentScopes","aParentScopesLen","bParentScopesLen","aLen","bLen","BasicScopeAttributes","ct","BasicScopeAttributesProvider","ut","initialLanguageId","embeddedLanguages","_scopeToLanguage","standardTokenType","_toStandardTokenType","_defaultAttributes","_embeddedLanguagesMatcher","ScopeMatcher","getDefaultAttributes","getBasicScopeAttributes","_NULL_SCOPE_METADATA","_getBasicScopeAttributes","static","m","STANDARD_TOKEN_TYPE_REGEXP","mt","scopesRegExp","escapedScopes","_ref2","_ref3","pt","stoppedEarly","jt","Grammar","kt","_rootScopeName","initialLanguage","tokenTypes","balancedBracketSelectors","grammarRepository","_onigLib","_basicScopeAttributesProvider","_rootId","_lastRuleId","_ruleId2desc","_includedGrammars","_grammarRepository","_injections","_tokenTypeMatchers","_i14","_Object$keys","_iterator10","_step10","_iterator11","_step11","getMetadataForScope","_collectInjections","rawInjections","expression","injectionScopeNames","injectionScopeName","injectionGrammar","injectionSelector","i1","i2","factory","rawIncludedGrammar","prevState","_tokenize","getResult","getBinaryResult","emitBinaryTokens","StateStackImpl","NULL","reset","rawDefaultMetadata","defaultStyle","themeProvider","defaultMetadata","rootScopeName","scopeList","AttributedScopeStack","createRootAndLookUpScopeName","createRoot","onigLineText","LineTokens","St","tokenAttributes","equals","_pushAttributed","_iterator12","_step12","self","fromExtension","namesScopeList","_t$scopePath","_iterator13","_step13","frame","rawRootMetadata","themeMatch","resolvedTokenAttributes","mergeAttributes","existingTokenAttributes","basicScopeAttributes","styleAttributes","rawMetadata","newPath","scopeThemeMatchResult","xt","enterPos","anchorPos","depth","_enterPos","_anchorPos","_equals","_reset","_writeString","outIndex","contentNameScopeStack","toStateStackFrame","_structuralEquals","pushFrame","_xt","BalancedBracketSelectors","Ct","balancedBracketScopes","unbalancedBracketScopes","allowAny","matchesAlways","_iterator14","_step14","excluder","_iterator15","_step15","includer","Lt","tokenTypeOverrides","_emitBinaryTokens","_tokenTypeOverrides","_lineText","_tokens","_binaryTokens","_lastTokenEndIndex","scopesList","_t$tokenAttributes","_this$balancedBracket","matchesNever","_t$getScopeNames","_iterator16","_step16","SyncRegistry","_onigLibPromise","Tt","_grammars","_iterator17","_step17","addGrammar","_rawGrammars","_injectionGrammars","targetScope","_grammarForScopeName","_callee2","rawGrammar","_context3","createGrammar","t10","t11","t4","t5","t6","t7","t8","t9","Registry$1","At","_syncRegistry","_ensureGrammarCache","loadGrammarWithEmbeddedLanguages","loadGrammarWithConfiguration","configuration","_loadGrammar","unbalancedBracketSelectors","loadGrammar","_loadGrammar2","_callee3","dependencyProcessor","request","_loadSingleGrammar","_context4","_x7","_x8","_x9","_x10","_x11","_loadSingleGrammar2","_callee4","_doLoadSingleGrammar","_context5","_x12","_doLoadSingleGrammar2","_callee5","_context6","_x13","_addGrammar","_callee6","_args6","_context7","_x14","grammarForScopeName","MetadataConsts","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","le","message","_this11","_Error","_wrapNativeSuper","ae","visited","pushScope","_t$nameScopesList2","getScopes","toJSON","initial","ve","prototype","Ce","booleanish","number","spaceSeparated","commaOrSpaceSeparated","defined","types","freeze","__proto__","checks","$e","mask","check","_this12","_Ce","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","xmlns","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","html$3","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","charSet","checked","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","label","language","list","loading","loop","low","manifest","maxLength","media","method","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","ping","placeholder","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scoped","seamless","selected","shadowRootDelegatesFocus","shadowRootMode","shape","sizes","slot","spellCheck","srcDoc","srcLang","srcSet","step","tabIndex","title","translate","typeMustMatch","useMap","width","align","aLink","archive","axis","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","codeBase","codeType","compact","declare","event","face","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","scheme","scrolling","standby","summary","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","security","unselectable","svg$1","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","mode","numOctaves","observer","opacity","operator","order","orient","orientation","origin","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","to","unicode","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","z","zoomAndPan","own$2","characterEntitiesHtml4","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","fnof","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","bull","hellip","prime","Prime","oline","frasl","weierp","image","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cup","int","there4","sim","cong","asymp","ne","equiv","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","rang","loz","spades","clubs","hearts","diams","quot","amp","gt","OElig","oelig","Scaron","scaron","Yuml","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","permil","lsaquo","rsaquo","euro","htmlCommentRegex","bogusCommentEntitySubset","commentEntitySubset","siblingBefore","closing","body","caption","colgroup","dd","dt","html","li","optgroup","option","rp","tbody","td","tfoot","th","thead","tr","opening","previous","seen","double","invalid","unknown","_len3","parameters","zwitch","node_","comment","_1","_2","doctype","_3","element","selfClosing","last","serializeAttributes","raw","En","UtfString","Vn","utf16Length","utf8Length","_utf8ByteLength","computeIndicesMapping","utf16OffsetToUtf8","utf8OffsetToUtf16","utf8Value","i8","i16","charCode","codePoint","wasSurrogatePair","nextCharCode","utf16Value","createString","omalloc","codepoint","Jn","LAST_ID","_onigBinding","utfString","_sharedPtrInUse","_sharedPtr","convertUtf8OffsetToUtf16","utf8Offset","convertUtf16OffsetToUtf8","utf16Offset","ofree","Xn","strPtrsArr","strLenArr","strPtrsPtr","strLenPtr","scannerPtr","getLastOnigError","throwLastOnigError","_ptr","freeOnigScanner","arg","debugCall","_findNextMatchSync","resultPtr","findNextOnigScannerMatchDbg","findNextOnigScannerMatch","beg","_resolver","_langs","_alias","_resolvedGrammars","_this13","_At","_resolvedThemes","_loadedThemesCache","textmateTheme","_textmateThemeCache","resolved","_loadLanguage","_callee10","embeddedLazilyBy","_langMap","embeddedLangsLazy","addLanguage","grammarConfig","_context11","alias","_loadedLanguagesCache","_iterator37","delete","_this$_syncRegistry","finish","_x18","_init","_callee11","_this15","_callee11$","_context12","_langGraph","_loadLanguages","_callee12","_iterator38","_step38","resolveEmbeddedLanguages","langsGraphArray","missingLangs","_ref13","_ref14","dependents","_ref15","_e$embeddedLangs","_ref16","embeddedLangs","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_i37","_e43","_i38","_e44","_context13","_x19","_iterator39","_step39","embeddedLang","ii","onigLibPromise","getLangRegistration","langIdOrAlias","_loadGrammar3","_callee13","_callee13$","_context14","_scopeToLang","_x20","injectTo","scopeParts","subScopeName","NileHighlighter","_o24","yi","highlightedCode","_this18","_updated","_callee22","changedProperties","requestUpdate","updated","_x34","render","_templateObject","_taggedTemplateLiteral","__decorate","NileElement","reflect","_export","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|